This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a change to branch v3-0-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 79838baef32 Add release notes for 3.0.2rc2
add fa5c5c604ee fix(migrations): from 2.7.0 to 3.0.0 for SQLite (#51431)
add c6435b01b10 [v3-0-test] Structure endpoint attach downstream asset to
task level (#51401) (#51425)
add dded4b6ab92 Make ``dag.test`` consistent with ``airflow dags test``
CLI command (#51476)
add a3f55452f43 [v3-0-test] Fix structure edges (#51484) (#51489)
add 62ed2bcd2b6 Minor fix in python client docs (#51216) (#51571)
add c4ffd8670a5 Update docs for Python client (#50850) (#51572)
add 95d67083b79 Sync python client readme (#51536) (#51573)
add c822f23f363 Pass dag_run_conf form value to backfill payload. (#51577)
(#51584)
add 8d3876873c6 [v3-0-test] Add git binary to PROD docker image (#51580)
(#51587)
add e4b19768eec Change v1 to v2 in generated OpenAPI schema files (#50705)
add 9a8a50386fc Fix the version for generated client (#50859)
add 6192aa20aa4 Update Python Client to 3.0.2
add 43df0ac5e03 Upgrade `flask-appbuilder` to 4.6.3 in FAB provider
(#50513)
add 09353bf8666 [v3-0-test] Structure endpoint task level resolved aliases
(#51481) (#51579)
add 7c9b2978f1d Add config setting to control exposing stacktraces
(#51509) (#51617)
add d3b33a94a3e [v3-0-test] Use Connection Hook Names for Dropdown instead
of connection IDs (#51599) (#51613)
add aa95a37a3ee [v3-0-test] Exclude libcst 1.8.1 for Python 3.9 (#51606)
(#51609)
add 414b75215d0 [v3-0-test] Refactor `structuredLog` structure and layout
(#51567) (#51626)
add 8e167056887 [v3-0-test] Fix PR number on 3.0.2 release note entry
(#51637) (#51642)
add c53b53a5f56 Move asset events to its own tab (#51625) (#51655)
add 86397cfdf0d [v3-0-test] Explicitly close log file descriptor in the
supervise function (#51627) (#51654)
add e9e185b2a75 [v3-0-test] Rename `len` in GetXComCount processing to
`xcom_count` (#51611) (#51612)
add 4c43bb98fe4 [v3-0-test] Fix Jinja2 Template deep copy error with
``dag.test`` (#51670) (#51673)
add 1b5d32ef633 [v3-0-test] Optimize ui lint pre-commits (#51725) (#51729)
add aaf022db4fc Update breeze dependencies
add 1c7b629e3f7 [v3-0-test] Do not modify openapi-gen generated files by
pre-commits (#51755) (#51757)
add 9d9c4c51e49 [v3-0-test] Add note about payload size considerations in
API docs (#51732) (#51768)
add 8b4d36cbcbf Reset table offset when DagFiltering changes (#51694)
(#51795)
add 3f7c1b3e1af [v3-0-test] Remove outdated code comments from task runner
(#51782) (#51798)
add 28ec8c83767 [v3-0-test] Set proper version of the default images in
the docs (#51822) (#51824)
add e94df47b3bd [v3-0-test] Stop streaming task logs if end of log mark is
missing (#50715) (#51482)
add 22092cccb1a [v3-0-test] Fix EOF dection of subprocesses in Dag
Processor (#51885) (#51895)
add 33875dbf09c Delete import error when a dag bundle becomes inactive
(#51800) (#51921)
add 0daf753c34f [v3-0-test] Persist EventsTimetable's description during
serialization (#51203) (#51926)
add d34c1f5c5c9 [v3-0-test] Fix lingering task supervisors when ``EOF`` is
missed (#51180) (#51970)
add c02d99397a6 [v3-0-test] Cleanup import errors during DB migration
(#51919)
add 8b78ad5c8b4 [v3-0-test] Swap 'connections_test' CLI to use Connection
instead of BaseHook (#51834) (#51917)
add 17e63c4fe43 [v3-0-test] fix(serialized_objects): try to infer data
interval if it's none (#51530) (#51913)
add 214e414cfe9 [v3-0-test] When UI files change in PR we build CI image /
run all static checks (#52009) (#52012)
add 21c5ec4bbc0 [v3-0-test] Enhance ENV vars and conns visibility docs.
(#52014) (#52026)
add ec0c6be4c9b [v3-0-test] Use explicit directives instead of implicit
syntax (#50870) (#52068)
add 1bbbc0bcdf2 [v3-0-test] Remove duplicate 'mock_supervisor_comms'
pytest fixtures from core (#49457) (#52080)
add daa8b8344f2 [v3-0-test] Add exception to context for task callbacks
(#52055) (#52066)
add accfbc3dc06 [v3-0-test] Switch the Supervisor/task process from
line-based to length-prefixed (#51699) (#51924)
add 8e812f24995 fixup! [v3-0-test] Switch the Supervisor/task process from
line-based to length-prefixed (#51699) (#51924) (#51641)
add ebbe3b79e22 [v3-0-test] Fix Task Instance “No Status” Filter (#51880)
(#52154)
add 68172f665f8 [v3-0-test] Use run_backwards from the form value while
creating backfill. (#49413) (#52168)
add 80c1219f2db [v3-0-test] Doc update to install git in docker image
prior 3.0.2 (#52190) (#52200)
add b06d15a347c Fix archival for cascading deletes by archiving dependent
tables first (#51952)
add 846a1dd24aa [v3-0-test] Fix whitespace handling in DAG owners parsing
for multiple owners (#52216) (#52221)
add 17742b928e1 [v3-0-test] Add more diagnostics for Airflow installation
inside CI image (#52223) (#52232)
add 504dc553c67 [v3-0-test] Set downstream option to default on task
instance clear (#52130) (#52246)
add 2c6894921ab [v3-0-test] fix mypy errors in otel_tracer (#52170)
(#52175)
add 2d44c3d93dc [v3-0-test] Synchronize latest dev scripts with main
add f855d1e34c6 [v3-0-test] Skip test that needs the .git folder when it
is missing (#52305) (#52308)
add ea929ede90f [v3-0-test] Python versions in shell params are strings
(#52306) (#52309)
add 644aa7caff8 [v3-0-test] fix: task-sdk AssetEventOperations.get to use
alias_name when specified (#52303) (#52324)
add 040a383132b Remove circular backport-to-v3-test label (#52397)
add 6a95e10823b [v3-0-test] Add new `breeze run` command for
non-interactive command execution (#52370) (#52373)
add c776d74da10 [v3-0-test] Bump ``uv`` to ``0.7.16`` (#52372) (#52405)
add 083d2ccb07f [v3-0-test] Run release tests always - not only in canary
runs (#52389) (#52393)
add 8e3378c7392 [v3-0-test] Fix indexerror in _find_caplog_in_def
selective check function (#52369) (#52371)
add dd70201da47 [v3-0-test] Add Python <=> Airflow compat filtering for
breeze (#52386) (#52390)
add 9c1766dc39d [v3-0-test] Limit click back to 8.2.0 because it has an
ENVVAR bug for flags (PR #52404) (#52409)
add 9b7af2d95b4 [v3-0-test] Adding some intelligence to classifying
provider commits (#52407) (#52412)
add a8711f7ac0d [v3-0-test] enhance error message for `breeze --backend
none` to suggest setting a valid backend (#52318) (#52410)
add 7ab6f05c4ea Make v3-0-test green (#52420)
add 012bfb517f7 [v3-0-test] Sanitize Username (#52419) (#52421)
add d0207e88347 Really fix v3-0-test
add 20cec393056 Really, Really fix v3-0-test
add cde9376bed6 [v3-0-test] Skip
check-airflow-providers-bug-report-template in non main branch #52426) (#52429)
add 4670679357d Reduce timeout for task-sdk/airflow-ctl tests job workflow
(#52399) (#52427)
add 4476b59f237 [v3-0-test] Add keycloak to providers removed when running
Airflow 2 (#52442) (#52444)
add 7be9da37c2b [v3-0-test] Fix editing connection with sensitive extra
field (#52403) (#52445)
add c545913bd31 [v3-0-test] Improve terminal handling for breeze commands
(#52452) (#52456)
add 69e2d72acff [v3-0-test] Speed-up constraints generation (#52449)
(#52460)
add 25e4f6f5fb1 [v3-0-test] Wire-in dependency check script in CI
"finalize" job (#52450) (#52461)
add a14c67f0293 [v3-0-test] Fix generate-constraints run on different
python than base (#52464) (#52466)
add 7614d5eb6d0 [v3-0-test] Add GITHUB_TOKEN when preparing image for
dependency summary (#52472) (#52473)
add 66762d19a5f [v3-0-test] Rmeove --tty specification for running the
dependency script (#52489) (#52490)
add fdd93faf059 Filter only provided integration paths for breeze
integration testing (#52462) (#52491)
add 84403162801 Backport e455329 v3 0 test (#52494)
add c32210ac46d [v3-0-test] Removing duplicate patching of
supervisor_comms (#51870) (#51872)
add adbfd5b0262 [v3-0-test] Remove unnecessary logs while retrieving
connections / variables (#51786) (#51826)
add 7e129528ea0 [v3-0-test] Add the `upgrade_sqlalchemy` breeze flag
(#52559) (#52570)
add 7d9cc05e599 fix: enable iframe script execution (#52257) (#52568)
add 1e6bd4dd705 [v3-0-test] Revert "Run release tests always - not only in
canary runs (#52389)" (#52594) (#52595)
add 677e2a5f4be [v3-0-test] Increase dependency epoch to trigger pip cache
invalidation (#52599) (#52601)
add 4cca2589245 [v3-0-test] Fix SBOM commands to work for Airfow 2
(#52591) (#52604)
add 525a7d5eda9 [v3-0-test] Add more dependency reports (#52606) (#52613)
add 8ee69a3e9b7 [v3-0-test] Upgrade uv to 0.7.17 (#52625)
add d59c7a585ba [v3-0-test] Improve dependency report and uppgrading
(#52619) (#52626)
add 664c5ddfc51 [v3-0-test] Bump pyarrow to 16.1.0 minimum version for
several providers (#52635) (#52639)
add 9ba6998827e [v3-0-test] Fix typoed parameter passign in calling a
method in dev report (#52659) (#52661)
add f87a0abe3a2 [v3-0-test] Fix http exception when ti not found for extra
links API (#51443) (#51465)
add 52af170cde1 [v3-0-test] fix indent issue (#51701) (#52681)
add f61d41472de [v3-0-test] Bring back mapped task extra links test
(#51297) (#51477)
add 8ed08ef7701 [v3-0-test] Fix connection retrieval in triggerer for
schema field, use by_alias=True for ConnectionResult (#52673) (#52691)
add 8a6439f7e60 [v3-0-test] Add http-only warning in documentation
(#52631) (#52699)
add 9afb41032b6 Docs setup for the Task SDK (#51153) (#52682)
add fbfc1e43bb5 Add ti information to requeue logs (#49995)
add f69e8c84720 [v3-0-test] Update dag version when bundle name changes
(#51901) (#51939)
add e535e774832 feat: Add real-time clock updates to timezone selector
(#52414)
add 3ffe991bdd6 [v3-0-test] Correctly treat requeues on reschedule sensors
as resetting after each reschedule (#52706)
add 1b53a573f36 Improve `xcom_pull` to cover different scenarios for
mapped tasks (#51568)
add 4b3908714bf Support TaskInstanceHistory in log handlers (#51592)
add 0c3dcf14b0e Add user impersonation (`run_as_user`) support for task
execution (#51780)
add d07f8bfd9b5 Improve logging with `run_as_user` to avoid "double"
logging/plain-text-over-stdout (#51934)
add 68ba85b50c6 [v3-0-test] chore(tests): move doc tests to
task-sdk/tests/docs (#51876) (#52708)
add bfc01239d75 [v3-0-test] docs(task-sdk): add and link dynamic task
mapping docs (#51871) (#52707)
add aff2e14204a [v3-0-test] docs: streamline TaskFlow examples, link to
core tutorial (#51827) (#52709)
add 1985fd1af42 [v3-0-test] Move costraint check to breeze (#52696)
(#52715)
add bcd3274322d Add infinite scroll on tag search (#50732) (#52714)
add a39132bb69b Bump Airflow to 3.0.3 and Task SDK to 1.0.3
add f69ecaec19d fixup! Support TaskInstanceHistory in log handlers (#51592)
add a32846e9a43 [v3-0-test] Doc: Update version_added field for
`socket_cleanup_timeout` (#52705) (#52710)
add a982c481995 fixup! [v3-0-test] Move costraint check to breeze (#52696)
(#52715)
add 0e35aa9508f [v3-0-test] Ensure trigger kwargs are properly
deserialized during trigger execution (#52693) (#52721)
add 5a81a753289 [v3-0-test] Allow more empty loops before stopping log
streaming (#52614) (#52624)
add 9cf9c7c207a [v3-0-test] Grid view optimization (#51805) (#52718)
add 99531c633ec Add Release notes for Airflow 3.0.3 and Task SDK 1.0.3
add 502f988c7df Fixing badly written test for user impersonation (#51927)
No new revisions were added by this update.
Summary of changes:
.../.pre-commit-config.yaml | 23 +-
.github/CODEOWNERS | 22 +-
...low_bug_report.yml => 1-airflow_bug_report.yml} | 2 +-
.../{feature_request.yml => 2-feature_request.yml} | 0
...port.yml => 3-airflow_providers_bug_report.yml} | 0
...port.yml => 4-airflow_helmchart_bug_report.yml} | 3 +-
...e_report.yml => 5-airflow_doc_issue_report.yml} | 0
.../{~free_form.yml => 6-free_form.yml} | 0
.github/actions/breeze/action.yml | 2 +
.github/actions/install-pre-commit/action.yml | 8 +-
.github/actions/post_tests_success/action.yml | 2 +-
.github/boring-cyborg.yml | 33 +-
.github/dependabot.yml | 17 +-
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 4 +-
.github/workflows/airflow-distributions-tests.yml | 31 +-
.github/workflows/automatic-backport.yml | 2 +-
.github/workflows/backport-cli.yml | 2 +-
.github/workflows/basic-tests.yml | 29 +-
.github/workflows/ci-amd.yml | 135 +-
.github/workflows/ci-arm.yml | 50 +-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/ci-image-checks.yml | 29 +-
.github/workflows/codeql-analysis.yml | 8 +-
.github/workflows/finalize-tests.yml | 44 +-
.github/workflows/generate-constraints.yml | 86 +-
.github/workflows/helm-tests.yml | 13 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/k8s-tests.yml | 4 +-
.github/workflows/news-fragment.yml | 2 +-
.github/workflows/prod-image-build.yml | 12 +-
.github/workflows/publish-docs-to-s3.yml | 203 +-
.github/workflows/push-image-cache.yml | 6 +-
.github/workflows/recheck-old-bug-report.yml | 2 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 8 +-
.github/workflows/run-unit-tests.yml | 2 +-
.github/workflows/stale.yml | 2 +-
.github/workflows/test-providers.yml | 7 +-
.pre-commit-config.yaml | 94 +-
Dockerfile | 38 +-
Dockerfile.ci | 79 +-
README.md | 2 +-
RELEASE_NOTES.rst | 74 +-
.../administration-and-deployment/dag-bundles.rst | 9 +
airflow-core/docs/best-practices.rst | 3 +-
airflow-core/docs/conf.py | 4 +-
airflow-core/docs/howto/connection.rst | 11 +-
airflow-core/docs/howto/docker-compose/index.rst | 12 +-
airflow-core/docs/howto/dynamic-dag-generation.rst | 3 +-
airflow-core/docs/howto/run-behind-proxy.rst | 3 +
airflow-core/docs/howto/variable.rst | 14 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 816 ++++----
airflow-core/docs/index.rst | 9 +
.../docs/installation/supported-versions.rst | 2 +-
.../docs/installation/upgrading_to_airflow3.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/docs/public-airflow-interface.rst | 9 +-
airflow-core/docs/security/api.rst | 7 +
airflow-core/docs/start.rst | 2 +-
airflow-core/docs/troubleshooting.rst | 10 +
airflow-core/pyproject.toml | 7 +-
airflow-core/src/airflow/__init__.py | 2 +-
....yaml => v2-simple-auth-manager-generated.yaml} | 0
.../simple/ui/openapi-gen/queries/common.ts | 47 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 17 +-
.../simple/ui/openapi-gen/queries/index.ts | 2 +-
.../ui/openapi-gen/queries/infiniteQueries.ts | 3 +-
.../simple/ui/openapi-gen/queries/prefetch.ts | 17 +-
.../simple/ui/openapi-gen/queries/queries.ts | 101 +-
.../simple/ui/openapi-gen/queries/suspense.ts | 33 +-
.../auth/managers/simple/ui/package.json | 2 +-
.../src/airflow/api_fastapi/common/exceptions.py | 23 +
.../src/airflow/api_fastapi/common/parameters.py | 9 +-
.../api_fastapi/core_api/datamodels/connections.py | 25 +-
.../api_fastapi/core_api/datamodels/dags.py | 2 +-
.../api_fastapi/core_api/datamodels/ui/common.py | 43 +
.../api_fastapi/core_api/datamodels/ui/grid.py | 17 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 438 ++++-
...i-generated.yaml => v2-rest-api-generated.yaml} | 0
.../core_api/routes/public/extra_links.py | 2 +-
.../api_fastapi/core_api/routes/public/log.py | 1 +
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 345 +++-
.../api_fastapi/core_api/routes/ui/structure.py | 21 +-
.../api_fastapi/core_api/services/ui/grid.py | 60 +
.../api_fastapi/core_api/services/ui/structure.py | 71 +
.../src/airflow/cli/commands/connection_command.py | 2 +-
.../src/airflow/config_templates/config.yml | 15 +
.../src/airflow/dag_processing/bundles/manager.py | 28 +-
airflow-core/src/airflow/dag_processing/manager.py | 11 +-
.../src/airflow/dag_processing/processor.py | 33 +-
.../airflow/example_dags/example_asset_alias.py | 2 +
.../src/airflow/example_dags/example_assets.py | 4 +-
.../airflow/example_dags/example_dag_decorator.py | 2 +-
.../example_dags/example_dynamic_task_mapping.py | 3 +
.../example_setup_teardown_taskflow.py | 2 +
.../airflow/example_dags/example_simplest_dag.py | 3 +
.../example_dags/example_task_group_decorator.py | 2 +-
.../src/airflow/example_dags/example_xcomargs.py | 2 +
.../src/airflow/jobs/scheduler_job_runner.py | 29 +-
.../src/airflow/jobs/triggerer_job_runner.py | 141 +-
airflow-core/src/airflow/migrations/utils.py | 9 +
...nconsistency_between_ORM_and_migration_files.py | 8 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 21 +-
...to_db.py => 0069_3_0_3_delete_import_errors.py} | 24 +-
airflow-core/src/airflow/models/dag.py | 2 +-
airflow-core/src/airflow/models/mappedoperator.py | 2 +-
airflow-core/src/airflow/models/serialized_dag.py | 9 +-
.../src/airflow/models/taskinstancehistory.py | 18 +
.../airflow/serialization/serialized_objects.py | 33 +-
airflow-core/src/airflow/settings.py | 4 +-
airflow-core/src/airflow/timetables/events.py | 14 +-
airflow-core/src/airflow/traces/otel_tracer.py | 29 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 88 +
.../ui/openapi-gen/queries/ensureQueryData.ts | 140 ++
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 140 ++
.../src/airflow/ui/openapi-gen/queries/queries.ts | 158 ++
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 158 ++
.../ui/openapi-gen/queries/useDagsInfinite.ts | 58 +
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 225 ++-
.../ui/openapi-gen/requests/services.gen.ts | 141 ++
.../airflow/ui/openapi-gen/requests/types.gen.ts | 181 +-
airflow-core/src/airflow/ui/openapi-merge.json | 2 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 1 +
.../airflow/ui/src/components/DurationChart.tsx | 17 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 1 +
.../ui/src/components/renderStructuredLog.tsx | 54 +-
.../ui/src/layouts/Details/DagRunSelect.tsx | 23 +-
.../airflow/ui/src/layouts/Details/Grid/Bar.tsx | 19 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 69 +-
.../layouts/Details/Grid/TaskInstancesColumn.tsx | 5 +-
.../airflow/ui/src/layouts/Details/Grid/utils.ts | 46 +-
.../ui/src/layouts/Details/ToggleGroups.tsx | 15 +-
.../ui/src/layouts/Nav/TimezoneSelector.tsx | 15 +-
.../ui/src/layouts/Nav/UserSettingsButton.tsx | 16 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 15 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 26 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 4 +-
.../airflow/ui/src/pages/DagsList/DagsFilters.tsx | 32 +-
.../src/airflow/ui/src/pages/Run/AssetEvents.tsx | 45 +
.../src/airflow/ui/src/pages/Run/Details.tsx | 11 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 5 +-
airflow-core/src/airflow/ui/src/pages/Security.tsx | 13 +-
.../src/airflow/ui/src/pages/Task/Task.tsx | 2 +-
.../{ExtraLinks.tsx => AssetEvents.tsx} | 41 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 18 -
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 5 +-
.../ui/src/queries/useConnectionTypeMeta.ts | 6 +-
.../airflow/ui/src/queries/useCreateBackfill.ts | 4 +-
.../airflow/ui/src/queries/useEditConnection.tsx | 4 +-
airflow-core/src/airflow/ui/src/queries/useGrid.ts | 72 -
.../useGridRuns.ts} | 31 +-
.../useGridStructure.ts} | 38 +-
.../Header.tsx => queries/useGridTISummaries.ts} | 38 +-
.../ui/src/queries/useRefreshOnNewDagRuns.ts | 12 +-
airflow-core/src/airflow/ui/src/router.tsx | 4 +
airflow-core/src/airflow/utils/db.py | 1 +
airflow-core/src/airflow/utils/db_cleanup.py | 67 +-
.../src/airflow/utils/log/file_task_handler.py | 54 +-
airflow-core/src/airflow/utils/log/log_reader.py | 30 +-
airflow-core/src/airflow/utils/task_group.py | 38 +
airflow-core/tests/conftest.py | 9 -
.../unit/api_fastapi/common/test_exceptions.py | 35 +-
.../core_api/routes/public/test_connections.py | 83 +-
.../core_api/routes/public/test_dag_run.py | 9 +-
.../core_api/routes/public/test_dag_sources.py | 4 +-
.../core_api/routes/public/test_extra_links.py | 65 +-
.../core_api/routes/public/test_pools.py | 2 +-
.../core_api/routes/public/test_task_instances.py | 21 +
.../api_fastapi/core_api/routes/ui/test_grid.py | 446 ++---
.../core_api/routes/ui/test_structure.py | 157 +-
.../bundles/test_dag_bundle_manager.py | 34 +-
.../tests/unit/dag_processing/test_manager.py | 81 +-
.../tests/unit/dag_processing/test_processor.py | 51 +-
airflow-core/tests/unit/hooks/test_base.py | 21 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 104 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 102 +-
.../tests/unit/models/test_serialized_dag.py | 29 +-
.../tests/unit/models/test_taskinstance.py | 4 +-
.../unit/serialization/test_serialized_objects.py | 76 +-
.../tests/unit/timetables/test_events_timetable.py | 29 +
.../tests/unit/utils/log/test_log_reader.py | 17 +
airflow-core/tests/unit/utils/test_db_cleanup.py | 47 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 33 +
airflow-ctl/pyproject.toml | 2 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 2 +-
chart/docs/index.rst | 2 +
chart/docs/installing-helm-chart-from-sources.rst | 7 +-
clients/python/CHANGELOG.md | 18 +
clients/python/README.md | 507 ++---
clients/python/test_python_client.py | 8 +-
clients/python/version.txt | 2 +-
contributing-docs/08_static_code_checks.rst | 4 +-
contributing-docs/16_adding_api_endpoints.rst | 2 +-
contributing-docs/testing/integration_tests.rst | 2 +
dev/README_RELEASE_AIRFLOW.md | 4 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 2 +-
dev/airflow-github | 2 +-
dev/breeze/README.md | 2 +-
dev/breeze/doc/01_installation.rst | 11 +
dev/breeze/doc/02_customizing.rst | 14 +-
dev/breeze/doc/03_developer_tasks.rst | 85 +-
dev/breeze/doc/05_test_commands.rst | 20 +-
dev/breeze/doc/06_managing_docker_images.rst | 2 +-
dev/breeze/doc/09_release_management_tasks.rst | 19 +
dev/breeze/doc/10_advanced_breeze_topics.rst | 4 +-
dev/breeze/doc/ci/02_images.md | 2 +-
dev/breeze/doc/ci/04_selective_checks.md | 3 +-
dev/breeze/doc/images/output-commands.svg | 132 +-
dev/breeze/doc/images/output_build-docs.svg | 106 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
.../doc/images/output_release-management.svg | 28 +-
.../doc/images/output_release-management.txt | 2 +-
...tput_release-management_add-back-references.svg | 4 +-
...tput_release-management_add-back-references.txt | 2 +-
...elease-management_constraints-version-check.svg | 176 ++
...elease-management_constraints-version-check.txt | 1 +
...ease-management_generate-issue-content-core.svg | 40 +-
...ease-management_generate-issue-content-core.txt | 2 +-
...anagement_generate-issue-content-helm-chart.svg | 40 +-
...anagement_generate-issue-content-helm-chart.txt | 2 +-
...e-management_install-provider-distributions.svg | 166 +-
...e-management_install-provider-distributions.txt | 2 +-
...anagement_prepare-airflow-ctl-distributions.txt | 2 +-
...se-management_prepare-airflow-distributions.txt | 2 +-
...ut_release-management_prepare-python-client.txt | 2 +-
...e-management_prepare-task-sdk-distributions.txt | 2 +-
...utput_release-management_publish-docs-to-s3.svg | 158 ++
...utput_release-management_publish-docs-to-s3.txt | 1 +
.../output_release-management_publish-docs.svg | 4 +-
.../output_release-management_publish-docs.txt | 2 +-
...se-management_verify-provider-distributions.svg | 94 +-
...se-management_verify-provider-distributions.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 256 +++
dev/breeze/doc/images/output_run.txt | 1 +
dev/breeze/doc/images/output_sbom.svg | 8 +-
dev/breeze/doc/images/output_sbom.txt | 2 +-
.../images/output_sbom_update-sbom-information.svg | 122 +-
.../images/output_sbom_update-sbom-information.txt | 2 +-
dev/breeze/doc/images/output_setup.svg | 2 +-
.../output_setup_check-all-params-in-groups.svg | 62 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
dev/breeze/doc/images/output_setup_config.svg | 38 +-
dev/breeze/doc/images/output_setup_config.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 52 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 280 +--
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 244 ++-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/doc/images/output_static-checks.svg | 86 +-
dev/breeze/doc/images/output_static-checks.txt | 2 +-
.../images/output_testing_airflow-ctl-tests.svg | 104 +-
.../images/output_testing_airflow-ctl-tests.txt | 2 +-
.../output_testing_core-integration-tests.svg | 8 +-
.../output_testing_core-integration-tests.txt | 2 +-
.../doc/images/output_testing_core-tests.svg | 44 +-
.../doc/images/output_testing_core-tests.txt | 2 +-
.../output_testing_providers-integration-tests.svg | 10 +-
.../output_testing_providers-integration-tests.txt | 2 +-
.../doc/images/output_testing_providers-tests.svg | 62 +-
.../doc/images/output_testing_providers-tests.txt | 2 +-
.../output_testing_python-api-client-tests.svg | 8 +-
.../output_testing_python-api-client-tests.txt | 2 +-
.../doc/images/output_testing_system-tests.svg | 136 +-
.../doc/images/output_testing_system-tests.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 32 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
dev/breeze/pyproject.toml | 6 +-
dev/breeze/src/airflow_breeze/breeze.py | 3 +-
.../airflow_breeze/commands/ci_image_commands.py | 15 +-
.../src/airflow_breeze/commands/common_options.py | 40 +-
.../common_package_installation_options.py | 14 -
.../airflow_breeze/commands/developer_commands.py | 218 ++-
.../commands/developer_commands_config.py | 69 +-
.../commands/minor_release_command.py | 6 +
.../commands/release_management_commands.py | 294 ++-
.../commands/release_management_commands_config.py | 49 +-
.../src/airflow_breeze/commands/sbom_commands.py | 138 +-
.../commands/sbom_commands_config.py | 9 +-
.../src/airflow_breeze/commands/setup_commands.py | 2 +-
.../airflow_breeze/commands/testing_commands.py | 111 +-
.../commands/testing_commands_config.py | 7 +-
.../airflow_breeze/commands/workflow_commands.py | 42 +-
.../commands/workflow_commands_config.py | 1 +
dev/breeze/src/airflow_breeze/global_constants.py | 41 +-
.../src/airflow_breeze/params/build_ci_params.py | 1 -
.../src/airflow_breeze/params/doc_build_params.py | 3 +
.../src/airflow_breeze/params/shell_params.py | 21 +-
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 3 +-
.../prepare_providers/provider_documentation.py | 127 +-
.../provider_issue_TEMPLATE.md.jinja2 | 2 +-
.../templates/CHANGELOG_TEMPLATE.rst.jinja2 | 10 +
.../templates/PROVIDER_COMMITS_TEMPLATE.rst.jinja2 | 5 +-
.../airflow_breeze/utils/add_back_references.py | 9 +-
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 41 +-
dev/breeze/src/airflow_breeze/utils/console.py | 7 +-
.../utils/constraints_version_check.py | 513 +++++
.../src/airflow_breeze/utils/docs_publisher.py | 9 +-
.../src/airflow_breeze/utils/gh_workflow_utils.py | 21 +-
dev/breeze/src/airflow_breeze/utils/github.py | 73 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 39 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 2 +
.../src/airflow_breeze/utils/publish_docs_to_s3.py | 358 ++++
dev/breeze/src/airflow_breeze/utils/run_tests.py | 16 +-
.../src/airflow_breeze/utils/selective_checks.py | 118 +-
.../src/airflow_breeze/utils/version_utils.py | 22 -
dev/breeze/tests/test_packages.py | 19 +-
dev/breeze/tests/test_provider_documentation.py | 126 ++
dev/breeze/tests/test_publish_docs_to_s3.py | 271 +++
dev/breeze/tests/test_selective_checks.py | 237 +--
dev/breeze/tests/test_shell_params.py | 4 +-
dev/breeze/uv.lock | 1966 ++++++++++----------
devel-common/src/docs/provider_conf.py | 2 +-
.../src/sphinx_exts/docs_build/docs_builder.py | 6 +
.../src/sphinx_exts/docs_build/spelling_checks.py | 8 +-
devel-common/src/sphinx_exts/exampleinclude.py | 1 +
devel-common/src/tests_common/pytest_plugin.py | 24 +-
.../src/tests_common/test_utils/mock_operators.py | 7 +
docker-stack-docs/README.md | 10 +-
docker-stack-docs/build.rst | 4 +-
docker-stack-docs/changelog.rst | 5 +
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docker-stack-docs/entrypoint.rst | 14 +-
docs/README.md | 239 +++
docs/spelling_wordlist.txt | 5 +
providers/amazon/docs/operators/athena/index.rst | 3 +-
.../tests/unit/amazon/aws/links/test_athena.py | 2 +-
.../tests/unit/amazon/aws/links/test_batch.py | 6 +-
.../tests/unit/amazon/aws/links/test_comprehend.py | 4 +-
.../tests/unit/amazon/aws/links/test_datasync.py | 4 +-
.../amazon/tests/unit/amazon/aws/links/test_ec2.py | 4 +-
.../amazon/tests/unit/amazon/aws/links/test_emr.py | 12 +-
.../tests/unit/amazon/aws/links/test_glue.py | 2 +-
.../tests/unit/amazon/aws/links/test_logs.py | 2 +-
.../tests/unit/amazon/aws/links/test_sagemaker.py | 2 +-
.../aws/links/test_sagemaker_unified_studio.py | 2 +-
.../unit/amazon/aws/links/test_step_function.py | 4 +-
providers/apache/beam/pyproject.toml | 2 +-
.../src/airflow/providers/apache/beam/__init__.py | 4 +-
.../io/tests/unit/common/io/xcom/test_backend.py | 19 +-
providers/databricks/pyproject.toml | 2 +-
.../src/airflow/providers/databricks/__init__.py | 4 +-
.../tests/unit/dbt/cloud/operators/test_dbt.py | 2 +-
providers/fab/pyproject.toml | 2 +-
.../api_endpoints/role_and_permission_endpoint.py | 4 +
.../auth_manager/api_endpoints/user_endpoint.py | 4 +
...ted.yaml => v2-fab-auth-manager-generated.yaml} | 0
.../providers/fab/auth_manager/models/__init__.py | 62 +-
.../fab/auth_manager/models/anonymous_user.py | 6 +-
.../fab/auth_manager/security_manager/override.py | 54 +-
.../fab/auth_manager/api_endpoints/test_auth.py | 2 -
.../fab/auth_manager/models/test_anonymous_user.py | 2 +-
.../tests/unit/fab/auth_manager/test_security.py | 12 +-
providers/google/pyproject.toml | 2 +-
.../tests/unit/google/cloud/links/test_dataplex.py | 20 +-
.../unit/google/cloud/links/test_translate.py | 8 +-
.../unit/google/cloud/operators/test_dataproc.py | 20 +-
.../microsoft/azure/operators/test_data_factory.py | 2 +-
.../unit/microsoft/azure/operators/test_synapse.py | 2 +-
providers/snowflake/pyproject.toml | 2 +-
.../src/airflow/providers/snowflake/__init__.py | 4 +-
pyproject.toml | 12 +-
reproducible_build.yaml | 4 +-
scripts/ci/airflow_version_check.py | 17 +-
.../{ci-uv-tests.yml => ci-tests.yml} | 4 +-
scripts/ci/docker-compose/devcontainer.env | 2 +-
.../ci/docker-compose/gremlin/graph.properties | 19 +-
.../gremlin-entrypoint.sh} | 29 +-
.../ci/docker-compose/gremlin/gremlin-server.yaml | 63 +
.../docker-compose/gremlin/log4j-server.properties | 32 +
.../ci/docker-compose/gremlin/logback.xml | 30 +-
...gration-drill.yml => integration-tinkerpop.yml} | 27 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/pre_commit/boring_cyborg.py | 26 +-
scripts/ci/pre_commit/breeze_cmd_line.py | 5 +-
..._openapi_spec.py => capture_airflowctl_help.py} | 2 +-
.../check_airflow_bug_report_template.py | 2 +-
scripts/ci/pre_commit/check_deferrable_default.py | 4 +-
scripts/ci/pre_commit/check_extra_packages_ref.py | 2 +-
scripts/ci/pre_commit/check_i18n_json.py | 71 +
.../ci/pre_commit/check_imports_in_providers.py | 86 +-
scripts/ci/pre_commit/check_kubeconform.py | 7 +-
scripts/ci/pre_commit/check_license.py | 8 +-
.../check_system_tests_hidden_in_index.py | 2 +-
scripts/ci/pre_commit/common_precommit_utils.py | 54 +
scripts/ci/pre_commit/compile_fab_assets.py | 26 +-
scripts/ci/pre_commit/compile_lint_ui.py | 51 -
scripts/ci/pre_commit/generate_pypi_readme.py | 10 +-
scripts/ci/pre_commit/inline_scripts_in_docker.py | 8 +-
scripts/ci/pre_commit/lint_dockerfile.py | 6 +-
scripts/ci/pre_commit/lint_helm.py | 3 +-
...e.py => prevent_deprecated_sqlalchemy_usage.py} | 56 +-
scripts/ci/pre_commit/sort_in_the_wild.py | 6 +-
scripts/ci/pre_commit/sort_installed_providers.py | 7 +-
scripts/ci/pre_commit/sort_spelling_wordlist.py | 7 +-
scripts/ci/pre_commit/supported_versions.py | 4 +-
.../ts_compile_lint_simple_auth_manager_ui.py | 61 +
scripts/ci/pre_commit/ts_compile_lint_ui.py | 63 +
.../ci/pre_commit/update_airflow_pyproject_toml.py | 2 +-
scripts/ci/pre_commit/update_black_version.py | 7 +-
.../pre_commit/update_installers_and_pre_commit.py | 7 +-
.../ci/testing/run_breeze_command_with_retries.sh | 46 -
scripts/ci/testing/run_unit_tests.sh | 11 +
scripts/cov/cli_coverage.py | 42 +-
scripts/cov/core_coverage.py | 244 ++-
scripts/cov/cov_runner.py | 11 +-
scripts/cov/other_coverage.py | 4 +-
scripts/cov/restapi_coverage.py | 2 +-
scripts/docker/entrypoint_ci.sh | 45 +-
scripts/docker/entrypoint_prod.sh | 4 +-
scripts/docker/install_mysql.sh | 26 +-
scripts/docker/install_os_dependencies.sh | 2 +-
scripts/docker/pip | 2 +-
scripts/in_container/bin/run_tmux | 2 +-
scripts/in_container/check_environment.sh | 28 +-
scripts/in_container/in_container_utils.py | 28 +
.../in_container/install_airflow_and_providers.py | 368 ++--
.../in_container/run_capture_airflowctl_help.py | 123 ++
.../run_check_imports_in_providers.py} | 21 +-
scripts/in_container/run_ci_tests.sh | 1 -
scripts/in_container/run_docs_build.sh | 2 +
scripts/in_container/run_generate_migration.sh | 2 +-
scripts/in_container/run_generate_openapi_spec.py | 4 +-
.../in_container/run_provider_yaml_files_check.py | 5 +-
scripts/tools/setup_breeze | 2 +-
task-sdk/docs/.gitignore | 1 +
task-sdk/docs/api.rst | 132 ++
task-sdk/docs/conf.py | 87 +
task-sdk/docs/dynamic-task-mapping.rst | 99 +
task-sdk/docs/examples.rst | 136 ++
task-sdk/docs/index.rst | 92 +
task-sdk/pyproject.toml | 6 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/__init__.pyi | 95 +
task-sdk/src/airflow/sdk/api/client.py | 2 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 121 +-
.../airflow/sdk/definitions/asset/decorators.py | 14 +-
task-sdk/src/airflow/sdk/definitions/context.py | 2 +
task-sdk/src/airflow/sdk/definitions/dag.py | 12 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 208 ++-
task-sdk/src/airflow/sdk/execution_time/context.py | 100 +-
.../airflow/sdk/execution_time/lazy_sequence.py | 60 +-
.../src/airflow/sdk/execution_time/supervisor.py | 351 +++-
.../src/airflow/sdk/execution_time/task_runner.py | 305 ++-
task-sdk/src/airflow/sdk/io/path.py | 21 +-
task-sdk/tests/task_sdk/api/test_client.py | 47 +
task-sdk/tests/task_sdk/bases/test_sensor.py | 10 +-
task-sdk/tests/task_sdk/definitions/conftest.py | 6 +-
.../task_sdk/definitions/test_asset_decorators.py | 18 +-
.../tests/task_sdk/definitions/test_connections.py | 2 +-
.../task_sdk/definitions/test_mappedoperator.py | 41 +-
.../tests/task_sdk/definitions/test_variables.py | 5 +-
.../tests/task_sdk/definitions/test_xcom_arg.py | 36 +-
.../tests/task_sdk/docs}/__init__.py | 0
.../tests/task_sdk/docs/test_docs_inventory.py | 82 +
task-sdk/tests/task_sdk/docs/test_public_api.py | 74 +
.../tests/task_sdk/execution_time/test_comms.py | 83 +
.../tests/task_sdk/execution_time/test_context.py | 85 +-
.../task_sdk/execution_time/test_lazy_sequence.py | 140 +-
.../task_sdk/execution_time/test_supervisor.py | 400 ++--
.../task_sdk/execution_time/test_task_runner.py | 460 ++---
474 files changed, 14947 insertions(+), 6660 deletions(-)
copy .readthedocs.yml => .github/.pre-commit-config.yaml (69%)
rename .github/ISSUE_TEMPLATE/{airflow_bug_report.yml =>
1-airflow_bug_report.yml} (99%)
rename .github/ISSUE_TEMPLATE/{feature_request.yml => 2-feature_request.yml}
(100%)
rename .github/ISSUE_TEMPLATE/{airflow_providers_bug_report.yml =>
3-airflow_providers_bug_report.yml} (100%)
rename .github/ISSUE_TEMPLATE/{airflow_helmchart_bug_report.yml =>
4-airflow_helmchart_bug_report.yml} (99%)
rename .github/ISSUE_TEMPLATE/{airflow_doc_issue_report.yml =>
5-airflow_doc_issue_report.yml} (100%)
rename .github/ISSUE_TEMPLATE/{~free_form.yml => 6-free_form.yml} (100%)
rename
airflow-core/src/airflow/api_fastapi/auth/managers/simple/openapi/{v1-simple-auth-manager-generated.yaml
=> v2-simple-auth-manager-generated.yaml} (100%)
rename
airflow-core/src/airflow/api_fastapi/core_api/openapi/{v1-rest-api-generated.yaml
=> v2-rest-api-generated.yaml} (100%)
copy
airflow-core/src/airflow/migrations/versions/{0019_2_10_0_add_new_executor_field_to_db.py
=> 0069_3_0_3_delete_import_errors.py} (68%)
create mode 100644
airflow-core/src/airflow/ui/openapi-gen/queries/useDagsInfinite.ts
create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/AssetEvents.tsx
copy airflow-core/src/airflow/ui/src/pages/TaskInstance/{ExtraLinks.tsx =>
AssetEvents.tsx} (54%)
delete mode 100644 airflow-core/src/airflow/ui/src/queries/useGrid.ts
copy airflow-core/src/airflow/ui/src/{context/timezone/TimezoneProvider.tsx =>
queries/useGridRuns.ts} (54%)
copy airflow-core/src/airflow/ui/src/{context/timezone/TimezoneProvider.tsx =>
queries/useGridStructure.ts} (52%)
copy airflow-core/src/airflow/ui/src/{pages/Asset/Header.tsx =>
queries/useGridTISummaries.ts} (51%)
create mode 100644
dev/breeze/doc/images/output_release-management_constraints-version-check.svg
create mode 100644
dev/breeze/doc/images/output_release-management_constraints-version-check.txt
create mode 100644
dev/breeze/doc/images/output_release-management_publish-docs-to-s3.svg
create mode 100644
dev/breeze/doc/images/output_release-management_publish-docs-to-s3.txt
create mode 100644 dev/breeze/doc/images/output_run.svg
create mode 100644 dev/breeze/doc/images/output_run.txt
create mode 100755
dev/breeze/src/airflow_breeze/utils/constraints_version_check.py
create mode 100644 dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py
create mode 100644 dev/breeze/tests/test_publish_docs_to_s3.py
rename
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/{v1-fab-auth-manager-generated.yaml
=> v2-fab-auth-manager-generated.yaml} (100%)
rename scripts/ci/docker-compose/{ci-uv-tests.yml => ci-tests.yml} (93%)
copy airflow-core/src/airflow/api_fastapi/auth/managers/models/base_user.py =>
scripts/ci/docker-compose/gremlin/graph.properties (62%)
copy scripts/ci/docker-compose/{keycloak/init-keycloak-db.sh =>
gremlin/gremlin-entrypoint.sh} (56%)
mode change 100755 => 100644
create mode 100644 scripts/ci/docker-compose/gremlin/gremlin-server.yaml
create mode 100644 scripts/ci/docker-compose/gremlin/log4j-server.properties
copy airflow-core/tests/unit/testconfig/conf/core-with-trash.xml =>
scripts/ci/docker-compose/gremlin/logback.xml (59%)
copy scripts/ci/docker-compose/{integration-drill.yml =>
integration-tinkerpop.yml} (60%)
copy scripts/ci/pre_commit/{generate_openapi_spec.py =>
capture_airflowctl_help.py} (93%)
mode change 100755 => 100644
create mode 100644 scripts/ci/pre_commit/check_i18n_json.py
delete mode 100755 scripts/ci/pre_commit/compile_lint_ui.py
copy scripts/ci/pre_commit/{docstring_param_type.py =>
prevent_deprecated_sqlalchemy_usage.py} (53%)
mode change 100755 => 100644
create mode 100755
scripts/ci/pre_commit/ts_compile_lint_simple_auth_manager_ui.py
create mode 100755 scripts/ci/pre_commit/ts_compile_lint_ui.py
delete mode 100755 scripts/ci/testing/run_breeze_command_with_retries.sh
create mode 100644 scripts/in_container/run_capture_airflowctl_help.py
copy scripts/{ci/pre_commit/check_imports_in_providers.py =>
in_container/run_check_imports_in_providers.py} (87%)
mode change 100755 => 100644
create mode 100644 task-sdk/docs/.gitignore
create mode 100644 task-sdk/docs/api.rst
create mode 100644 task-sdk/docs/conf.py
create mode 100644 task-sdk/docs/dynamic-task-mapping.rst
create mode 100644 task-sdk/docs/examples.rst
create mode 100644 task-sdk/docs/index.rst
create mode 100644 task-sdk/src/airflow/sdk/__init__.pyi
copy {airflow-core/src/airflow/api =>
task-sdk/tests/task_sdk/docs}/__init__.py (100%)
create mode 100644 task-sdk/tests/task_sdk/docs/test_docs_inventory.py
create mode 100644 task-sdk/tests/task_sdk/docs/test_public_api.py
create mode 100644 task-sdk/tests/task_sdk/execution_time/test_comms.py