+1 (non-binding) A "Big Thank You!" to everyone who made this exciting release possible!
On Thu, Sep 15, 2022 at 9:07 PM Jed Cunningham <jedcunning...@apache.org> wrote: > Hey fellow Airflowers, > > I have cut Airflow 2.4.0rc1. This email is calling a vote on the release, > which will last at least 72 hours, from Thursday, September 15, 2022 at > 8:00 pm UTC > until Sunday, September 18, 2021 at 8:00 pm UTC, and until 3 binding +1 > votes have been received. > > > https://www.timeanddate.com/worldclock/fixedtime.html?msg=8&iso=20220918T2000&p1=1440 > > Consider this my (binding) +1. > > Airflow 2.4.0rc1 is available at: > https://dist.apache.org/repos/dist/dev/airflow/2.4.0rc1/ > > *apache-airflow-2.4.0-source.tar.gz* is a source release that comes with > INSTALL instructions. > *apache-airflow-2.4.0.tar.gz* is the binary Python "sdist" release. > *apache_airflow-2.4.0-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 PMCs and Contributors who would like to test this > RC are described in > > https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOW.md#verify-the-release-candidate-by-pmcs > > Please note that the version number excludes the `rcX` string, so it's now > simply 2.4.0. 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.4.0rc1/RELEASE_NOTES.rst > > Changes since 2.3.4: > > *New Features*: > - Add Data-aware Scheduling (AIP-48) > - Make ``execution_date_or_run_id`` optional in ``tasks test`` command > (#26114) > - Automatically register DAGs that are used in a context manager (#23592, > #26398) > - Add option of sending DAG parser logs to stdout. (#25754) > - Support multiple ``DagProcessors`` parsing files from different locations. > (#25935) > - Implement ``ExternalPythonOperator`` (#25780) > - Make execution_date optional for command ``dags test`` (#26111) > - Implement ``expand_kwargs()`` against a literal list (#25925) > - Add trigger rule tooltip (#26043) > - Add conf parameter to CLI for airflow dags test (#25900) > - Include scheduled slots in pools view (#26006) > - Add ``output`` property to ``MappedOperator`` (#25604) > - Add roles delete command to cli (#25854) > - Add Airflow specific warning classes (#25799) > - Add support for ``TaskGroup`` in ``ExternalTaskSensor`` (#24902) > - Add ``@task.kubernetes`` taskflow decorator (#25663) > - Add a way to import Airflow without side-effects (#25832) > - Let timetables control generated run_ids. (#25795) > - Allow per-timetable ordering override in grid view (#25633) > - Grid logs for mapped instances (#25610, #25621, #25611) > - Consolidate to one ``schedule`` param (#25410) > - DAG regex flag in backfill command (#23870) > - Adding support for owner links in the Dags view UI (#25280) > - Ability to clear a specific DAG Run's task instances via REST API (#23516) > - Possibility to document DAG with a separate markdown file (#25509) > - Add parsing context to DAG Parsing (#25161) > - Implement ``CronTriggerTimetable`` (#23662) > - Add option to mask sensitive data in UI configuration page (#25346) > - Create new databases from the ORM (#24156) > - Implement ``XComArg.zip(*xcom_args)`` (#25176) > - Introduce ``sla_miss`` metric (#23402) > - Implement ``map()`` semantic (#25085) > - Add override method to TaskGroupDecorator (#25160) > - Implement ``expand_kwargs()`` (#24989) > - Add parameter to turn off SQL query logging (#24570) > - Add ``DagWarning`` model, and a check for missing pools (#23317) > - Add Task Logs to Grid details panel (#24249) > - Added small health check server and endpoint in scheduler(#23905) > - Add built-in External Link for ``ExternalTaskMarker`` operator (#23964) > - Add default task retry delay config (#23861) > - Add clear DagRun endpoint. (#23451) > - Add support for timezone as string in cron interval timetable (#23279) > - Add auto-refresh to dags home page (#22900, #24770) > > *Improvements*: > - Add more weekday operator and sensor examples #26071 (#26098) > - Add subdir parameter to dags reserialize command (#26170) > - Update zombie message to be more descriptive (#26141) > - Only send an ``SlaCallbackRequest`` if the DAG is scheduled (#26089) > - Promote ``Operator.output`` more (#25617) > - Upgrade API files to typescript (#25098) > - Less ``hacky`` double-rendering prevention in mapped task (#25924) > - Improve Audit log (#25856) > - Remove mapped operator validation code (#25870) > - More ``DAG(schedule=...)`` improvements (#25648) > - Reduce ``operator_name`` dupe in serialized JSON (#25819) > - Make grid view group/mapped summary UI more consistent (#25723) > - Remove useless statement in ``task_group_to_grid`` (#25654) > - Add optional data interval to ``CronTriggerTimetable`` (#25503) > - Remove unused code in ``/grid`` endpoint (#25481) > - Add and document description fields (#25370) > - Improve Airflow logging for operator Jinja template processing (#25452) > - Update core example DAGs to use ``@task.branch`` decorator (#25242) > - Update DAG ``audit_log`` route (#25415) > - Change stdout and stderr access mode to append in commands (#25253) > - Remove ``getTasks`` from Grid view (#25359) > - Improve taskflow type hints with ParamSpec (#25173) > - Use tables in grid details panes (#25258) > - Explicitly list ``@dag`` arguments (#25044) > - More typing in ``SchedulerJob`` and ``TaskInstance`` (#24912) > - Patch ``getfqdn`` with more resilient version (#24981) > - Replace all ``NBSP`` characters by ``whitespaces`` (#24797) > - Re-serialize all DAGs on ``airflow db upgrade`` (#24518) > - Rework contract of try_adopt_task_instances method (#23188) > - Make ``expand()`` error vague so it's not misleading (#24018) > - Add enum validation for ``[webserver]analytics_tool`` (#24032) > - Add ``dttm`` searchable field in audit log (#23794) > - Allow more parameters to be piped through via ``execute_in_subprocess`` > (#23286) > - Use ``func.count`` to count rows (#23657) > - Remove stale serialized dags (#22917) > - AIP45 Remove dag parsing in airflow run local (#21877) > - Add support for queued state in DagRun update endpoint. (#23481) > - Add fields to dagrun endpoint (#23440) > - Use ``sql_alchemy_conn`` for celery result backend when ``result_backend`` > is not set (#24496) > > *Bug Fixes*: > - Have consistent types between the ORM and the migration files (#24044, > #25869) > - Disallow any dag tags longer than 100 char (#25196) > - Add the dag_id to ``AirflowDagCycleException`` message (#26204) > - Properly build URL to retrieve logs independently from system (#26337) > - For worker log servers only bind to IPV6 when dual stack is available > (#26222) > - Fix ``TaskInstance.task`` not defined before ``handle_failure`` (#26040) > - Undo secrets backend config caching (#26223) > - Fix faulty executor config serialization logic (#26191) > - Show ``DAGs`` and ``Datasets`` menu links based on role permission (#26183) > - Allow setting ``TaskGroup`` tooltip via function docstring (#26028) > - Fix RecursionError on graph view of a DAG with many tasks (#26175) > - Fix backfill occasional deadlocking (#26161) > - Fix ``DagRun.start_date`` not set during backfill with ``--reset-dagruns`` > True (#26135) > - Use label instead of id for dynamic task labels in graph (#26108) > - Don't fail DagRun when leaf ``mapped_task`` is SKIPPED (#25995) > - Add group prefix to decorated mapped task (#26081) > - Fix UI flash when triggering with dup logical date (#26094) > - Fix Make items nullable for ``TaskInstance`` related endpoints to avoid API > errors (#26076) > - Fix ``BranchDateTimeOperator`` to be ``timezone-awreness-insensitive`` > (#25944) > - Fix legacy timetable schedule interval params (#25999) > - Fix response schema for ``list-mapped-task-instance`` (#25965) > - Properly check the existence of missing mapped TIs (#25788) > - Fix broken auto-refresh on grid view (#25950) > - Use per-timetable ordering in grid UI (#25880) > - Rewrite recursion when parsing DAG into iteration (#25898) > - Find cross-group tasks in ``iter_mapped_dependants`` (#25793) > - Fail task if mapping upstream fails (#25757) > - Support ``/`` in variable get endpoint (#25774) > - Use cfg default_wrap value for grid logs (#25731) > - Add origin request args when triggering a run (#25729) > - Operator name separate from class (#22834) > - Fix incorrect data interval alignment due to assumption on input time > alignment (#22658) > - Return None if an ``XComArg`` fails to resolve (#25661) > - Correct ``json`` arg help in ``airflow variables set`` command (#25726) > - Added MySQL index hint to use ``ti_state`` on ``find_zombies`` query > (#25725) > - Only excluded actually expanded fields from render (#25599) > - Grid, fix toast for ``axios`` errors (#25703) > - Fix UI redirect (#26409) > - Require dag_id arg for dags list-runs (#26357) > - Check for queued states for dags auto-refresh (#25695) > - Fix upgrade code for the ``dag_owner_attributes`` table (#25579) > - Add map index to task logs api (#25568) > - Ensure that zombie tasks for dags with errors get cleaned up (#25550) > - Make extra link work in UI (#25500) > - Sync up plugin API schema and definition (#25524) > - First/last names can be empty (#25476) > - Refactor DAG pages to be consistent (#25402) > - Check ``expand_kwargs()`` input type before unmapping (#25355) > - Filter XCOM by key when calculating map lengths (#24530) > - Fix ``ExternalTaskSensor`` not working with dynamic task (#25215) > - Added exception catching to send default email if template file raises any > exception (#24943) > - Bring ``MappedOperator`` members in sync with ``BaseOperator`` (#24034) > > *Misc/Internal*: > - Add automatically generated ``ERD`` schema for the ``MetaData`` DB (#26217) > - Mark serialization functions as internal (#26193) > - Remove remaining deprecated classes and replace them with ``PEP562`` > (#26167) > - Move ``dag_edges`` and ``task_group_to_dict`` to corresponding util modules > (#26212) > - Lazily import many modules to improve import speed (#24486, #26239) > - FIX Incorrect typing information (#26077) > - Add missing contrib classes to deprecated dictionaries (#26179) > - Re-configure/connect the ``ORM`` after forking to run a DAG processor > (#26216) > - Remove cattrs from lineage processing. (#26134) > - Removed deprecated contrib files and replace them with ``PEP-562`` getattr > (#26153) > - Make ``BaseSerialization.serialize`` "public" to other classes. (#26142) > - Change the template to use human readable task_instance description (#25960) > - Bump ``moment-timezone`` from ``0.5.34`` to ``0.5.35`` in ``/airflow/www`` > (#26080) > - Fix Flask deprecation warning (#25753) > - Add ``CamelCase`` to generated operations types (#25887) > - Fix migration issues and tighten the CI upgrade/downgrade test (#25869) > - Fix type annotations in ``SkipMixin`` (#25864) > - Workaround setuptools editable packages path issue (#25848) > - Bump ``undici`` from ``5.8.0 to 5.9.1`` in /airflow/www (#25801) > - Add custom_operator_name attr to ``_BranchPythonDecoratedOperator`` (#25783) > - Clarify ``filename_template`` deprecation message (#25749) > - Use ``ParamSpec`` to replace ``...`` in Callable (#25658) > - Remove deprecated modules (#25543) > - Documentation on task mapping additions (#24489) > - Remove Smart Sensors (#25507) > - Fix ``elasticsearch`` test config to avoid warning on deprecated template > (#25520) > - Bump ``terser`` from ``4.8.0 to 4.8.1`` in /airflow/ui (#25178) > - Generate ``typescript`` types from rest ``API`` docs (#25123) > - Upgrade utils files to ``typescript`` (#25089) > - Upgrade remaining context file to ``typescript``. (#25096) > - Migrate files to ``ts`` (#25267) > - Upgrade grid Table component to ``ts.`` (#25074) > - Skip mapping against mapped ``ti`` if it returns None (#25047) > - Refactor ``js`` file structure (#25003) > - Move mapped kwargs introspection to separate type (#24971) > - Only assert stuff for mypy when type checking (#24937) > - Bump ``moment`` from ``2.29.3 to 2.29.4`` in ``/airflow/www`` (#24885) > - Remove "bad characters" from our codebase (#24841) > - Remove ``xcom_push`` flag from ``BashOperator`` (#24824) > - Move Flask hook registration to end of file (#24776) > - Upgrade more javascript files to ``typescript`` (#24715) > - Clean up task decorator type hints and docstrings (#24667) > - Preserve original order of providers' connection extra fields in UI (#24425) > - Rename ``charts.css`` to ``chart.css`` (#24531) > - Rename ``grid.css`` to ``chart.css`` (#24529) > - Misc: create new process group by ``set_new_process_group`` utility (#24371) > - Airflow UI fix Prototype Pollution (#24201) > - Bump ``moto`` version (#24222) > - Remove unused ``[github_enterprise]`` from ref docs (#24033) > - Clean up ``f-strings`` in logging calls (#23597) > - Add limit for ``JPype1`` (#23847) > - Simply json responses (#25518) > - Add min attrs version (#26408) > > *Doc only changes*: > - Add url prefix setting for ``Celery`` Flower (#25986) > - Updating deprecated configuration in examples (#26037) > - Fix wrong link for taskflow tutorial (#26007) > - Reorganize tutorials into a section (#25890) > - Fix concept doc for dynamic task map (#26002) > - Update code examples from "classic" operators to taskflow (#25845, #25657) > - Add instructions on manually fixing ``MySQL`` Charset problems (#25938) > - Prefer the local Quick Start in docs (#25888) > - Fix broken link to ``Trigger Rules`` (#25840) > - Improve docker documentation (#25735) > - Correctly link to Dag parsing context in docs (#25722) > - Add note on ``task_instance_mutation_hook`` usage (#25607) > - Note that TaskFlow API automatically passes data between tasks (#25577) > - Update DAG run to clarify when a DAG actually runs (#25290) > - Update tutorial docs to include a definition of operators (#25012) > - Rewrite the Airflow documentation home page (#24795) > - Fix ``task-generated mapping`` example (#23424) > - Add note on subtle logical date change in ``2.2.0`` (#24413) > - Add missing import in best-practices code example (#25391) > > > Thanks, > Jed >