Docker images are now available: apache/airflow:slim-3.0.0rc3-python3.10 apache/airflow:slim-3.0.0rc3-python3.11 apache/airflow:slim-3.0.0rc3-python3.12 apache/airflow:3.0.0rc3-python3.10 apache/airflow:3.0.0rc3-python3.11 apache/airflow:3.0.0rc3-python3.12
3.9 images will be available in few minutes -- once https://github.com/apache/airflow/actions/runs/14499577949/job/40676786095 succeeds. On Wed, 16 Apr 2025 at 22:01, Kaxil Naik <kaxiln...@gmail.com> wrote: > I have also uploaded docs here: > https://airflow3rc3.surge.sh/release_notes.html so it is easier to check > rendered HTML than rst. > > On Wed, 16 Apr 2025 at 21:29, Kaxil Naik <kaxiln...@gmail.com> wrote: > >> As last time, docker images will be available in few hours. >> >> On Wed, 16 Apr 2025 at 21:28, Kaxil Naik <kaxiln...@gmail.com> wrote: >> >>> Yea 115 commits just to Task SDK & Airflow Core -- and overall >>> (providers, ci scripts) 207 commits: >>> https://github.com/apache/airflow/compare/3.0.0rc2...3.0.0rc3 >>> >>> On Wed, 16 Apr 2025 at 21:21, Vikram Koka <vik...@astronomer.io.invalid> >>> wrote: >>> >>>> Awesome! It's wonderful to see this. >>>> >>>> Thank you Kaxil, Ash, Elad, Jarek, Rahul and everyone else who >>>> contributed >>>> to this and made this happen! >>>> 115 commits in the last couple of days! Wow! >>>> >>>> Vikram >>>> >>>> On Wed, Apr 16, 2025 at 8:49 AM Kaxil Naik <kaxiln...@gmail.com> wrote: >>>> >>>> > Hey fellow Airflowers, >>>> > >>>> > I am thrilled to announce the availability of Apache Airflow 3.0.0rc3 >>>> & >>>> > *Task >>>> > SDK 1.0.0rc3* for testing! >>>> > >>>> > This email is calling for a vote on the release, >>>> > which will last at least until 22nd April, 11 am GMT. >>>> > and until 3 binding +1 votes have been received. >>>> > >>>> > Consider this my +1 binding vote. >>>> > >>>> > Airflow 3.0.0rc3 is available at: >>>> > https://dist.apache.org/repos/dist/dev/airflow/3.0.0rc3/ >>>> > >>>> > "apache-airflow" Meta package: >>>> > >>>> > >>>> > - *apache-airflow-3.0.0-source.tar.gz* is a source release that >>>> comes >>>> > with INSTALL instructions. >>>> > - *apache-airflow-3.0.0.tar.gz* is the binary Python "sdist" >>>> release. >>>> > - *apache_airflow-3.0.0-py3-none-any.whl* is the binary Python >>>> > wheel "binary" release. >>>> > >>>> > "apache-airflow-core" package >>>> > >>>> > >>>> > - *apache_airflow_core-3.0.0.tar.gz* is the binary Python "sdist" >>>> > release. >>>> > - *apache_airflow_3.0.0-py3-none-any.whl* is the binary Python >>>> > wheel "binary" release. >>>> > >>>> > Task SDK 1.0.0rc3 is available at: >>>> > https://dist.apache.org/repos/dist/dev/airflow/task-sdk/1.0.0rc3/ >>>> > >>>> > "apache-airflow-task-sdk" package >>>> > >>>> > - *apache-airflow-task-sdk-1.0.0-source.tar.gz* is a source release >>>> > - *apache_airflow_task_sdk-1.0.0.tar.gz* is the binary Python >>>> "sdist" >>>> > release. >>>> > - *apache_airflow_task_sdk-1.0.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 contributors and members of the community 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 3.0.0 for Airflow package and 1.0.0 for Task SDK. 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/3.0.0rc3/RELEASE_NOTES.rst >>>> > >>>> > >>>> > *Testing Instructions using PyPI*: >>>> > >>>> > You can build a virtualenv that installs this and other required >>>> packages >>>> > (e.g. task sdk), like this: >>>> > >>>> > ``` >>>> > >>>> > uv venv >>>> > >>>> > uv pip install -U apache-airflow --pre >>>> > >>>> > ``` >>>> > >>>> > >>>> > Constraints files are at >>>> > https://github.com/apache/airflow/tree/constraints-3.0.0rc3 >>>> > >>>> > Get Involved >>>> > >>>> > We encourage the community to test this release and report any issues >>>> or >>>> > feedback. Your contributions help us ensure a stable and reliable >>>> Airflow >>>> > 3.0.0 release. Please report issues using Github at >>>> > https://github.com/apache/airflow/issues and mark that this is an >>>> issue in >>>> > 3.0.0. For an updated list of all known issues in the beta can also be >>>> > found in the above link with the label “affected_version:3.0.0rc” >>>> > >>>> > A huge thank you to all the contributors who have worked on this >>>> milestone >>>> > release! and a huge thank you to folks who helped out on various >>>> release >>>> > issues: Ash, Elad, Jarek, Rahul and many others. >>>> > Best, >>>> > Kaxil >>>> > >>>> > >>>> > Changes to Airflow Core and Task SDK since rc2 (115 commits): >>>> > >>>> > - Add back-compat for `get_unique_task_id` (#49084) >>>> > - Fix `example_dag_decorator` (#49087) >>>> > - Update docs on how to run behind a reverse proxy (#49086) >>>> > - Use scheme-relative URLs for the UI so https works out of the box >>>> more >>>> > often (#49106) >>>> > - Cope with more "interesting" proxy configurations when accessing >>>> the UI >>>> > (#49118) >>>> > - Fix GetDagRunState and GetTICount response conversion (#49095) >>>> > - Update dag version UI (#49088) >>>> > - Add min-provider versions in apache-airflow pyproject.toml (#49103) >>>> > - Bump vite (#49126) >>>> > - Improve “Fundamental Concepts” Tutorial and Screenshot Organization >>>> > (#49098) >>>> > - Remove asset-name-ref and asset-uri-ref node after resolving them >>>> > (#49008) >>>> > - Remove cgroups extra since the dep has been removed (#49123) >>>> > - Fix ExternalTaskSensor task_group_id check condition (#49027) >>>> > - Adding type checking assert to cron.get_next (#49127) >>>> > - Catch BrokenPipeError gracefully while servicing subprocess (#49128) >>>> > - Remove @provide_session from Variable.set/update in models (#49107) >>>> > - Fix bug in Serialization of templated fields set at Runtime (#49144) >>>> > - Rewrite data pipeline tutorial to no longer use deprecated >>>> > PostgresOperator (#49147) >>>> > - Bump trove-classifiers in /airflow-core (#49134) >>>> > - Move celery integration tests to celery provider. (#49178) >>>> > - Remove dag_version as a create_dagrun argument (#49148) >>>> > - Implement `Variable.delete` method in task SDK (#49141) >>>> > - chore: use object type hint for __eq__ method (#48900) >>>> > - chore: make the __enter__ method return Self instead of the class >>>> type >>>> > (#48902) >>>> > - Fix finding assets in serialized mapped operator (#49210) >>>> > - update md5 type hints to respect PEP570 (#49195) >>>> > - Move SQS message queue code example from core to provider docs >>>> (#49208) >>>> > - remove Literal[local] type hint as it is included in str (#49194) >>>> > - Collapse Cadwyn migrations (#49116) >>>> > - fix(AssetSchedule): fix how asset_expression is accessed (#49214) >>>> > - remove superfluous else block (#49199) >>>> > - Update taskflow.rst (#47984) >>>> > - fix(AssetSchedule): use asset.name if exists (#49225) >>>> > - Rename directory for dag processor child process logs (#49227) >>>> > - Improve logging of abnormal exit codes for supervised sub-processes. >>>> > (#49217) >>>> > - Update Object Storage tutorial to match learning path tone (#49170) >>>> > - Nuke orm_deserialize_value refs in docs and docstring (#49220) >>>> > - batch processing for updating TI UUIDs (#49015) >>>> > - Bump min version of pre-installed providers to latest (#49222) >>>> > - feat(dag_dependency): add unresolved asset ref node (#49231) >>>> > - Add cross dependencies between airflow-core and task-sdk (#49221) >>>> > - add callout for using multiple outputs in step 2 example (#49169) >>>> > - Re-add section on getting Context in Taskflow API (#49240) >>>> > - Properly allow variable delete from models (#49234) >>>> > - Remove `STATE_COLORS` from Airflow Local Setting (#49228) >>>> > - Rename edge provider to edgeexecutor provider. (#49184) >>>> > - Fix deprecation warning for Variable utility imports from models >>>> (#49242) >>>> > - Bump Serialized DAG to v2 and handle conversion from v1 (#49020) >>>> > - Wrap dictionary iteration with list to prevent dictionary being >>>> changed >>>> > during iteration. (#49241) >>>> > - Cleanup AUTH_TYPE import comments in default_webserver_config.py >>>> (#49248) >>>> > - Add ref default default node (#49233) >>>> > - fix(serialized_dag): return original DagDependency if Asset Alias >>>> has not >>>> > yet been resolved into asset (#49204) >>>> > - docs: update connections how-to with 3.0 screenshots (#49264) >>>> > - docs: add light mode screenshots for overview, move dark mode to >>>> folder >>>> > (#49263) >>>> > - docs: update email-config.rst how-to with 3.0 screenshots (#49269) >>>> > - docs: update setup/teardown how-to with 3.0 screenshots (#49268) >>>> > - docs: update and clean up "add tags to dags" how-to (#49266) >>>> > - simplify isinstance conditions for otel in trigger_tasks method >>>> (#49253) >>>> > - Load TI related objects when purging TIs without heartbeat (#49246) >>>> > - Update stable rest API docs ref (#49279) >>>> > - Use ``default`` in variable.get for task SDK variables (#49278) >>>> > - Update airflow config lint to show breaking config changes by >>>> default >>>> > (#49223) >>>> > - Show pending states in historic metrics (#49267) >>>> > - Make sure provider's manager is not left in a clean state (#49283) >>>> > - docs: update variables how-to with Airflow 3.0 screenshots (#49265) >>>> > - Move function to methods on models.TaskInstance (#49257) >>>> > - docs: remove DAG owner links how-to since no feature parity (#49262) >>>> > - Ensure scheduler uses best available serdag for dag run (#49097) >>>> > - AIP-38: remove `default_ui_timezone` (#49176) >>>> > - Removing init_dagbag from fastapi app (#49285) >>>> > - Improvements to rendered API docs (#49287) >>>> > - Document upgrading to Airflow 3 (#49271) >>>> > - fix(serialized_objects): handle both inlet and outlet in v1 to v2 >>>> convert >>>> > (#49286) >>>> > - Make sure all openapi schemes have distinct names (#49290) >>>> > - Remove 1.10 to 2 upgrade docs (#49289) >>>> > - Update screenshots in the repo readme to Airflow 3 (#49293) >>>> > - Feature/aip 38 add dag warning (#49236) >>>> > - add sorting to Pools (#48442) >>>> > - fix(serialized_objects): fix how dataset/asset dag_dependency is >>>> > converted from v1 to v2 (#49281) >>>> > - Remove FAB entry from `NOTICE` (#49063) >>>> > - Fix failing tests after subdir path bundle URL merged (#49294) >>>> > - Updating docs to reflect latest state of project for AF3 (#49280) >>>> > - update _run_inline_trigger to make its logic clearer (#49198) >>>> > - Return explicit 404 errors for `/helath` and `/api/v1/*` (#49284) >>>> > - Update next run assets and asset expression types (#49137) >>>> > - Force query cache to always refetch on opening mark/clear modals >>>> (#49298) >>>> > - Change default page_size from 100 to 50 (#49243) >>>> > - Fix Pool table modelName (#49303) >>>> > - API - Fix pool ordering (#49302) >>>> > - Pass mapIndex to filter the relevant task instance while clearing >>>> mapped >>>> > tasks. (#49307) >>>> > - Add possibility to have extra project metadata in providers (#49306) >>>> > - Fix failing git bundle tests (#49313) >>>> > - Split out the /ui routes from the "main" spec file (#49311) >>>> > - use enumerate for index variable in for loop in Airflow core >>>> (#49252) >>>> > - feat (api-airflowctl): Change ExtraLinksResponse to BaseModel >>>> (#49250) >>>> > - use key in dict instead of key in dict.keys in Airflow core (#49255) >>>> > - Use contextlib.suppress(exception) instead of try-except-pass and >>>> add >>>> > SIM105 ruff rule (#49251) >>>> > - Fix DB migrations from 2.10.5 to 3.0.0 for SQlite (#49301) >>>> > - fix(serialized_dag): expand DagDependency generation and add >>>> fallback >>>> > value (#49327) >>>> > - remove unnecessary True if <condition> else False (#49256) >>>> > - Fix MySQL migration (#49315) >>>> > - Remove `subdir` arg from CLI commands (#49317) >>>> > - Clairfy that allowed_deserialization_classes is space-separated not >>>> just >>>> > newlines (#49326) >>>> > - Bump minimum ruff version required for upgrade utility (#49341) >>>> > - docs: replace webserver with api-server in quick start (#49333) >>>> > - Revert "use key in dict instead of key in dict.keys in Airflow core >>>> > (#49255)" (#49322) >>>> > - refactor: remove `navbar_logo_text_color` (#49161) >>>> > - Improve dag bundle documentation (#49342) >>>> > - fix(serialized_object): fix how timetable and schedule_interval are >>>> > handled during v1 to v2 conversion (#49344) >>>> > - Don't spend time adding `ti.try_id` only to remove it in a later >>>> > migration (#49346)- Make `DatasetOrTimeSchedule` compatible with >>>> Airflow >>>> > 2.10.x (#49350) >>>> > - Improve execution time messages for DAG or Task not found (#49352) >>>> > - Include trigger event payload in asset event (#49345) >>>> > - Rename `edge` provider fom `edgeexecutor` to `edge3` provider >>>> (#49358) >>>> > - Autorefresh dagrun breadcrumb state when dagrun is in pending >>>> > state. (#49328) >>>> > - refactor: refine schema assignment in `useConnectionTypeMeta` >>>> (#49165) >>>> > >>>> > PS: We will patch some of the docs in the coming days to add more >>>> details >>>> > in the Release Notes and other Airflow core docs. >>>> > >>>> >>>