shahar1 commented on code in PR #76490:
URL: https://github.com/apache/airflow/pull/76490#discussion_r4473470709


##########
providers/fab/docs/changelog.rst:
##########
@@ -31,6 +34,35 @@ Changelog
     authentication types (OAuth, remote user) it no longer issues tokens for a 
username and
     password; use that type's own login flow instead. Passwords made only of 
NUL bytes are rejected.
 
+Features
+~~~~~~~~
+
+* ``Give Dag bundles their own read permission (#76329)``

Review Comment:
   #76329 depends on #76474, which is still open and not in this wave. Per 
#76474, these providers also run on Airflow 3.4.0, which has the bundles menu 
item but not the view. Without that fix, roles that can read a Dag lose the 
menu entry while the page still works for them. Keycloak has the same gap in 
`cli/commands.py`.
   
   The notes here already use #76474's 3.4.1 wording but not its code. Should 
this wave wait for #76474, or should the notes state the 3.4.0 behaviour?
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/amazon/docs/changelog.rst:
##########
@@ -26,12 +26,63 @@
 Changelog
 ---------
 
+9.40.0
+......
+
 .. note::
 
     In multi-team mode, a team's ``AwsEksExecutor`` now reads 
``[aws_eks_executor]`` from the team's
     section and no longer falls back to the global one. Set ``cluster_name`` 
for each team, and
     ``region_name`` and ``conn_id`` too if the team needs them.
 
+Features
+~~~~~~~~
+
+* ``Add on_kill support to SageMakerTrainingOperator (#76033)``
+* ``Let the ECS executor start tasks in parallel (#75907)``
+* ``Page SqlToS3Operator like GenericTransfer (#75730)``
+* ``Let the EKS executor run per team and next to KubernetesExecutor (#75449)``

Review Comment:
   #75449 builds on `KubernetesExecutor.client_factory` from #75251, so 
`AwsEksExecutor` now raises on import with cncf.kubernetes below 11.0.0. Before 
this it accepted `>=10.24.0`. The note here covers only multi-team mode, but 
this reaches single-team users too, and nothing in the section gives the 
version. I suggest adding to the note:
   
   > `AwsEksExecutor` now requires 
`apache-airflow-providers-cncf-kubernetes>=11.0.0`, in single-team deployments 
too.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``

Review Comment:
   #71947 also changes existing behaviour:
   
   - `GoogleBidManagerRunQuerySensor` used to succeed on a `FAILED` report. It 
now raises `AirflowFailException`.
   - `GoogleBidManagerDownloadReportOperator` raises `AirflowFailException` on 
`FAILED`, and `ValueError` where it raised `AirflowException` for other 
non-`DONE` states.
   - `GoogleBidManagerHook.list_queries` and `list_reports` read all pages, and 
`list_reports` returns `{"reports": [...]}` rather than the raw response.
   
   Tasks that passed on a failed report will start failing, so I suggest a 
second entry under `Bug Fixes`:
   
   `* ``Fail Bid Manager report sensor and download operator on a FAILED 
report, and read all pages in list_queries and list_reports (#71947)`` `
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Enforce execution_timeout in deferrable DataprocSubmitJobOperator 
(#72030)``
+* ``Normalize empty project id in credential config file branch (#73886)``
+* ``Stop BigQueryStreamingBufferEmptySensor reporting empty too early 
(#69118)``

Review Comment:
   The title is true, but #69118 also changes the default: 
`empty_confirmations` is 2, which can delay success by up to one 
`poke_interval`. Per the docstring, `mode="reschedule"` with 
`empty_confirmations > 1` needs a running triggerer, so deployments without one 
are affected on upgrade. I suggest a note:
   
   > `BigQueryStreamingBufferEmptySensor` now requires `empty_confirmations` 
consecutive empty readings (default 2), which can delay success by up to one 
`poke_interval`. With `mode="reschedule"` and `empty_confirmations > 1` it 
needs a running triggerer. Set `empty_confirmations=1` to keep the worker-only 
behaviour.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Enforce execution_timeout in deferrable DataprocSubmitJobOperator 
(#72030)``
+* ``Normalize empty project id in credential config file branch (#73886)``
+* ``Stop BigQueryStreamingBufferEmptySensor reporting empty too early 
(#69118)``
+* ``Stop Google Cloud Logging handler from starting a thread on close 
(#75596)``
+* ``Fix BigQuery cancellation and links with inferred job locations (#75717)``
+* ``Fix BigQuery durable recovery for regional jobs (#75430)``
+* ``Cancel the BigQuery job when BigQueryToBigQueryOperator is killed 
(#75101)``
+* ``Prevent Dag processor crashes with Google Cloud Logging when its log 
directory is outside 'base_log_folder' (#74926)``
+* ``Fix Google Cloud Logging task log reads before Airflow 3.4 (#74923)``
+
+Misc
+~~~~
+
+* ``Remove types-protobuf from google provider runtime dependencies (#73775)``
+* ``Remove unused Cloud SQL settings version helper (#75789)``
+* ``Remove unused Dataproc job template helper (#75790)``
+* ``Remove unused Cloud SQL OS bitness helper (#75788)``
+* ``Remove unused Dataflow job state checker (#75784)``
+* ``Add High Obtainability (HO) mode support to Dataproc operators (#74753)``
+
+Doc-only
+~~~~~~~~
+
+* ``Document all Google Cloud connection fields (#76160)``

Review Comment:
   #76160 documents `idp_extra_parameters` as sent in the token request, but 
its description says the hook currently ignores it, and the fix (#76161) is 
still open. `base_google.py` reads `idp_extra_params`, a different key. So 
22.9.0 would ship docs for behaviour it doesn't have. Can #76161 join this 
wave, or should the docs or a note state the limit?
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/keycloak/docs/changelog.rst:
##########
@@ -25,12 +25,30 @@
 Changelog
 ---------
 
+0.12.0
+......
+
 .. note::
-    Airflow 3.4.0 adds a Dag bundles view, which in multi-team mode is checked 
against the
+    Airflow 3.4.1 adds a Dag bundles view, which in multi-team mode is checked 
against the
     ``AdminView`` resource, so only ``SuperAdmin`` holds it. Multi-team 
deployments must upgrade this
-    provider together with Airflow 3.4.0: older releases check the view 
against ``View``, which every
+    provider together with Airflow 3.4.1: older releases check the view 
against ``View``, which every
     team role can read.
 
+Features
+~~~~~~~~
+
+* ``Give Dag bundles their own read permission (#76329)``

Review Comment:
   This title fits core and FAB, but Keycloak gains no new permission in 
#76329. Multi-team mode now checks `DAG_BUNDLES` against `AdminView`, 
single-team mode stays on `View`, and team roles lose the menu item. It 
restricts access, as the note above says.
   
   ```suggestion
   * ``Restrict the Dag bundles view to SuperAdmin in multi-team mode (#76329)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/amazon/docs/changelog.rst:
##########
@@ -26,12 +26,63 @@
 Changelog
 ---------
 
+9.40.0
+......
+
 .. note::
 
     In multi-team mode, a team's ``AwsEksExecutor`` now reads 
``[aws_eks_executor]`` from the team's
     section and no longer falls back to the global one. Set ``cluster_name`` 
for each team, and
     ``region_name`` and ``conn_id`` too if the team needs them.
 
+Features
+~~~~~~~~
+
+* ``Add on_kill support to SageMakerTrainingOperator (#76033)``

Review Comment:
   This reads as if killing the task now stops the job, but #76033 is opt-in 
through `stop_training_job_on_kill` (default `False`), so by default the 
training job keeps running. A deferred task also needs Airflow 3.3 or later.
   
   ```suggestion
   * ``Add stop_training_job_on_kill to SageMakerTrainingOperator to stop the 
job when the task is killed (#76033)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/fab/docs/changelog.rst:
##########
@@ -20,9 +20,12 @@
 Changelog
 ---------
 
+3.11.0
+......
+
 .. note::
-    Airflow 3.4.0 gives Dag bundles their own ``Dag Bundles`` resource, which 
``Op`` and ``Admin``
-    get by default. Upgrade this provider together with Airflow 3.4.0: older 
releases deny the Dag
+    Airflow 3.4.1 gives Dag bundles their own ``Dag Bundles`` resource, which 
``Op`` and ``Admin``
+    get by default. Upgrade this provider together with Airflow 3.4.1: older 
releases deny the Dag
     bundle pages and API to every role, including ``Admin``, while still 
showing the Browse menu
     entry. Custom roles need ``can read`` and ``menu access`` on ``Dag 
Bundles`` added by hand.

Review Comment:
   The note leaves out who loses access. #76329 moves `/api/v2/dagBundles*` 
from `DAGs.can_read` (`Viewer`) to `Dag Bundles.can_read` (`Op`), and its 
description says "Viewers lose access".
   
   ```suggestion
       entry. Custom roles need ``can read`` and ``menu access`` on ``Dag 
Bundles`` added by hand.
       On Airflow 3.4.1, ``Viewer`` and other roles that reached these pages 
through Dag read access lose them.
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Enforce execution_timeout in deferrable DataprocSubmitJobOperator 
(#72030)``
+* ``Normalize empty project id in credential config file branch (#73886)``
+* ``Stop BigQueryStreamingBufferEmptySensor reporting empty too early 
(#69118)``
+* ``Stop Google Cloud Logging handler from starting a thread on close 
(#75596)``
+* ``Fix BigQuery cancellation and links with inferred job locations (#75717)``
+* ``Fix BigQuery durable recovery for regional jobs (#75430)``
+* ``Cancel the BigQuery job when BigQueryToBigQueryOperator is killed 
(#75101)``
+* ``Prevent Dag processor crashes with Google Cloud Logging when its log 
directory is outside 'base_log_folder' (#74926)``
+* ``Fix Google Cloud Logging task log reads before Airflow 3.4 (#74923)``

Review Comment:
   "Before Airflow 3.4" is narrower than #74923. It also fixes an 
`AttributeError` for runs without a logical date on any Airflow 3 version, so a 
3.4+ reader could wrongly skip this.
   
   ```suggestion
   * ``Fix Google Cloud Logging task log reads for runs without a logical date, 
and for mapped tasks and print() output before Airflow 3.4 (#74923)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/apache/arrow/docs/changelog.rst:
##########
@@ -26,6 +26,24 @@
 Changelog
 ---------
 
+0.2.0
+.....
+
+.. note::
+  ``AdbcHook.insert_rows`` now defaults to ``fast_executemany=True`` and loads 
rows through the
+  driver's bulk ingest (``adbc_ingest``, e.g. ``COPY`` on PostgreSQL). Drivers 
without bulk
+  ingest, and ``replace=True``, still bind rows with ``executemany``. Pass
+  ``fast_executemany=False`` to keep the previous path.
+
+Features
+~~~~~~~~
+
+* ``Use bulk ingest in AdbcHook.insert_rows when fast_executemany is set 
(#76363)``

Review Comment:
   "When `fast_executemany` is set" reads as opt-in, but #76363 makes `True` 
the default, as the note above says.
   
   ```suggestion
   * ``Make AdbcHook.insert_rows use the driver's bulk ingest by default 
(#76363)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/smtp/docs/changelog.rst:
##########
@@ -27,6 +27,18 @@
 Changelog
 ---------
 
+3.2.1
+.....
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix async SmtpHook connections failing when STARTTLS is enabled (#75529)``

Review Comment:
   #75529 also raises `aiosmtplib` from `>=0.1.6` to `>=5.1.0`. This reaches 
sync users too, because the hook imports it at the top level, and the changelog 
doesn't mention it in this patch release.
   
   ```suggestion
   * ``Fix async SmtpHook connections failing when STARTTLS is enabled, and 
raise aiosmtplib minimum to 5.1.0 (#75529)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/standard/docs/changelog.rst:
##########
@@ -43,6 +46,30 @@ Changelog
 
 .. warning::
   The deprecated ``TimeDeltaSensorAsync`` class has been removed. Use 
``TimeDeltaSensor(..., deferrable=True)`` instead.
+  On Airflow 3.0.x, the bundled ``example_time_delta_sensor_async`` example 
Dag imports this
+  class, so it fails to import when ``[core] load_examples`` is on. Upgrade to 
Airflow 3.1 or turn
+  off ``load_examples``.
+
+Breaking changes
+~~~~~~~~~~~~~~~~
+
+* ``Remove deprecated TimeDeltaSensorAsync (#76131)``
+
+Features
+~~~~~~~~
+
+* ``Add AssetEventSensor to standard provider (#70225)``
+* ``Allow asking for human input from inside a Python task (#75358)``

Review Comment:
   `request_input()` raises below Airflow 3.4, and this provider supports 
`apache-airflow>=2.11.0`, so the requirement seems worth stating.
   
   ```suggestion
   * ``Allow asking for human input from inside a Python task on Airflow 3.4+ 
(#75358)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/mysql/docs/changelog.rst:
##########
@@ -37,6 +40,15 @@ Changelog
    to a ``mysql+aiomysql://`` URL. The ``[aiomysql]`` extra also declares this 
driver
    for installations that need it after it becomes optional.
 
+Features
+~~~~~~~~
+
+* ``Switch the default async MySQL driver to asyncmy (#75218)``

Review Comment:
   The provider doesn't switch the driver: the selection is in core 
`settings.py` (#75218), and `3.4.0rc2` doesn't have it. The note above is 
accurate, so the entry could match it.
   
   ```suggestion
   * ``Install asyncmy for the async metadata database engine and add an 
aiomysql extra (#75218)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/common/compat/docs/changelog.rst:
##########
@@ -25,6 +25,23 @@
 Changelog
 ---------
 
+1.23.1
+......
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Surface errors from OpenLineage database info lookups without losing 
lineage (#74805)``

Review Comment:
   "Without losing lineage" is true for the common.sql part of #74805, but not 
here. This provider only changes the fallback used when the OpenLineage 
provider lacks `get_openlineage_facets_with_sql`, and it logs the error and 
returns `None`.
   
   ```suggestion
   * ``Log errors from OpenLineage database info lookups in the fallback SQL 
facets helper (#74805)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/fab/docs/changelog.rst:
##########
@@ -31,6 +34,35 @@ Changelog
     authentication types (OAuth, remote user) it no longer issues tokens for a 
username and
     password; use that type's own login flow instead. Passwords made only of 
NUL bytes are rejected.
 
+Features
+~~~~~~~~
+
+* ``Give Dag bundles their own read permission (#76329)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Use only the configured auth type when creating tokens in the FAB auth 
manager (#76231)``
+* ``Honor next when an authenticated user reaches the FAB login page (#75665)``
+
+Misc
+~~~~
+
+* ``Bump @babel/core to 8.0.9 and webpack to 5.112.2 in the FAB UI (#75807)``
+
+Doc-only
+~~~~~~~~
+
+* ``Add CLI login discovery to auth managers (#75672)``

Review Comment:
   The FAB part of #75672 is one row in `access-control.rst`, with no FAB code 
change, so this title promises a feature FAB doesn't gain here.
   
   ```suggestion
   * ``Document the public GET /api/v2/auth/cli/metadata endpoint (#75672)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Enforce execution_timeout in deferrable DataprocSubmitJobOperator 
(#72030)``
+* ``Normalize empty project id in credential config file branch (#73886)``
+* ``Stop BigQueryStreamingBufferEmptySensor reporting empty too early 
(#69118)``
+* ``Stop Google Cloud Logging handler from starting a thread on close 
(#75596)``
+* ``Fix BigQuery cancellation and links with inferred job locations (#75717)``

Review Comment:
   #75717 only changes `BigQueryInsertJobOperator`. The new 
`BigQueryToBigQueryOperator.on_kill` from #75101 still cancels with 
`self.location`, so "BigQuery cancellation" is broader than the fix.
   
   ```suggestion
   * ``Fix BigQueryInsertJobOperator cancellation and links with inferred job 
locations (#75717)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/fab/docs/changelog.rst:
##########
@@ -31,6 +34,35 @@ Changelog
     authentication types (OAuth, remote user) it no longer issues tokens for a 
username and
     password; use that type's own login flow instead. Passwords made only of 
NUL bytes are rejected.
 
+Features
+~~~~~~~~
+
+* ``Give Dag bundles their own read permission (#76329)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Use only the configured auth type when creating tokens in the FAB auth 
manager (#76231)``

Review Comment:
   The note names only `POST /auth/token`, but #76231 changes 
`FabAuthManager.create_token`, which `POST /auth/token/cli` uses too. CLI 
tokens change the same way, so I suggest naming both routes in the note.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/google/docs/changelog.rst:
##########
@@ -27,11 +27,60 @@
 Changelog
 ---------
 
+22.9.0
+......
+
 .. warning::
     Subclasses of ``CloudLoggingRemoteLogIO`` that override 
``prepare_log_filter`` must accept a
     ``log_path`` keyword argument (``log_path: str | None = None``), because 
``read`` now passes it.
     With the old ``(self, ti_labels)`` signature every task log read fails 
with ``TypeError``.
 
+Features
+~~~~~~~~
+
+* ``Add async 'BigQueryAsyncHook.aget_records' and deprecate 'get_records' 
(#72286)``
+* ``Add query and report inspection operators for Google Bid Manager (#71947)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Enforce execution_timeout in deferrable DataprocSubmitJobOperator 
(#72030)``
+* ``Normalize empty project id in credential config file branch (#73886)``
+* ``Stop BigQueryStreamingBufferEmptySensor reporting empty too early 
(#69118)``
+* ``Stop Google Cloud Logging handler from starting a thread on close 
(#75596)``
+* ``Fix BigQuery cancellation and links with inferred job locations (#75717)``
+* ``Fix BigQuery durable recovery for regional jobs (#75430)``
+* ``Cancel the BigQuery job when BigQueryToBigQueryOperator is killed 
(#75101)``
+* ``Prevent Dag processor crashes with Google Cloud Logging when its log 
directory is outside 'base_log_folder' (#74926)``
+* ``Fix Google Cloud Logging task log reads before Airflow 3.4 (#74923)``
+
+Misc
+~~~~
+
+* ``Remove types-protobuf from google provider runtime dependencies (#73775)``
+* ``Remove unused Cloud SQL settings version helper (#75789)``
+* ``Remove unused Dataproc job template helper (#75790)``
+* ``Remove unused Cloud SQL OS bitness helper (#75788)``
+* ``Remove unused Dataflow job state checker (#75784)``
+* ``Add High Obtainability (HO) mode support to Dataproc operators (#74753)``

Review Comment:
   The google part of #74753 has no `src/` change: HO config already passes 
through the operators' cluster dicts. What ships is a higher 
`google-cloud-dataproc` floor (`>=5.27.0` to `>=5.32.0`) plus docs, and the 
section doesn't mention the floor.
   
   ```suggestion
   * ``Raise google-cloud-dataproc minimum to 5.32.0 and document High 
Obtainability (HO) mode clusters (#74753)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/fab/docs/changelog.rst:
##########
@@ -31,6 +34,35 @@ Changelog
     authentication types (OAuth, remote user) it no longer issues tokens for a 
username and
     password; use that type's own login flow instead. Passwords made only of 
NUL bytes are rejected.
 
+Features
+~~~~~~~~
+
+* ``Give Dag bundles their own read permission (#76329)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Use only the configured auth type when creating tokens in the FAB auth 
manager (#76231)``
+* ``Honor next when an authenticated user reaches the FAB login page (#75665)``
+
+Misc
+~~~~
+
+* ``Bump @babel/core to 8.0.9 and webpack to 5.112.2 in the FAB UI (#75807)``
+
+Doc-only
+~~~~~~~~
+
+* ``Add CLI login discovery to auth managers (#75672)``
+* ``[AIP-94] Add airflowctl providers get (#68854)``

Review Comment:
   Same as the entry above: the FAB part of #68854 is one row in 
`access-control.rst`, and airflowctl doesn't ship with FAB.
   
   ```suggestion
   * ``Document the permission for GET /api/v2/providers/{provider_name} 
(#68854)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/snowflake/docs/changelog.rst:
##########
@@ -27,6 +27,33 @@
 Changelog
 ---------
 
+6.21.0
+......
+
+Features
+~~~~~~~~
+
+* ``Align Snowflake Cortex Agent hook with the Common AI managed-agent 
contract (#74672)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix stale cursor descriptions between SnowflakeHook runs (#76163)``
+* ``Fix lost transaction in SnowflakeHook when 'session_parameters' is set 
(#75425)``

Review Comment:
   #75457 is a comment-only follow-up to #75425, so together they are one fix, 
and the comment says it applies to `snowflake-connector-python < 5`. A combined 
entry would state the net change, using the grouped form from the release 
skill. The `Misc` line and heading would then go away. Your call, since the 
skill's example is an add-then-rework chain and this is a follow-up.
   
   ```suggestion
   * ``Fix lost transaction in SnowflakeHook when 'session_parameters' is set 
with 'snowflake-connector-python' < 5 (#75425, #75457)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/microsoft/azure/docs/changelog.rst:
##########
@@ -27,12 +27,26 @@
 Changelog
 ---------
 
+15.3.1
+......
+
 .. note::
 
     ``S3ToAzureBlobStorageOperator`` now verifies S3 TLS certificates by 
default: ``s3_verify`` defaults
     to ``None``, deferring to the connection and botocore default. Pass 
``s3_verify=False`` to keep the
     previous behaviour.
 
+Bug Fixes
+~~~~~~~~~
+
+* ``Verify S3 TLS certificates by default in S3ToAzureBlobStorageOperator 
(#76222)``
+
+.. Below changes are excluded from the changelog. Move them to
+   appropriate section above if needed. Do not delete the lines(!):
+   * ``[main] Upgrade important CI environment (#76278)``
+   * ``[main] Upgrade important CI environment (#75270)``

Review Comment:
   These "CI environment" PRs also raise runtime floors, with no published 
entry: here `azure-mgmt-compute` moves to a new major (`>=38.0.0`) in a patch 
release, and amazon (`boto3`/`botocore>=1.43.4`) and google 
(`google-api-python-client>=2.195.0`, `google-cloud-bigtable>=2.37.0`) move 
too. Amazon 9.39.0 published the same kind of change as `Raise boto3 and 
botocore dependency floors`. Is exclusion intended here? I can see it either 
way for the small bumps, but the Azure one seems worth a line.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/celery/docs/changelog.rst:
##########
@@ -27,9 +27,26 @@
 Changelog
 ---------
 
+4.0.0
+.....
+
 .. warning::
   The deprecated ``CeleryExecutor.cleanup_stuck_queued_tasks`` and 
``CeleryKubernetesExecutor.cleanup_stuck_queued_tasks`` methods have been 
removed. Use ``revoke_task`` instead.
 
+Breaking changes
+~~~~~~~~~~~~~~~~
+
+* ``Remove deprecated cleanup_stuck_queued_tasks from Celery and Kubernetes 
executors (#76129)``

Review Comment:
   In this changelog, #76129 only touches the Celery provider's classes. The 
`KubernetesExecutor` part belongs to cncf.kubernetes.
   
   ```suggestion
   * ``Remove deprecated cleanup_stuck_queued_tasks from CeleryExecutor and 
CeleryKubernetesExecutor (#76129)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/cncf/kubernetes/docs/changelog.rst:
##########
@@ -41,6 +44,37 @@ Changelog
 .. warning::
   The deprecated ``KubernetesExecutor.cleanup_stuck_queued_tasks`` and 
``LocalKubernetesExecutor.cleanup_stuck_queued_tasks`` methods have been 
removed. Use ``revoke_task`` instead.
 
+Breaking changes
+~~~~~~~~~~~~~~~~
+
+* ``Remove deprecated cleanup_stuck_queued_tasks from Celery and Kubernetes 
executors (#76129)``
+
+Features
+~~~~~~~~
+
+* ``Emit resumable_job metrics from KubernetesPodOperator (#75734)``
+* ``Let each team's KubernetesExecutor connect to its own cluster (#75251)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Render only the returned value in TaskFlow decorators that template it 
(#76244)``
+* ``Restore the on_operator_resuming callback in KubernetesPodOperator 
(#76035)``
+* ``Report Kubernetes API 403 errors from the deferrable pod trigger (#76081)``
+* ``Fix KubernetesJobOperator dry_run printing a Pod instead of a Job 
(#75403)``
+
+Misc
+~~~~
+
+* ``Remove unused Spark pod try number helper (#75787)``
+
+.. Below changes are excluded from the changelog. Move them to
+   appropriate section above if needed. Do not delete the lines(!):
+   * ``Remove unused Spark application expectation helper (#75877)``
+   * ``[main] Upgrade important CI environment (#76278)``
+   * ``[main] Upgrade important CI environment (#75270)``

Review Comment:
   Unlike most CI bumps, #75270 changes shipped code here: `XCOM_SIDECAR_IMAGE` 
moves from `alpine:3.24.2` to `alpine:3.24.3`. Anyone who mirrors that image 
for a disconnected cluster needs the new tag, so I suggest a `Misc` entry:
   
   `* ``Bump the default XCom sidecar image to alpine:3.24.3 (#75270)`` `
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/cncf/kubernetes/docs/changelog.rst:
##########
@@ -41,6 +44,37 @@ Changelog
 .. warning::
   The deprecated ``KubernetesExecutor.cleanup_stuck_queued_tasks`` and 
``LocalKubernetesExecutor.cleanup_stuck_queued_tasks`` methods have been 
removed. Use ``revoke_task`` instead.
 
+Breaking changes
+~~~~~~~~~~~~~~~~
+
+* ``Remove deprecated cleanup_stuck_queued_tasks from Celery and Kubernetes 
executors (#76129)``

Review Comment:
   Same as the celery entry: this provider's part of #76129 only touches its 
own executors.
   
   ```suggestion
   * ``Remove deprecated cleanup_stuck_queued_tasks from KubernetesExecutor and 
LocalKubernetesExecutor (#76129)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



##########
providers/common/ai/docs/changelog.rst:
##########
@@ -34,6 +37,28 @@ Changelog
   argument the task is called with, positional ones included, can be 
referenced in it by name;
   see the ``@task.llm`` documentation for how to include text from function 
arguments in it.
 
+Features
+~~~~~~~~
+
+* ``Suggest common model providers in the pydanticai connection form (#76053)``
+* ``Show which skills an agent was offered and used in the AI Model tab 
(#76309)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Render only the returned value in TaskFlow decorators that template it 
(#76244)``
+
+Doc-only
+~~~~~~~~
+
+* ``Add screenshots and a review loop example to the task loops docs (#76435)``

Review Comment:
   The only provider file in #76435 is `example_llm_review_loop.py`. The 
screenshots and task loops docs are in `airflow-core/docs`.
   
   ```suggestion
   * ``Add a review loop example Dag (#76435)``
   ```
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by `shahar1` before posting



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to