+1 (binding), checked:

- SVN
- Reproducible build
- Licence
- Signature
- Checksums

Best regards,
Wei Lee


On Wednesday, November 11th, 2026 at 5:11 AM, Kevin Yang 
<[email protected]> wrote:

> +1 (non-binding)
> 
> Thanks for preparing the release!
> 
> I tested 3.4.0rc1 from PyPI against Airflow 3.4.0 in Breeze (SQLite,
> example Dags), and the official smoke test passed. I also ran a few extra
> checks: the client loads the details of all 246 example Dags, as well as
> Dag runs and task instances, and the new 3.4.0 features I tried work as
> expected (draining a Dag, filtering Dag runs by tags, the is_scheduled
> filter, asset events by partition_key, job filters, Dag version diff and
> bundle details). The SHA-512 of the SVN wheel matches, and the wheel
> installs and passes the same smoke test.
> 
> One non-blocking note: the "Non-interactive smoke test" commands in the
> release guide don't work as written. The version variable is set on the
> host and never reaches the Breeze container, and the wheel path should be
> /dist instead of /opt/airflow/dist. The airflowctl guide has the same
> issue. This only affects the docs, not the release, and I opened a PR to
> update it: https://github.com/apache/airflow/pull/76870
> 
> Best,
> Kevin
> 
> On Mon, Nov 9, 2026 at 7:14 AM Rahul Vats <[email protected]> wrote:
> 
> > Hey fellow Airflowers,
> >
> > The release candidate for Apache Airflow Python Client 3.4.0rc1 is now
> > available for testing!
> >
> > This email is calling for a vote on the release, which will last at least
> > 72 hours, from Mon, Nov 9, 2026 at 12:00 PM UTC
> > until Thursday, Nov 12, 2026 at 12:00 PM UTC, and until 3 binding +1 votes
> > have been received.
> >
> > Consider this my (binding) +1.
> >
> > Airflow Client 3.4.0rc1 is available at:
> > https://dist.apache.org/repos/dist/dev/airflow/clients/python/3.4.0rc1/
> >
> > The apache_airflow_client-3.4.0.tar.gz is an sdist release that contains
> > INSTALL instructions, and also
> > is the official source release.
> >
> > The apache_airflow_client-3.4.0-py3-none-any.whl is a binary wheel release
> > that pip can install.
> >
> > Those packages do not contain .rc* version as, when approved, they will be
> > released as the final version.
> >
> > The rc packages are also available at PyPI (with rc suffix) and you can
> > install it with pip as usual:
> > https://pypi.org/project/apache-airflow-client/3.4.0rc1/
> >
> > Public keys are available at:
> > https://dist.apache.org/repos/dist/release/airflow/KEYS
> >
> > Only votes from PMC members are binding, but all members of the community
> > are encouraged to test the release and vote with "(non-binding)".
> >
> > The test procedure for PMC members is described in:
> >
> > https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PYTHON_CLIENT.md\#verify-the-release-candidate-by-pmc-members
> >
> > The test procedure for contributors and members of the community who would
> > like to test this RC is described in:
> >
> > https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PYTHON_CLIENT.md\#verify-the-release-candidate-by-contributors
> >
> > *Changelog:*
> >
> > ## New Features:
> >
> > - Let plugins add their own actions to Dag, run and task instance rows
> > (#75427)
> > - Add an API endpoint comparing two stored Dag versions (#73322)
> > - Allow filtering the Dag runs list by Dag tags (#70861)
> > - Add a draining state for graceful Dag pausing (#72407)
> > - Add bulk pause, drain and unpause actions to the Dags list (#73055)
> > - Add a Dag bundle detail endpoint listing the files in a bundle (#73009)
> > - Add an `is_scheduled` filter to the REST API (#72029)
> > - Add an API endpoint for backfill Dag run entries (#67381)
> > - Add a bundle-version parameter to the Dag run trigger endpoint (#61550)
> > - Add an exact-match `uri` filter to `GET /assets` (#69489)
> > - Add `partition_key` and `partition_key_regexp_pattern` filters for asset
> > events (#64610)
> > - Add extra-field filtering for asset events (#64611)
> > - Add filters and pagination to the jobs list (#68616)
> > - Add an Asset Tab plugin (#69986)
> > - Add React plugin support to Dag and task overviews (#69992)
> > - Add `owner_display_name` substring and prefix filters to the Dag list
> > (#70583)
> > - Add a team column and filter to the Dag run and task instance lists
> > (#70241)
> > - Add a team column and filter to the jobs list (#73295)
> > - Add a team column and filter to the XComs list (#72158)
> > - Add a team column and filter to the audit log (#71916)
> > - Add a team filter to the Human-in-the-loop task instances listing
> > (#73726)
> > - Add Task Loops: expose loop iterations and outcomes via
> > `loop_id`/`iteration` filters and a `LoopIterationResponse` (#74354)
> > - Read current task executions by exact loop region
> > (`region_id`/`region_index`) and try (#74350)
> > - Clear selected task-loop work and regenerate only what was replaced
> > (#74349)
> > - Describe a task at a specific Dag version via the task endpoint (#74365)
> > - Filter task instances by `loop_id` and a single loop pass (#74931)
> >
> > ## Improvements:
> >
> > - Expose the retry deadline on task instances and reset run fields when a
> > retry starts (#76028)
> > - Surface the retry-policy decision on task instances (#73030)
> > - Attribute log, asset-event and asset-state writes to the task attempt
> > (#74347)
> > - Expose an `in_loop` flag on task instances (#74352)
> > - Give every mapped expansion a loop region, including a `409` on region
> > conflicts (#74346)
> > - Let loop gates record human-readable decisions (#74932)
> > - Number task loop iterations from one instead of zero (#75260)
> > - Deprecate cyclic TaskGroup dependencies, adding a `task group cycle` Dag
> > warning (#73746)
> > - Scope plugin views on any entity field, not a fixed criteria set (#74278)
> > - Allow scoping plugin tabs to specific Dags and tasks (#69148)
> > - Add a `team_name` attribute to plugins for multi-team (#69502)
> > - Allow a Job to be associated with several teams (#73561)
> > - Expand the health endpoint reporting (#70416)
> > - Add `source_reference` and `language` to the warning, import-error and
> > Dag source models (#72474)
> > - Add a `duplicate dag id` Dag warning type (#68791)
> > - Show Dag bundle versions and refresh times (#72909)
> > - Show the owning team in asset dependencies (#71446)
> > - Show the owning team on Dag, Dag run and task instance detail responses
> > (#70312)
> > - Add `owner_display_name` to the audit log (#68833)
> > - Return a `file_token` on Dag import errors for requesting a reparse
> > (#72896)
> > - Allow explicit runs to drain a paused Dag (#73763)
> > - Type `asset_expression` in the REST API so consumers need not cast
> > through unknown (#67725)
> > - Document HTTP statuses that route helpers raise (#74027)
> > - Keep OpenAPI error responses in sync with the statuses routes raise
> > (#71647)
> > - Document favorite Dag's 409 and return a readable conflict message
> > (#73411)
> > - Make `latest_dag_version` a required field on the Dag details response
> > (#74247)
> >
> > ## Bug Fixes:
> >
> > - Clear retry-policy state when a task instance is cleared (#75646)
> > - Reject non-positive `max_active_runs` when creating a backfill (#75320)
> > - Reject blank pool names and variable keys in the REST API (#75258)
> > - Fix HTTP 500 when ordering the Dag list by state or start date (#75148)
> > - Refuse a Human-in-the-loop response for a request the task has since
> > replaced (#74982)
> > - Filter the jobs `is_alive` check in SQL so pagination stays correct
> > (#73684)
> > - Discard a task instance's stored task-state values when it is cleared
> > (#72100)
> > - Clear all task instances in a task group, not just the first page
> > (#73547)
> > - Require a request body on the asset materialize endpoint (#73328)
> > - Hide unreadable assets in the asset expression served by
> > `next_run_assets` (#72864)
> > - Stop reporting components as degraded after an instance restart (#73222)
> > - Return asset events for Dag runs without a start date (#71379)
> > - Fix the Dag detail HTTP 500 for Dags without a `fileloc` (#69110)
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to