+1 (non-binding)

Ran the RC with breeze, ran some example DAGs. Tested my change in #32052,
works as expected
We also ran example DAGs for astronomer-providers including deferrable
operators and they work fine.


Regards,



Pankaj Koti

*Senior Software Engineer, *OSS Engineering Team.
Location: Pune, India

Timezone: Indian Standard Time (IST)

Email: pankaj.k...@astronomer.io

Mobile: +91 9730079985


On Fri, Aug 11, 2023 at 12:40 PM Ephraim Anierobi <
ephraimanier...@apache.org> wrote:

> Hey fellow Airflowers,
>
> I have cut Airflow 2.7.0rc1. This email is calling a vote on the release,
> which will last at least 72 hours, from Friday, August 11, 2023, at 7:10 am
> UTC
> until Monday, August 14, 2023, at 7:10 am UTC
> <
> https://www.timeanddate.com/worldclock/fixedtime.html?msg=8&iso=20230814T0710&p1=1440
> >,
> and until 3 binding +1 votes have been received.
>
> Consider this my (binding) +1.
>
> Airflow 2.7.0rc1 is available at:
> https://dist.apache.org/repos/dist/dev/airflow/2.7.0rc1/
>
> *apache-airflow-2.7.0-source.tar.gz* is a source release that comes with
> INSTALL instructions.
> *apache-airflow-2.7.0.tar.gz* is the binary Python "sdist" release.
> *apache_airflow-2.7.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 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.7.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.7.0rc1/RELEASE_NOTES.rst
>
> *Changes since 2.6.3:*
>
> *Significant Changes*
>
> *Remove Python 3.7 support (#30963)*
> As of now, Python 3.7 is no longer supported by the Python community.
> Therefore, to use Airflow 2.7.0, you must ensure your Python version is
> either 3.8, 3.9, 3.10, or 3.11.
>
> *Old Graph View is removed (#32958)*
> The old Graph View is removed. The new Graph View is the default view now.
>
>
> *The "db init", "db upgrade" commands and "[database]
> load_default_connections" configuration options are deprecated (#33136).*
> Instead, you should use "airflow db migrate" command to create or upgrade
> database. This command will not create default connections.
> In order to create default connections you need to run "airflow connections
> create-default-connections" explicitly,
> after running "airflow db migrate".
>
> *In case of SMTP SSL connection, the context now uses the "default" context
> (#33070)*
> The "default" context is Python's ``default_ssl_contest`` instead of
> previously used "none". The
> ``default_ssl_context`` provides a balance between security and
> compatibility but in some cases,
> when certificates are old, self-signed or misconfigured, it might not work.
> This can be configured
> by setting "ssl_context" in "email" configuration of Airflow.
>
> *Setting it to "none" brings back the "none" setting that was used in
> Airflow 2.6 and before,*
> but it is not recommended due to security reasons ad this setting disables
> validation of certificates and allows MITM attacks.
>
> *Disable default allowing the testing of connections in UI, API and
> CLI(#32052)*
> For security reasons, the test connection functionality is disabled by
> default across Airflow UI,
> API and CLI. The availability of the functionality can be controlled by the
> ``test_connection`` flag in the ``core`` section of the Airflow
> configuration (``airflow.cfg``). It can also be controlled by the
> environment variable ``AIRFLOW__CORE__TEST_CONNECTION``.
>
> The following values are accepted for this config param:
> 1. ``Disabled``: Disables the test connection functionality and
> disables the Test Connection button in the UI.
>
> This is also the default value set in the Airflow configuration.
> 2. ``Enabled``: Enables the test connection functionality and
> activates the Test Connection button in the UI.
>
> 3. ``Hidden``: Disables the test connection functionality and
> hides the Test Connection button in UI.
>
> For more information on capabilities of users, see the documentation:
>
> https://airflow.apache.org/docs/apache-airflow/stable/security/security_model.html#capabilities-of-authenticated-ui-users
> It is strongly advised to **not** enable the feature until you make sure
> that only
> highly trusted UI/API users have "edit connection" permissions.
>
> *The ``xcomEntries`` API disables support for the ``deserialize`` flag by
> default (#32176)*
> For security reasons, the
> ``/dags/*/dagRuns/*/taskInstances/*/xcomEntries/*``
> API endpoint now disables the ``deserialize`` option to deserialize
> arbitrary
> XCom values in the webserver. For backward compatibility, server admins may
> set
> the ``[api] enable_xcom_deserialize_support`` config to *True* to enable
> the
> flag and restore backward compatibility.
>
> However, it is strongly advised to **not** enable the feature, and perform
> deserialization at the client side instead.
>
> *Change of the default Celery application name (#32526)*
> Default name of the Celery application changed from
> ``airflow.executors.celery_executor`` to
> ``airflow.providers.celery.executors.celery_executor``.
>
> You should change both your configuration and Health check command to use
> the new name:
>   * in configuration (``celery_app_name`` configuration in ``celery``
> section) use ``airflow.providers.celery.executors.celery_executor``
>   * in your Health check command use ``
> airflow.providers.celery.executors.celery_executor.app``
>
>
> *The default value for ``scheduler.max_tis_per_query`` is changed from 512
> to 16 (#32572)*
> This change is expected to make the Scheduler more responsive.
>
> ``scheduler.max_tis_per_query`` needs to be lower than
> ``core.parallelism``.
> If both were left to their default value previously, the effective default
> value of ``scheduler.max_tis_per_query`` was 32
> (because it was capped at ``core.parallelism``).
>
> To keep the behavior as close as possible to the old config, one can set
> ``scheduler.max_tis_per_query = 0``,
> in which case it'll always use the value of ``core.parallelism``.
>
> *Some executors have been moved to corresponding providers (#32767)*
> In order to use the executors, you need to install the providers:
>
> * for Celery executors you need to install
> ``apache-airflow-providers-celery`` package >= 3.3.0
> * for Kubernetes executors you need to install
> ``apache-airflow-providers-cncf-kubernetes`` package >= 7.4.0
> * For Dask executors you need to install
> ``apache-airflow-providers-daskexecutor`` package in any version
>
> You can achieve it also by installing airflow with ``[celery]``,
> ``[cncf.kubernetes]``, ``[daskexecutor]`` extras respectively.
>
> Users who base their images on the ``apache/airflow`` reference image (not
> slim) should be unaffected - the base
> reference image comes with all the three providers installed.
>
> *Improvement Changes*
>
> *PostgreSQL only improvement: Added index on taskinstance table (#30762)*
> This index seems to have great positive effect in a setup with tens of
> millions such rows.
>
> **New Features**
> - Add OpenTelemetry to Airflow (`AIP-49 <
>
> https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-49+milestone%3A%22Airflow+2.7.0%22
> >`_)
> - Trigger Button - Implement Part 2 of AIP-50 (#31583)
> - Removing Executor Coupling from Core Airflow (`AIP-51 <
>
> https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-51+milestone%3A%22Airflow+2.7.0%22
> >`_)
> - Automatic setup and teardown tasks (`AIP-52 <
>
> https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-52+milestone%3A%22Airflow+2.7.0%22
> >`_)
> - OpenLineage in Airflow (`AIP-53 <
>
> https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-53+milestone%3A%22Airflow+2.7.0%22
> >`_)
> - Experimental: Add a cache to Variable and Connection when called at dag
> parsing time (#30259)
> - Enable pools to consider deferred tasks (#32709)
> - Allows to choose SSL context for SMTP connection (#33070)
> - New gantt tab (#31806)
> - Load plugins from providers (#32692)
> - Add ``ExternalBranchPythonOperator`` (#32787)
> - Add option for storing configuration description in providers (#32629)
> - Add an option to use a direct DB connection in KEDA when ``pgbouncer`` is
> enabled (#32608)
> - Introduce Heartbeat Parameter to Allow ``Per-LocalTaskJob`` Configuration
> (#32313)
> - Add Executors discovery and documentation (#32532)
> - Add JobState for job state constants (#32549)
> - Add config to disable the 'deserialize' XCom API flag (#32176)
> - Show task instance in web UI by custom operator name (#31852)
> - Add default_deferrable config (#31712)
> - Introducing ``AirflowClusterPolicySkipDag`` exception (#32013)
> - Use ``reactflow`` for datasets graph (#31775)
> - Add an option to load the dags from db for command tasks run (#32038)
> - Add version of ``chain`` which doesn't require matched lists (#31927)
> - Use operator_name instead of task_type in UI (#31662)
> - Add ``--retry`` and ``--retry-delay`` to ``airflow db check`` (#31836)
> - Allow skipped task state task_instance_schema.py (#31421)
> - Add a new config for celery result_backend engine options (#30426)
> - UI Add Cluster Activity Page (#31123, #32446)
> - Adding keyboard shortcuts to common actions (#30950)
> - Adding more information to kubernetes executor logs (#29929)
> - Add support for configuring custom alembic file (#31415)
> - Add running and failed status tab for DAGs on the UI (#30429)
> - Add multi-select, proposals and labels for trigger form (#31441)
> - Making webserver config customizable (#29926)
> - Render DAGCode in the Grid View as a tab (#31113)
> - Add rest endpoint to get option of configuration (#31056)
> - Add ``section`` query param in get config rest API (#30936)
> - Create metrics to track ``Scheduled->Queued->Running`` task state
> transition times (#30612)
> - Mark Task Groups as Success/Failure (#30478)
> - Add CLI command to list the provider trigger info (#30822)
> - Add Fail Fast feature for DAGs (#29406)
>
> **Improvements**
> - Configurable health check threshold for triggerer (#33089, #33084)
> - add dag_run_ids and task_ids filter for the batch task instance API
> endpoint (#32705)
> - Ensure DAG-level references are filled on unmap (#33083)
> - Add support for arrays of different data types in the Trigger Form UI
> (#32734)
> - Always show gantt and code tabs (#33029)
> - Move listener success hook to after SQLAlchemy commit (#32988)
> - Rename ``db upgrade`` to ``db migrate`` and add ``connections
> create-default-connections`` (#32810, #33136)
> - Remove old gantt chart and redirect to grid views gantt tab (#32908)
> - Adjust graph zoom based on selected task (#32792)
> - Call listener on_task_instance_running after rendering templates (#32716)
> - Display execution_date in graph view task instance tooltip. (#32527)
> - Allow configuration to be contributed by providers (#32604, #32755,
> #32812)
> - Reduce default for max TIs per query, enforce ``<=`` parallelism (#32572)
> - Store config description in Airflow configuration object (#32669)
> - Use ``isdisjoint`` instead of ``not intersection`` (#32616)
> - Speed up calculation of leaves and roots for task groups (#32592)
> - Kubernetes Executor Load Time Optimizations (#30727)
> - Save DAG parsing time if dag is not schedulable (#30911)
> - Updates health check endpoint to include ``dag_processor`` status.
> (#32382)
> - Disable default allowing the testing of connections in UI, API and CLI
> (#32052)
> - Fix config var types under the scheduler section (#32132)
> - Allow to sort Grid View alphabetically (#32179)
> - Add hostname to triggerer metric ``[triggers.running]`` (#32050)
> - Improve DAG ORM cleanup code (#30614)
> - ``TriggerDagRunOperator``: Add ``wait_for_completion`` to
> ``template_fields`` (#31122)
> - Open links in new tab that take us away from Airflow UI (#32088)
> - Only show code tab when a task is not selected (#31744)
> - Add descriptions for celery and dask cert configs (#31822)
> - ``PythonVirtualenvOperator`` termination log in alert (#31747)
> - Migration of all DAG details to existing grid view dag details panel
> (#31690)
> - Add a diagram to help visualize timer metrics (#30650)
> - Celery Executor load time optimizations (#31001)
> - Update code style for ``airflow db`` commands to SQLAlchemy 2.0 style
> (#31486)
> - Mark uses of md5 as "not-used-for-security" in FIPS environments (#31171)
> - Add pydantic support to serde (#31565)
> - Enable search in note column in DagRun and TaskInstance (#31455)
> - Save scheduler execution time by adding new Index idea for dag_run
> (#30827)
> - Save scheduler execution time by caching dags (#30704)
> - Support for sorting DAGs by Last Run Date in the web UI (#31234)
> - Better typing for Job and JobRunners (#31240)
> - Add sorting logic by created_date for fetching triggers (#31151)
> - Remove DAGs.can_create on access control doc, adjust test fixture
> (#30862)
> - Split Celery logs into stdout/stderr (#30485)
> - Decouple metrics clients and ``validators`` into their own modules
> (#30802)
> - Description added for pagination in ``get_log`` api (#30729)
> - Optimize performance of scheduling mapped tasks (#30372)
> - Add sentry transport configuration option (#30419)
> - Better message on deserialization error (#30588)
>
> **Bug Fixes**
> - ``Gantt chart:`` Use earliest/oldest ti dates if different than dag run
> start/end (#33215)
> - Fix ``virtualenv`` detection for Python ``virtualenv`` operator (#33223)
> - Correctly log when there are problems trying to ``chmod`` ``airflow.cfg``
> (#33118)
> - Pass app context to webserver_config.py (#32759)
> - Skip served logs for non-running task try (#32561)
> - Fix reload gunicorn workers (#32102)
> - Fix future DagRun rarely triggered by race conditions when
> ``max_active_runs`` reached its upper limit. (#31414)
> - Fix BaseOperator ``get_task_instances`` query (#33054)
> - Fix issue with using the various state enum value in logs (#33065)
> - Use string concatenation to prepend base URL for log_url (#33063)
> - Update graph nodes with operator style attributes (#32822)
> - Affix webserver access_denied warning to be configurable (#33022)
> - Only load task action modal if user can edit (#32992)
> - OpenAPI Spec fix nullable alongside ``$ref`` (#32887)
> - Make the decorators of ``PythonOperator`` sub-classes extend its
> decorator (#32845)
> - Fix check if ``virtualenv`` is installed in ``PythonVirtualenvOperator``
> (#32939)
> - Unwrap Proxy before checking ``__iter__`` in is_container() (#32850)
> - Override base log folder by using task handler's base_log_folder (#32781)
> - Catch arbitrary exception from run_job to prevent zombie scheduler
> (#32707)
> - Fix depends_on_past work for dynamic tasks (#32397)
> - Sort extra_links for predictable order in UI. (#32762)
> - Fix prefix group false graph (#32764)
> - Fix bad delete logic for dagruns (#32684)
> - Fix bug in prune_dict where empty dict and list would be removed even in
> strict mode (#32573)
> - Add explicit browsers list and correct rel for blank target links
> (#32633)
> - Handle returned None when multiple_outputs is True (#32625)
> - Fix returned value when ShortCircuitOperator condition is falsy and there
> is not downstream tasks (#32623)
> - Fix returned value when ShortCircuitOperator condition is falsy (#32569)
> - Fix rendering of ``dagRunTimeout`` (#32565)
> - Fix permissions on ``/blocked`` endpoint (#32571)
> - Bugfix, prevent force of unpause on trigger DAG (#32456)
> - Fix data interval in ``cli.dags.trigger`` command output (#32548)
> - Strip ``whitespaces`` from airflow connections form (#32292)
> - Add timedelta support for applicable arguments of sensors (#32515)
> - Fix incorrect default on ``readonly`` property in our API (#32510)
> - Add xcom map_index as a filter to xcom endpoint (#32453)
> - Fix CLI commands when custom timetable is used (#32118)
> - Use WebEncoder to encode DagRun.conf in DagRun's list view (#32385)
> - Fix logic of the skip_all_except method (#31153)
> - Ensure dynamic tasks inside dynamic task group only marks the (#32354)
> - Handle the cases that webserver.expose_config is set to
> non-sensitive-only instead of boolean value (#32261)
> - Add retry functionality for handling process termination caused by
> database network issues (#31998)
> - Adapt Notifier for sla_miss_callback (#31887)
> - Fix XCOM view (#31807)
> - Fix for "Filter dags by tag" flickering on initial load of dags.html
> (#31578)
> - Fix where expanding ``resizer`` wouldn't expanse grid view   (#31581)
> - Fix MappedOperator-BaseOperator attr sync check (#31520)
> - Always pass named ``type_`` arg to drop_constraint (#31306)
> - Fix bad ``drop_constraint`` call in migrations (#31302)
> - Resolving problems with redesigned grid view (#31232)
> - Support ``requirepass`` redis sentinel (#30352)
> - Fix webserver crash when calling get ``/config`` (#31057)
>
> **Misc/Internal**
> - Refactor: Simplify code in ``dag_processing`` (#33161)
> - For now limit ``Pydantic`` to ``< 2.0.0`` (#33235)
> - Refactor: Simplify code in models (#33181)
> - Add elasticsearch group to pre-2.7 defaults (#33166)
> - Refactor: Simplify dict manipulation in airflow/cli (#33159)
> - Remove redundant dict.keys() call (#33158)
> - Upgrade ruff to latest 0.0.282 version in pre-commits (#33152)
> - Move openlineage configuration to provider (#33124)
> - Replace State by TaskInstanceState in Airflow executors (#32627)
> - Get rid of Python 2 numeric relics (#33050)
> - Remove legacy dag code (#33058)
> - Remove legacy task instance modal (#33060)
> - Remove old graph view (#32958)
> - Move CeleryExecutor to the celery provider (#32526, #32628)
> - Move all k8S classes to ``cncf.kubernetes`` provider (#32767, #32891)
> - Refactor existence-checking SQL to helper (#32790)
> - Extract Dask executor to new daskexecutor provider (#32772)
> - Remove atlas configuration definition (#32776)
> - Add Redis task handler (#31855)
> - Move writing configuration for webserver to main (webserver limited)
> (#32766)
> - Improve getting the query count in Airflow API endpoints (#32630)
> - Remove click upper bound (#32634)
> - Add D400 ``pydocstyle`` check - core Airflow only (#31297)
> - D205 Support (#31742, #32575, #32213, #32212, #32591, #32449, #32450)
> - Bump word-wrap from ``1.2.3 to 1.2.4`` in ``/airflow/www`` (#32680)
> - Strong-type all single-state enum values (#32537)
> - More strong typed state conversion (#32521)
> - SQL query improvements in utils/db.py (#32518)
> - Bump semver from ``6.3.0 to 6.3.1`` in ``/airflow/www`` (#32506)
> - Bump jsonschema version to ``4.18.0`` (#32445)
> - Bump ``stylelint`` from ``13.13.1 to 15.10.1`` in ``/airflow/www``
> (#32435)
> - Bump tough-cookie from ``4.0.0 to 4.1.3`` in ``/airflow/www`` (#32443)
> - upgrade flask-appbuilder (#32054)
> - Support ``Pydantic`` 2 (#32366)
> - Limit click until we fix mypy issues (#32413)
> - A couple of minor cleanups (#31890)
> - Replace State usages with strong-typed ``enums`` (#31735)
> - Upgrade ruff to ``0.272`` (#31966)
> - Better error message when serializing callable without name (#31778)
> - Improve the views module a bit (#31661)
> - Remove ``asynctest`` (#31664)
> - Refactor sqlalchemy queries to ``2.0`` style (#31569, #31772, #32350,
> #32339, #32474, #32645)
> - Remove Python ``3.7`` support (#30963)
> - Bring back min-airflow-version for preinstalled providers (#31469)
> - Docstring improvements (#31375)
> - Improve typing in SchedulerJobRunner (#31285)
> - Upgrade ruff to ``0.0.262`` (#30809)
> - Upgrade to MyPy ``1.2.0`` (#30687)
>
> **Docs only changes**
> - Add links to ``DAGRun / DAG / Task`` in templates-ref.rst (#33013)
> - Add docs of how to test for DAG Import Errors (#32811)
> - Clean-up of our new security page (#32951)
> - Cleans up Extras reference page (#32954)
> - Update Dag trigger API and command docs (#32696)
> - Add deprecation info to the Airflow modules and classes docstring
> (#32635)
> - Formatting installation doc to improve readability (#32502)
> - Fix triggerer HA doc (#32454)
> - Add type annotation to code examples (#32422)
> - Document cron and delta timetables (#32392)
> - Update index.rst doc to correct grammar (#32315)
> - Fixing small typo in python.py (#31474)
> - Separate out and clarify policies for providers (#30657)
> - Fix docs: add an "apache" prefix to pip install (#30681)
>
> Cheers,
> Ephraim
>

Reply via email to