+1 (binding):

   - checked SVN
   - checked Docker
   - checked reproducibility
   - checked licences
   - checked signatures
   - checked checksums

*Some notes:*

For posterity - this is the first time our "providers" release contains "
*-source.tar.gz*" file - tagged
(in this case) with *2025-11-03* - the date when release was prepared.

This was a flaw in the past processes, we assume .sdist files are good for
"source" release
for the ASF, but the source package should contain also tests and
documentation sources
and we dit not have it so we updated the process to contain the snapshot of
the airflow
repo at the moment of release (this way even if provider builds and test
depend on some
common code, we make sure they are all in the snapshot).

This is the new file (with signatures, checksums):
*apache_airflow_providers-2025-11-03-source.tar.gz*

See: https://dist.apache.org/repos/dist/dev/airflow/providers/

This will also help us in the future when we will use Apache Trusted
Releases and we will run several releases in parallel.

There were still a few things that I found that needs updating that I
forgot when we updated the process:

* I updated the release email template - it should contain the information
about the -source.tar.gz package (it does not currently)
* I added (in "check_files.py") to check for the -source.tar.gz file
presence (it did not check for it).
* some outputs for checks were wrong (we are also checking licences,
signatures and checksums for the `-source.tar.gz` now - corrected it).

The PR fixing it all is here: https://github.com/apache/airflow/pull/57796

*Jens:*

Yeah, the constraints are there to help for breeze installation with older
version of Airflow.

* I found initially that the Dockerfile.pmc generated has the same problem
with structlog on main (but this was because I did not have CI image
rebuilt - it was fixed after I rebuilt it.
* The `breeze start-airflow` is also fine when you use
`--use-airflow-version 3.1.1` for example.

This is what `--use-airflow-version` does. if you use it with airflow
version it will install airflow with the right constraints st(source
constraints in this case),

I guess you manually installed airflow 3.1.1 in breeze, but when you use
`--use-airflow-version 3.1.1` to start airflow, it will use the 3.1.1
constraints (Same with 3.1.0) to install airflow.
I just tried it and got structlog 25.4.0 installed by default also it
stayed installed after I pip-installed 1.4.1rc2

This is what breeze does in case you pass `--use-airflow-version 3.1.1`:

Installing airflow via apache-airflow==3.1.1
Determining airflow constraints location
Building constraints location from constraints reference: constraints-3.1.1
Determined airflow constraints as:
https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt

Do not install airflow task-sdk. It should be installed automatically if
needed by providers.

Do not install airflow ctl. It should be installed automatically if needed
by providers.
Determined providers constraints as:
https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-source-providers-3.10.txt
Installation specification:
InstallationSpec(
    airflow_distribution='apache-airflow[fab]==3.1.1',
    airflow_core_distribution='apache-airflow-core==3.1.1',
    airflow_constraints_location='
https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt
',
    airflow_task_sdk_distribution=None,
    airflow_ctl_distribution=None,
    airflow_ctl_constraints_location=None,
    compile_ui_assets=False,
    provider_distributions=[],
    provider_constraints_location='
https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-source-providers-3.10.txt
',
    pre_release=False
)
Installing airflow core, task-sdk with constraints
Airflow constraints location:
https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt
Airflow distribution apache-airflow==3.1.1
Airflow core distribution apache-airflow-core==3.1.1
Airflow task-sdk distribution None
Airflow ctl constraints location:  None

Installing airflow distribution: apache-airflow==3.1.1 with constraints

Installing airflow core distribution: apache-airflow-core==3.1.1 with
constraints
Use constraints:
https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt

Running command: *uv pip install 'apache-airflow[fab]==3.1.1'
apache-airflow-core==3.1.1 --constraint
https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt
<https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-source-providers-3.10.txt>*


J.




On Tue, Nov 4, 2025 at 10:17 AM Amogh Desai <[email protected]> wrote:

> +1 binding.
>
> - Checked SVN
> - Checked in Docker
> - Checked reproducible package builds
> - Checked licenses
> - Checked signatures
>
> Didn't have any changes, so my tests are limited to the PMC checks.
>
> Thanks & Regards,
> Amogh Desai
>
>
> On Tue, Nov 4, 2025 at 2:36 PM Amogh Desai <[email protected]> wrote:
>
> > Jens, we have constrained structlog to disallow 25.5.0:
> >
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.0/constraints-3.10.txt
> >
> > So, that should not be a problem for you :), maybe it was installed in
> > your environment.
> >
> > Thanks & Regards,
> > Amogh Desai
> >
> >
> > On Tue, Nov 4, 2025 at 3:59 AM Jens Scheffler <[email protected]>
> wrote:
> >
> >> +1 (binding) - Checked SVN, Check in Docker, Reproducible package build,
> >> Licenses, Signatures
> >>
> >> Installed the edge provider with current common-compat in Airflow
> >> 2.11.0, 3.0.6, 3.1.2rc1 and main and tested with EdgeExecutor and
> >> Integration Test Dag, all loking good.
> >>
> >> Will test detailled issue resolution (subpath etc) tomorrow but until
> >> now all good to release. Best release we had for Edge3 ever :-D
> >>
> >> Note: Was not able to install providers with Airflow 3.1.1 as
> >> structlog==25.5.0 installed by breeze has some incompatability and breze
> >> start failed with - assume this is not blocking providers release -
> >> assume this is because constraints are installed from main and not 3.1.1
> >> in breeze:
> >>
> >> Traceback (most recent call last):
> >>    File "/usr/python/bin/airflow", line 4, in <module>
> >>      from airflow.__main__ import main
> >>    File "/usr/python/lib/python3.12/site-packages/airflow/__init__.py",
> >> line 79, in <module>
> >>      settings.initialize()
> >>    File "/usr/python/lib/python3.12/site-packages/airflow/settings.py",
> >> line 698, in initialize
> >>      LOGGING_CLASS_PATH = configure_logging()
> >>                           ^^^^^^^^^^^^^^^^^^^
> >>    File
> >> "/usr/python/lib/python3.12/site-packages/airflow/logging_config.py",
> >> line 88, in configure_logging
> >>      from airflow._shared.logging import configure_logging,
> >> init_log_folder, translate_config_values
> >>    File
> >>
> "/usr/python/lib/python3.12/site-packages/airflow/_shared/logging/__init__.py",
> >>
> >> line 27, in <module>
> >>      from .structlog import configure_logging, init_log_file,
> >> init_log_folder
> >>    File
> >>
> "/usr/python/lib/python3.12/site-packages/airflow/_shared/logging/structlog.py",
> >>
> >> line 38, in <module>
> >>      from .percent_formatter import PercentFormatRender
> >>    File
> >>
> "/usr/python/lib/python3.12/site-packages/airflow/_shared/logging/percent_formatter.py",
> >>
> >> line 29, in <module>
> >>      from structlog.dev import ConsoleRenderer, Styles
> >> ImportError: cannot import name 'Styles' from 'structlog.dev'
> >> (/usr/python/lib/python3.12/site-packages/structlog/dev.py)
> >>
> >> Error: check_environment returned 1. Exiting.
> >>
> >> Call that I used for testing: breeze start-airflow --python 3.12
> >> --load-example-dags --backend postgres --executor EdgeExecutor --answer
> >> y --use-airflow-version 3.1.1 --use-distributions-from-dist
> >>
> >> Tested also with Airflow 3.1.0 and saw as intended that edge3 provider
> >> 1.4.1rc2 can not installed with Airflow 3.1.0 as UI plugin incompatible.
> >>
> >> Using Python 3.12.12 environment at: /usr/python
> >>    × No solution found when resolving dependencies:
> >>    ╰─▶ Because only apache-airflow-providers-edge3==1.4.1 is available
> >> and apache-airflow-providers-edge3==1.4.1 depends on one of:
> >>            apache-airflow>=2.10.0,<3.1.0
> >>            apache-airflow>3.1.0
> >>        we can conclude that all versions of
> >> apache-airflow-providers-edge3 depend on one of:
> >>            apache-airflow>=2.10.0,<3.1.0
> >>            apache-airflow>3.1.0
> >>
> >>        And because you require apache-airflow==3.1.0 and
> >> apache-airflow-providers-edge3, we can conclude that your requirements
> >> are unsatisfiable.
> >>
> >> On 11/3/25 13:06, Elad Kalif wrote:
> >> > Hey all,
> >> >
> >> > I have just cut the ad-hoc wave Airflow Providers packages. This email
> >> is
> >> > calling a vote on the release, which will last for 72 hours - which
> >> means
> >> > that it will end on November 06, 2025 12:05 PM UTC and until 3 binding
> >> +1
> >> > votes have been received.
> >> >
> >> > Consider this my (binding) +1.
> >> >
> >> > Airflow Providers are available at:
> >> > https://dist.apache.org/repos/dist/dev/airflow/providers/
> >> >
> >> > *apache-airflow-providers-<PROVIDER>-*.tar.gz* are the binary
> >> >   Python "sdist" release - they are also official "sources" for the
> >> Provider
> >> > distributions.
> >> >
> >> > *apache_airflow_providers_<PROVIDER>-*.whl are the binary
> >> >   Python "wheel" release.
> >> >
> >> > The test procedure for PMC members is described in
> >> >
> >>
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PROVIDERS.md#verify-the-release-candidate-by-pmc-members
> >> >
> >> > The test procedure for and Contributors who would like to test this RC
> >> is
> >> > described in:
> >> >
> >>
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PROVIDERS.md#verify-the-release-candidate-by-contributors
> >> >
> >> >
> >> > Public keys are available at:
> >> > https://dist.apache.org/repos/dist/release/airflow/KEYS
> >> >
> >> > Please vote accordingly:
> >> >
> >> > [ ] +1 approve
> >> > [ ] +0 no opinion
> >> > [ ] -1 disapprove with the reason
> >> >
> >> > Only votes from PMC members are binding, but members of the community
> >> are
> >> > encouraged to test the release and vote with "(non-binding)".
> >> >
> >> > Please note that the version number excludes the 'rcX' string.
> >> > This will allow us to rename the artifact without modifying
> >> > the artifact checksums when we actually release.
> >> >
> >> > The status of testing the providers by the community is kept here:
> >> > https://github.com/apache/airflow/issues/57739
> >> >
> >> > The issue is also the easiest way to see important PRs included in the
> >> RC
> >> > candidates.
> >> > Detailed changelog for the providers will be published in the
> >> documentation
> >> > after the
> >> > RC candidates are released.
> >> >
> >> > You can find the RC packages in PyPI following these links:
> >> >
> >> > https://pypi.org/project/apache-airflow-providers-edge3/1.4.1rc2/
> >> >
> >> > Cheers,
> >> > Elad Kalif
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
>

Reply via email to