+1 binding - but with a few caveats, and some bad consequences if we
release it (up to Kaxil to decide)

Tested reproducibility, checksums signatures, licences are ok since all the
code is generated from "airflow", the package is **almost** reproducible -
the one difference is EOL in version,txt - which I attribute to building
the package before running pre-commit. Not a blocker since the diff is
easily verifiable. I ran a few runs - the client works in breeze in Python
3.10, but it fails with 3.9 because urllib3 in Python 3.9 is 1.26.8.

The current rc has "urllib3>=1.25.3" but in fact it will not work with it -
we already have a fix for that in main
https://github.com/apache/airflow/pull/50770 (because it failed the tests)
- and I think we should fix it.  Again - not a blocker, but it would likely
be better to fix it.

I tested that it does not work with urllib <2.1. (bad key passed to
lambda).. That would not be a big problem on its own if not for a Python
3.9 problem:

The client seems to work with 3.9  + urllib3 > 2.1. But several of our
packages limit urllib3 to < 2 for Python 3.9 (botocore, snowflake, tableau,
opensearch) - all of them with the samelimit (if python < 3.10 -> urllib3 <
2). Probably they have a good reason for that - but our client seems to
work fine on Python 3.9 with urllib3. I can imagine a number of people will
try to install the client inside the airflow image, so that they can use it
to interact with Airflow. And as it is now, without the `urllib > 2.1`
limit, the client can be installed on Airflow 3, (reference image) with
python 3.9 - but it will not work when at the same time  botocore,
snowflake providers are installed.

I think it would be better to see "conflict" rather than cryptic 'bad key
passed to lambda'. Possibly rc2 with the urllib limit applied is a good
idea.

BTW. It is yet another reason why we should consider dropping Python 3.9
faster.

J.


On Mon, May 19, 2025 at 8:35 AM Kaxil Naik <kaxiln...@gmail.com> wrote:

> Hey fellow Airflowers,
>
> I have cut the first release candidate for the Apache Airflow Python Client
> 3.0.0.
> This email is calling for a vote on the release,
> which will last for 72 hours. Consider this my (binding) +1.
>
> Airflow Client 3.0.0rc1 is available at:
> https://dist.apache.org/repos/dist/dev/airflow/clients/python/3.0.0rc1/
>
> The apache_airflow_client-3.0.0.tar.gz is an sdist release that contains
> INSTALL instructions, and also
> is the official source release.
>
> The apache_airflow_client-3.0.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.0.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*:
>
> https://github.com/apache/airflow/blob/main/clients/python/CHANGELOG.md#v300
>
> Regards,
> Kaxil
>

Reply via email to