Hey, fellow Airflowers, A bug was found in rc1 that'll necessitate an rc2. I'm canceling this vote and will create 2.7.1rc2 soon.
On Mon, 4 Sept 2023 at 08:16, Ephraim Anierobi <ephraimanier...@apache.org> wrote: > Hey, fellow Airflowers, > > I have cut Airflow 2.7.1rc1. This email is calling a vote on the release, > which will last at least 72 hours, from Monday, September 4, 2023 at 7:15 > am UTC > until Thursday, September 7, 2023, at 7:15 am UTC > <https://www.timeanddate.com/worldclock/fixedtime.html?msg=8&iso=20230907T0715&p1=1440>, > and until 3 binding +1 votes have been received. > > The status of testing of the release is kept at > https://github.com/apache/airflow/issues/34065 > > Consider this my (binding) +1. > > Airflow 2.7.1rc1 is available at: > https://dist.apache.org/repos/dist/dev/airflow/2.7.1rc1/ > > *apache-airflow-2.7.1-source.tar.gz* is a source release that comes with > INSTALL instructions. > *apache-airflow-2.7.1.tar.gz* is the binary Python "sdist" release. > *apache_airflow-2.7.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 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.7.1. This will allow us to rename the artifact without modifying > the artifact checksums when we actually release it. > > Release Notes: > https://github.com/apache/airflow/blob/2.7.1rc1/RELEASE_NOTES.rst > > Changes since 2.7.0: > > *Significant Changes* > > **CronTriggerTimetable is now less aggressive when trying to skip a run > (#33404)** > > When setting ``catchup=False``, CronTriggerTimetable no longer skips a run > if > the scheduler does not query the timetable immediately after the previous > run > has been triggered. > > This should not affect scheduling in most cases, but can change the > behaviour if > a DAG is paused-unpaused to manually skip a run. Previously, the timetable > (with > ``catchup=False``) would only start a run after a DAG is unpaused, but > with this > change, the scheduler would try to look at little bit back to schedule the > previous run that covers a part of the period when the DAG was paused. This > means you will need to keep a DAG paused longer (namely, for the entire > cron > period to pass) to really skip a run. > > Note that this is also the behaviour exhibited by various other cron-based > scheduling tools, such as ``anacron``. > > **``conf.set()`` becomes case insensitive to match ``conf.get()`` behavior > (#33452)** > > Also, ``conf.get()`` will now break if used with non-string parameters. > > ``conf.set(section, key, value)`` used to be case sensitive, i.e. > ``conf.set("SECTION", "KEY", value)`` > and ``conf.set("section", "key", value)`` were stored as two distinct > configurations. > This was inconsistent with the behavior of ``conf.get(section, key)``, > which was always converting the section and key to lower case. > > As a result, configuration options set with upper case characters in the > section or key were unreachable. > That's why we are now converting section and key to lower case in > ``conf.set`` too. > > We also changed a bit the behavior of ``conf.get()``. It used to allow > objects that are not strings in the section or key. > Doing this will now result in an exception. For instance, > ``conf.get("section", 123)`` needs to be replaced with > ``conf.get("section", "123")``. > > *Bug Fixes* > - Ensure that tasks wait for running indirect setup (#33903) > - Respect "soft_fail" for core async sensors (#33403) > - Differentiate 0 and unset as a default param values (#33965) > - Raise 404 from Variable PATCH API if variable is not found (#33885) > - Fix ``MappedTaskGroup`` tasks not respecting upstream dependency (#33732) > - Add limit 1 if required first value from query result (#33672) > - Fix UI DAG counts including deleted DAGs (#33778) > - Fix cleaning zombie RESTARTING tasks (#33706) > - ``SECURITY_MANAGER_CLASS`` should be a reference to class, not a string > (#33690) > - Add back ``get_url_for_login`` in security manager (#33660) > - Fix ``2.7.0 db`` migration job errors (#33652) > - Set context inside templates (#33645) > - Treat dag-defined access_control as authoritative if defined (#33632) > - Bind engine before attempting to drop archive tables (#33622) > - Add a fallback in case no first name and last name are set (#33617) > - Sort data before ``groupby`` in TIS duration calculation (#33535) > - Stop adding values to rendered templates UI when there is no dagrun > (#33516) > - Set strict to True when parsing dates in webserver views (#33512) > - Use ``dialect.name`` in custom SA types (#33503) > - Do not return ongoing dagrun when a ``end_date`` is less than ``utcnow`` > (#33488) > - Fix a bug in ``formatDuration`` method (#33486) > - Make ``conf.set`` case insensitive (#33452) > - Allow timetable to slightly miss catchup cutoff (#33404) > - Respect ``soft_fail`` argument when ``poke`` is called (#33401) > - Create a new method used to resume the task in order to implement > specific logic for operators (#33424) > - Fix DagFileProcessor interfering with dags outside its > ``processor_subdir`` (#33357) > - Remove the unnecessary ``<br>`` text in Provider's view (#33326) > - Respect ``soft_fail`` argument when ExternalTaskSensor runs in > deferrable mode (#33196) > - Fix handling of default value and serialization of Param class (#33141) > - Check if the dynamically-added index is in the table schema before > adding (#32731) > - Fix rendering the mapped parameters when using ``expand_kwargs`` method > (#32272) > - Fix dependencies for celery and opentelemetry for Python 3.8 (#33579) > > *Misc/Internal* > - Use a trimmed version of README.md for PyPI (#33637) > - Upgrade to ``Pydantic`` 2 (#33956) > - Reorganize ``devel_only`` extra in Airflow's setup.py (#33907) > - Bumping ``FAB`` to ``4.3.4`` in order to fix issues with filters (#33931) > - Add minimum requirement for ``sqlalchemy to 1.4.24`` (#33892) > - Update version_added field for configs in config file (#33509) > - Replace ``OrderedDict`` with plain dict (#33508) > - Consolidate import and usage of itertools (#33479) > - Static check fixes (#33462) > - Import utc from datetime and normalize its import (#33450) > - D401 Support (#33352, #33339, #33337, #33336, #33335, #33333, #33338) > - Fix some missing type hints (#33334) > - D205 Support - Stragglers (#33301, #33298, #33297) > - Refactor: Simplify code (#33160, #33270, #33268, #33267, #33266, #33264, > #33292, #33453, #33476, #33567, > #33568, #33480, #33753, #33520, #33623) > - Fix ``Pydantic`` warning about ``orm_mode`` rename (#33220) > - Add MySQL 8.1 to supported versions. (#33576) > - Remove ``Pydantic`` limitation for version < 2 (#33507) > > *Doc only changes* > - Add documentation explaining template_ext (and how to override it) > (#33735) > - Explain how users can check if python code is top-level (#34006) > - Clarify that DAG authors can also run code in DAG File Processor (#33920) > - Fix broken link in Modules Management page (#33499) > - Fix secrets backend docs (#33471) > - Fix config description for base_log_folder (#33388) > > Cheers, > Ephraim >