+1 (binding): Checked all my changes, I ran airflow in a few combinations
(MySQL / Postgres Local/Celery executor. It looks and works well - run a
few dags and navigated through a number of screens. Checked licences,
signatures, checksums, performed a "reproducible build" check and it worked
(with a small glitch explained below).

BTW. The new "hatchling-built" package looks good and it nicely installs
airflow + extras (and it has a far better and cleaner set of extras -
finally you can reproducibly install airflow with `all` extra if you
***REALLY*** want :).

Reproducibility (also for other PMC members doing the check): I found a
small glitch in the "reproducible" part of verifying the packages. While
wheel and sdist packages are exactly the same binary-wise, the
source-tarball was binarry different for me. I decompressed it and compared
the content - they are identical - but there is one difference which I
overlooked - the group permissions for files in Ephraim's tarball are
different from mine. I have totally forgotten about the fact that umask
might set different group/other permissions when checking out the files
from git. Fix will be coming shortly - in the meantime I recommend anyone
who will be doing the comparison to uncompress both tarballs and compare
the contents with `diff -r`.



On Tue, Jan 16, 2024 at 11:30 AM Ephraim Anierobi <
ephraimanier...@apache.org> wrote:

> Hey fellow Airflowers,
>
> I have cut Airflow 2.8.1rc1. This email is calling a vote on the release,
> which will last at least 72 hours, from Tuesday, January 16, 2024 at 10:30
> am UTC
> until Friday, January 19, 2024, at 10:30 am UTC
> <
> https://www.timeanddate.com/worldclock/fixedtime.html?msg=8&iso=20240119T1030&p1=1440
> >,
> and until 3 binding +1 votes have been received.
>
> Status of testing of the release is kept at
> https://github.com/apache/airflow/issues/36808
>
> Consider this my (binding) +1.
>
> Airflow 2.8.1rc1 is available at:
> https://dist.apache.org/repos/dist/dev/airflow/2.8.1rc1/
>
> *apache-airflow-2.8.1-source.tar.gz* is a source release that comes with
> INSTALL instructions.
> *apache-airflow-2.8.1.tar.gz* is the binary Python "sdist" release.
> *apache_airflow-2.8.1-py3-none-any.whl* is the binary Python wheel "binary"
> release.
>
> 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 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_AIRFLOW.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_AIRFLOW.md\#verify-the-release-candidate-by-contributors
>
>
> Please note that the version number excludes the `rcX` string, so it's now
> simply 2.8.1. This will allow us to rename the artifact without modifying
> the artifact checksums when we actually release.
>
> Release Notes:
> https://github.com/apache/airflow/blob/2.8.1rc1/RELEASE_NOTES.rst
>
> Changes since 2.8.0:
>
> *Significant Changes*
>
> *Target version for core dependency ``pendulum`` package set to 3
> (#36281).*
> Support for pendulum 2.1.2 will be saved for a while, presumably until the
> next feature version of Airflow.
> It is advised to upgrade user code to use pendulum 3 as soon as possible.
>
> *Airflow packaging specification follows modern Python packaging standards
> (#36537).*
> We standardized Airflow dependency configuration to follow latest
> development in Python packaging by
> using ``pyproject.toml``. Airflow is now compliant with those accepted
> PEPs:
>
> * `PEP-440 Version Identification and Dependency Specification <
> https://www.python.org/dev/peps/pep-0440/>`__
> * `PEP-517 A build-system independent format for source trees <
> https://www.python.org/dev/peps/pep-0517/>`__
> * `PEP-518 Specifying Minimum Build System Requirements for Python Projects
> <https://www.python.org/dev/peps/pep-0518/>`__
> * `PEP-561 Distributing and Packaging Type Information <
> https://www.python.org/dev/peps/pep-0561/>`__
> * `PEP-621 Storing project metadata in pyproject.toml <
> https://www.python.org/dev/peps/pep-0621/>`__
> * `PEP-660 Editable installs for pyproject.toml based builds (wheel based)
> <
> https://www.python.org/dev/peps/pep-0660/>`__
> * `PEP-685 Comparison of extra names for optional distribution dependencies
> <https://www.python.org/dev/peps/pep-0685/>`__
>
> Also we implement multiple license files support coming from Draft, not yet
> accepted (but supported by hatchling) PEP:
> * `PEP 639 Improving License Clarity with Better Package Metadata <
> https://peps.python.org/pep-0639/>`__
>
> This has almost no noticeable impact on users if they are using modern
> Python packaging and development tools, generally
> speaking Airflow should behave as it did before when installing it from
> PyPI and it should be much easier to install
> it for development purposes using ``pip install -e ".[devel]"``.
>
> The differences from the user side are:
>
> * Airflow extras now get extras normalized to ``-`` (following PEP-685)
> instead of ``_`` and ``.``
>   (as it was before in some extras). When you install airflow with such
> extras (for example ``dbt.core`` or
>   ``all_dbs``) you should use ``-`` instead of ``_`` and ``.``.
>
> In most modern tools this will work in backwards-compatible way, but in
> some old version of those tools you might need to
> replace ``_`` and ``.`` with ``-``. You can also get warnings that the
> extra you are installing does not exist - but usually
> this warning is harmless and the extra is installed anyway. It is, however,
> recommended to change to use ``-`` in extras in your dependency
> specifications for all Airflow extras.
>
> * Released airflow package does not contain ``devel``, ``devel-*``, ``doc``
> and ``doc-gen`` extras.
>   Those extras are only available when you install Airflow from sources in
> ``--editable`` mode. This is
>   because those extras are only used for development and documentation
> building purposes and are not needed
>   when you install Airflow for production use. Those dependencies had
> unspecified and varying behaviour for
>   released packages anyway and you were not supposed to use them in
> released packages.
>
> * The ``all`` and ``all-*`` extras were not always working correctly when
> installing Airflow using constraints
>   because they were also considered as development-only dependencies. With
> this change, those dependencies are
>   now properly handling constraints and they will install properly with
> constraints, pulling the right set
>   of providers and dependencies when constraints are used.
>
> *Graphviz dependency is now an optional one, not required one (#36647).*
> The ``graphviz`` dependency has been problematic as Airflow required
> dependency - especially for
> ARM-based installations. Graphviz packages require binary graphviz
> libraries - which is already a
> limitation, but they also require to install graphviz Python bindings to be
> build and installed.
> This does not work for older Linux installation but - more importantly -
> when you try to install
> Graphviz libraries for Python 3.8, 3.9 for ARM M1 MacBooks, the packages
> fail to install because
> Python bindings compilation for M1 can only work for Python 3.10+.
>
> This is not a breaking change technically - the CLIs to render the DAGs is
> still there and IF you
> already have graphviz installed, it will continue working as it did before.
> The only problem when it
> does not work is where you do not have graphviz installed it will raise an
> error and inform that you need it.
>
> Graphviz will remain to be installed for most users:
>
> * the Airflow Image will still contain graphviz library, because
>   it is added there as extra
> * when previous version of Airflow has been installed already, then
>   graphviz library is already installed there and Airflow will
>   continue working as it did
>
> The only change will be a new installation of new version of Airflow from
> the scratch, where graphviz will
> need to be specified as extra or installed separately in order to enable
> DAG rendering option.
>
> *Bug Fixes*
> - Fix airflow-scheduler exiting with code 0 on exceptions (#36800)
> - Fix Callback exception when a removed task is the last one in the
> ``taskinstance`` list (#36693)
> - Allow anonymous user edit/show resource when set
> ``AUTH_ROLE_PUBLIC=admin`` (#36750)
> - Better error message when sqlite URL uses relative path (#36774)
> - Explicit string cast required to force integer-type run_ids to be passed
> as strings instead of integers (#36756)
> - Add log lookup exception for empty ``op`` subtypes (#35536)
> - Remove unused index on task instance (#36737)
> - Fix check on subclass for ``typing.Union`` in ``_infer_multiple_outputs``
> for Python 3.10+ (#36728)
> - Make sure ``multiple_outputs`` is inferred correctly even when using
> ``TypedDict`` (#36652)
> - Add back FAB constant in legacy security manager (#36719)
> - Fix AttributeError when using ``Dagrun.update_state`` (#36712)
> - Do not let ``EventsTimetable`` schedule past events if ``catchup=False``
> (#36134)
> - Support encryption for triggers parameters (#36492)
> - Fix the type hint for ``tis_query`` in ``_process_executor_events``
> (#36655)
> - Redirect to index when user does not have permission to access a page
> (#36623)
> - Avoid using dict as default value in ``call_regular_interval`` (#36608)
> - Remove option to set a task instance to running state in UI (#36518)
> - Fix details tab not showing when using dynamic task mapping (#36522)
> - Raise error when ``DagRun`` fails while running ``dag test`` (#36517)
> - Refactor ``_manage_executor_state`` by refreshing TIs in batch (#36502)
> - Add flask config: ``MAX_CONTENT_LENGTH`` (#36401)
> - Fix get_leaves calculation for teardown in nested group (#36456)
> - Stop serializing timezone-naive datetime to timezone-aware datetime with
> UTC tz (#36379)
> - Make ``kubernetes`` decorator type annotation consistent with operator
> (#36405)
> - Fix Webserver returning 500 for POST requests to ``api/dag/*/dagrun``
> from anonymous user (#36275)
> - Fix the required access for get_variable endpoint (#36396)
> - Fix datetime reference in ``DAG.is_fixed_time_schedule`` (#36370)
> - Fix AirflowSkipException message raised by BashOperator (#36354)
> - Allow PythonVirtualenvOperator.skip_on_exit_code to be zero (#36361)
> - Increase width of execution_date input in trigger.html (#36278)
> - Fix logging for pausing DAG (#36182)
> - Stop deserializing pickle when enable_xcom_pickling is False (#36255)
> - Check DAG read permission before accessing DAG code (#36257)
> - Enable mark task as failed/success always (#36254)
> - Create latest log dir symlink as relative link (#36019)
> - Fix Python-based decorators templating (#36103)
>
> *Miscellaneous*
> - Rename concurrency label to max active tasks (#36691)
> - Restore function scoped ``httpx`` import in file_task_handler for
> performance (#36753)
> - Add support of Pendulum 3 (#36281)
> - Standardize airflow build process and switch to Hatchling build backend
> (#36537)
> - Get rid of ``pyarrow-hotfix`` for ``CVE-2023-47248`` (#36697)
> - Make ``graphviz`` dependency optional (#36647)
> - Announce MSSQL support end in Airflow 2.9.0, add migration script hints
> (#36509)
> - Set min ``pandas`` dependency to 1.2.5 for all providers and airflow
> (#36698)
> - Bump follow-redirects from 1.15.3 to 1.15.4 in ``/airflow/www`` (#36700)
> - Provide the logger_name param to base hook in order to override the
> logger name (#36674)
> - Fix run type icon alignment with run type text (#36616)
> - Follow BaseHook connection fields method signature in FSHook (#36444)
> - Remove redundant ``docker`` decorator type annotations (#36406)
> - Straighten typing in workday timetable (#36296)
> - Use ``batch_is_authorized_dag`` to check if user has permission to read
> DAGs (#36279)
> - Replace deprecated get_accessible_dag_ids and use get_readable_dags in
> get_dag_warnings (#36256)
>
> *Doc Only Changes*
> - Metrics tagging documentation (#36627)
> - In docs use logical_date instead of deprecated execution_date (#36654)
> - Add section about live-upgrading Airflow (#36637)
> - Replace ``numpy`` example with practical exercise demonstrating top-level
> code (#35097)
> - Improve and add more complete description in the architecture diagrams
> (#36513)
> - Improve the error message displayed when there is a webserver error
> (#36570)
> - Update ``dags.rst`` with information on DAG pausing (#36540)
> - Update installation prerequisites after upgrading to Debian Bookworm
> (#36521)
> - Add description on the ways how users should approach DB monitoring
> (#36483)
> - Add branching based on mapped task group example to
> dynamic-task-mapping.rst (#36480)
> - Add further details to replacement documentation (#36485)
> - Use cards when describing priority weighting methods (#36411)
> - Update ``metrics.rst`` for param ``dagrun.schedule_delay`` (#36404)
> - Update admonitions in Python operator doc to reflect sentiment (#36340)
> - Improve audit_logs.rst (#36213)
> - Remove Redshift mention from the list of managed Postgres backends
> (#36217)
>
> Cheers,
> Ephraim
>

Reply via email to