Skip to content

Commit c0ffa9c

Browse files
committed
Update RELEASE_NOTES.rst
1 parent 36422ed commit c0ffa9c

File tree

6 files changed

+152
-142
lines changed

6 files changed

+152
-142
lines changed

RELEASE_NOTES.rst

+149-71
Original file line numberDiff line numberDiff line change
@@ -27,92 +27,170 @@ Airflow 2.8.1 (2024-01-19)
2727
Significant Changes
2828
^^^^^^^^^^^^^^^^^^^
2929

30-
- Target version for core dependency ``pendulum`` package set to 3
31-
32-
Support for pendulum 2.1.2 will be saved for a while, presumably until the next feature version of Airflow.
33-
It is advised to upgrade user code to use pendulum 3 as soon as possible. (#36281)
34-
- Airflow packaging specification follows modern Python packaging standards.
35-
36-
We standardized Airflow dependency configuration to follow latest development in Python packaging by
37-
using pyproject.toml. Airflow is now compliant with those accepted PEPs:
38-
39-
* `PEP-440 Version Identification and Dependency Specification <https://www.python.org/dev/peps/pep-0440/>`__
40-
* `PEP-517 A build-system independent format for source trees <https://www.python.org/dev/peps/pep-0517/>`__
41-
* `PEP-518 Specifying Minimum Build System Requirements for Python Projects <https://www.python.org/dev/peps/pep-0518/>`__
42-
* `PEP-561 Distributing and Packaging Type Information <https://www.python.org/dev/peps/pep-0561/>`__
43-
* `PEP-621 Storing project metadata in pyproject.toml <https://www.python.org/dev/peps/pep-0621/>`__
44-
* `PEP-660 Editable installs for pyproject.toml based builds (wheel based) <https://www.python.org/dev/peps/pep-0660/>`__
45-
* `PEP-685 Comparison of extra names for optional distribution dependencies <https://www.python.org/dev/peps/pep-0685/>`__
46-
47-
Also we implement multiple license files support coming from Draft, not yet accepted (but supported by hatchling) PEP:
48-
* `PEP 639 Improving License Clarity with Better Package Metadata <https://peps.python.org/pep-0639/>`__
49-
50-
This has almost no noticeable impact on users if they are using modern Python packaging and development tools, generally
51-
speaking Airflow should behave as it did before when installing it from PyPI and it should be much easier to install
52-
it for development purposes using ``pip install -e ".[devel]"``.
53-
54-
The differences from the user side are:
55-
56-
* Airflow extras now get extras normalized to ``-`` (following PEP-685) instead of ``_`` and ``.``
57-
(as it was before in some extras). When you install airflow with such extras (for example ``dbt.core`` or
58-
``all_dbs``) you should use ``-`` instead of ``_`` and ``.``.
59-
60-
In most modern tools this will work in backwards-compatible way, but in some old version of those tools you might need to
61-
replace ``_`` and ``.`` with ``-``. You can also get warnings that the extra you are installing does not exist - but usually
62-
this warning is harmless and the extra is installed anyway. It is, however, recommended to change to use ``-`` in extras in your dependency
63-
specifications for all Airflow extras.
30+
Target version for core dependency ``pendulum`` package set to 3 (#36281).
31+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
32+
Support for pendulum 2.1.2 will be saved for a while, presumably until the next feature version of Airflow.
33+
It is advised to upgrade user code to use pendulum 3 as soon as possible.
6434

65-
* Released airflow package does not contain ``devel``, ``devel-*``, ``doc`` and ``doc-gen`` extras.
66-
Those extras are only available when you install Airflow from sources in ``--editable`` mode. This is
67-
because those extras are only used for development and documentation building purposes and are not needed
68-
when you install Airflow for production use. Those dependencies had unspecified and varying behaviour for
69-
released packages anyway and you were not supposed to use them in released packages.
35+
Airflow packaging specification follows modern Python packaging standards (#36537).
36+
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
37+
We standardized Airflow dependency configuration to follow latest development in Python packaging by
38+
using ``pyproject.toml``. Airflow is now compliant with those accepted PEPs:
39+
40+
* `PEP-440 Version Identification and Dependency Specification <https://www.python.org/dev/peps/pep-0440/>`__
41+
* `PEP-517 A build-system independent format for source trees <https://www.python.org/dev/peps/pep-0517/>`__
42+
* `PEP-518 Specifying Minimum Build System Requirements for Python Projects <https://www.python.org/dev/peps/pep-0518/>`__
43+
* `PEP-561 Distributing and Packaging Type Information <https://www.python.org/dev/peps/pep-0561/>`__
44+
* `PEP-621 Storing project metadata in pyproject.toml <https://www.python.org/dev/peps/pep-0621/>`__
45+
* `PEP-660 Editable installs for pyproject.toml based builds (wheel based) <https://www.python.org/dev/peps/pep-0660/>`__
46+
* `PEP-685 Comparison of extra names for optional distribution dependencies <https://www.python.org/dev/peps/pep-0685/>`__
47+
48+
Also we implement multiple license files support coming from Draft, not yet accepted (but supported by hatchling) PEP:
49+
* `PEP 639 Improving License Clarity with Better Package Metadata <https://peps.python.org/pep-0639/>`__
50+
51+
This has almost no noticeable impact on users if they are using modern Python packaging and development tools, generally
52+
speaking Airflow should behave as it did before when installing it from PyPI and it should be much easier to install
53+
it for development purposes using ``pip install -e ".[devel]"``.
54+
55+
The differences from the user side are:
56+
57+
* Airflow extras now get extras normalized to ``-`` (following PEP-685) instead of ``_`` and ``.``
58+
(as it was before in some extras). When you install airflow with such extras (for example ``dbt.core`` or
59+
``all_dbs``) you should use ``-`` instead of ``_`` and ``.``.
60+
61+
In most modern tools this will work in backwards-compatible way, but in some old version of those tools you might need to
62+
replace ``_`` and ``.`` with ``-``. You can also get warnings that the extra you are installing does not exist - but usually
63+
this warning is harmless and the extra is installed anyway. It is, however, recommended to change to use ``-`` in extras in your dependency
64+
specifications for all Airflow extras.
65+
66+
* Released airflow package does not contain ``devel``, ``devel-*``, ``doc`` and ``doc-gen`` extras.
67+
Those extras are only available when you install Airflow from sources in ``--editable`` mode. This is
68+
because those extras are only used for development and documentation building purposes and are not needed
69+
when you install Airflow for production use. Those dependencies had unspecified and varying behaviour for
70+
released packages anyway and you were not supposed to use them in released packages.
71+
72+
* The ``all`` and ``all-*`` extras were not always working correctly when installing Airflow using constraints
73+
because they were also considered as development-only dependencies. With this change, those dependencies are
74+
now properly handling constraints and they will install properly with constraints, pulling the right set
75+
of providers and dependencies when constraints are used.
76+
77+
Graphviz dependency is now an optional one, not required one (#36647).
78+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
79+
The ``graphviz`` dependency has been problematic as Airflow required dependency - especially for
80+
ARM-based installations. Graphviz packages require binary graphviz libraries - which is already a
81+
limitation, but they also require to install graphviz Python bindings to be build and installed.
82+
This does not work for older Linux installation but - more importantly - when you try to install
83+
Graphviz libraries for Python 3.8, 3.9 for ARM M1 MacBooks, the packages fail to install because
84+
Python bindings compilation for M1 can only work for Python 3.10+.
7085

71-
* The ``all`` and ``all-*`` extras were not always working correctly when installing Airflow using constraints
72-
because they were also considered as development-only dependencies. With this change, those dependencies are
73-
now properly handling constraints and they will install properly with constraints, pulling the right set
74-
of providers and dependencies when constraints are used. (#36537)
75-
- Graphviz dependency is now an optional one, not required one.
86+
This is not a breaking change technically - the CLIs to render the DAGs is still there and IF you
87+
already have graphviz installed, it will continue working as it did before. The only problem when it
88+
does not work is where you do not have graphviz installed it will raise an error and inform that you need it.
7689

77-
The ``graphviz`` dependency has been problematic as Airflow required dependency - especially for
78-
ARM-based installations. Graphviz packages require binary graphviz libraries - which is already a
79-
limitation, but they also require to install graphviz Python bindings to be build and installed.
80-
This does not work for older Linux installation but - more importantly - when you try to install
81-
Graphviz libraries for Python 3.8, 3.9 for ARM M1 MacBooks, the packages fail to install because
82-
Python bindings compilation for M1 can only work for Python 3.10+.
90+
Graphviz will remain to be installed for most users:
8391

84-
This is not a breaking change technically - the CLIs to render the DAGs is still there and IF you
85-
already have graphviz installed, it will continue working as it did before. The only problem when it
86-
does not work is where you do not have graphviz installed it will raise an error and inform that you need it.
92+
* the Airflow Image will still contain graphviz library, because
93+
it is added there as extra
94+
* when previous version of Airflow has been installed already, then
95+
graphviz library is already installed there and Airflow will
96+
continue working as it did
8797

88-
Graphviz will remain to be installed for most users:
98+
The only change will be a new installation of new version of Airflow from the scratch, where graphviz will
99+
need to be specified as extra or installed separately in order to enable DAG rendering option.
89100

90-
* the Airflow Image will still contain graphviz library, because
91-
it is added there as extra
92-
* when previous version of Airflow has been installed already, then
93-
graphviz library is already installed there and Airflow will
94-
continue working as it did
101+
Bug Fixes
102+
"""""""""
103+
- Fix airflow-scheduler exiting with code 0 on exceptions (#36800)
104+
- Fix Callback exception when a removed task is the last one in the ``taskinstance`` list (#36693)
105+
- Allow anonymous user edit/show resource when set ``AUTH_ROLE_PUBLIC=admin`` (#36750)
106+
- Better error message when sqlite URL uses relative path (#36774)
107+
- Explicit string cast required to force integer-type run_ids to be passed as strings instead of integers (#36756)
108+
- Add log lookup exception for empty ``op`` subtypes (#35536)
109+
- Remove unused index on task instance (#36737)
110+
- Fix check on subclass for ``typing.Union`` in ``_infer_multiple_outputs`` for Python 3.10+ (#36728)
111+
- Make sure ``multiple_outputs`` is inferred correctly even when using ``TypedDict`` (#36652)
112+
- Add back FAB constant in legacy security manager (#36719)
113+
- Fix AttributeError when using ``Dagrun.update_state`` (#36712)
114+
- Do not let ``EventsTimetable`` schedule past events if ``catchup=False`` (#36134)
115+
- Support encryption for triggers parameters (#36492)
116+
- Fix the type hint for ``tis_query`` in ``_process_executor_events`` (#36655)
117+
- Redirect to index when user does not have permission to access a page (#36623)
118+
- Avoid using dict as default value in ``call_regular_interval`` (#36608)
119+
- Remove option to set a task instance to running state in UI (#36518)
120+
- Fix details tab not showing when using dynamic task mapping (#36522)
121+
- Raise error when ``DagRun`` fails while running ``dag test`` (#36517)
122+
- Refactor ``_manage_executor_state`` by refreshing TIs in batch (#36502)
123+
- Add flask config: ``MAX_CONTENT_LENGTH`` (#36401)
124+
- Fix get_leaves calculation for teardown in nested group (#36456)
125+
- Stop serializing timezone-naive datetime to timezone-aware datetime with UTC tz (#36379)
126+
- Make ``kubernetes`` decorator type annotation consistent with operator (#36405)
127+
- Fix Webserver returning 500 for POST requests to ``api/dag/*/dagrun`` from anonymous user (#36275)
128+
- Fix the required access for get_variable endpoint (#36396)
129+
- Fix datetime reference in ``DAG.is_fixed_time_schedule`` (#36370)
130+
- Fix AirflowSkipException message raised by BashOperator (#36354)
131+
- Allow PythonVirtualenvOperator.skip_on_exit_code to be zero (#36361)
132+
- Increase width of execution_date input in trigger.html (#36278)
133+
- Fix logging for pausing DAG (#36182)
134+
- Stop deserializing pickle when enable_xcom_pickling is False (#36255)
135+
- Check DAG read permission before accessing DAG code (#36257)
136+
- Enable mark task as failed/success always (#36254)
137+
- Create latest log dir symlink as relative link (#36019)
138+
- Fix Python-based decorators templating (#36103)
95139

96-
The only change will be a new installation of new version of Airflow from the scratch, where graphviz will
97-
need to be specified as extra or installed separately in order to enable DAG rendering option. (#36647)
140+
Miscellaneous
141+
"""""""""""""
142+
- Rename concurrency label to max active tasks (#36691)
143+
- Restore function scoped ``httpx`` import in file_task_handler for performance (#36753)
144+
- Add support of Pendulum 3 (#36281)
145+
- Standardize airflow build process and switch to Hatchling build backend (#36537)
146+
- Get rid of ``pyarrow-hotfix`` for ``CVE-2023-47248`` (#36697)
147+
- Make ``graphviz`` dependency optional (#36647)
148+
- Announce MSSQL support end in Airflow 2.9.0, add migration script hints (#36509)
149+
- Set min ``pandas`` dependency to 1.2.5 for all providers and airflow (#36698)
150+
- Bump follow-redirects from 1.15.3 to 1.15.4 in ``/airflow/www`` (#36700)
151+
- Provide the logger_name param to base hook in order to override the logger name (#36674)
152+
- Fix run type icon alignment with run type text (#36616)
153+
- Follow BaseHook connection fields method signature in FSHook (#36444)
154+
- Remove redundant ``docker`` decorator type annotations (#36406)
155+
- Straighten typing in workday timetable (#36296)
156+
- Use ``batch_is_authorized_dag`` to check if user has permission to read DAGs (#36279)
157+
- Replace deprecated get_accessible_dag_ids and use get_readable_dags in get_dag_warnings (#36256)
98158

159+
Doc Only Changes
160+
""""""""""""""""
161+
- Metrics tagging documentation (#36627)
162+
- In docs use logical_date instead of deprecated execution_date (#36654)
163+
- Add section about live-upgrading Airflow (#36637)
164+
- Replace ``numpy`` example with practical exercise demonstrating top-level code (#35097)
165+
- Improve and add more complete description in the architecture diagrams (#36513)
166+
- Improve the error message displayed when there is a webserver error (#36570)
167+
- Update ``dags.rst`` with information on DAG pausing (#36540)
168+
- Update installation prerequisites after upgrading to Debian Bookworm (#36521)
169+
- Add description on the ways how users should approach DB monitoring (#36483)
170+
- Add branching based on mapped task group example to dynamic-task-mapping.rst (#36480)
171+
- Add further details to replacement documentation (#36485)
172+
- Use cards when describing priority weighting methods (#36411)
173+
- Update ``metrics.rst`` for param ``dagrun.schedule_delay`` (#36404)
174+
- Update admonitions in Python operator doc to reflect sentiment (#36340)
175+
- Improve audit_logs.rst (#36213)
176+
- Remove Redshift mention from the list of managed Postgres backends (#36217)
99177

100178
Airflow 2.8.0 (2023-12-18)
101179
--------------------------
102180

103181
Significant Changes
104182
^^^^^^^^^^^^^^^^^^^
105183

106-
- Raw HTML code in DAG docs and DAG params descriptions is disabled by default
107-
108-
To ensure that no malicious javascript can be injected with DAG descriptions or trigger UI forms by DAG authors
109-
a new parameter ``webserver.allow_raw_html_descriptions`` was added with default value of ``False``.
110-
If you trust your DAG authors code and want to allow using raw HTML in DAG descriptions and params, you can restore the previous
111-
behavior by setting the configuration value to ``True``.
112-
113-
To ensure Airflow is secure by default, the raw HTML support in trigger UI has been super-seeded by markdown support via
114-
the ``description_md`` attribute. If you have been using ``description_html`` please migrate to ``description_md``.
115-
The ``custom_html_form`` is now deprecated. (#35460)
184+
Raw HTML code in DAG docs and DAG params descriptions is disabled by default (#35460)
185+
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
186+
To ensure that no malicious javascript can be injected with DAG descriptions or trigger UI forms by DAG authors
187+
a new parameter ``webserver.allow_raw_html_descriptions`` was added with default value of ``False``.
188+
If you trust your DAG authors code and want to allow using raw HTML in DAG descriptions and params, you can restore the previous
189+
behavior by setting the configuration value to ``True``.
190+
191+
To ensure Airflow is secure by default, the raw HTML support in trigger UI has been super-seeded by markdown support via
192+
the ``description_md`` attribute. If you have been using ``description_html`` please migrate to ``description_md``.
193+
The ``custom_html_form`` is now deprecated.
116194

117195
New Features
118196
""""""""""""

airflow/reproducible_build.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
release-notes-hash: b0d8fdf0caf6f957b63ee7f4ee2147b9
2-
source-date-epoch: 1705311983
1+
release-notes-hash: c1deec1f2ca47e6db62309b185e0598c
2+
source-date-epoch: 1705387201

newsfragments/36281.significant.rst

-4
This file was deleted.

0 commit comments

Comments
 (0)