This is an automated email from the ASF dual-hosted git repository.
ashb pushed a change to branch aip99-example-aiptracker
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 8fa792649b2 Removed duplicate import and redundant definition
discard d304e9b8c06 Add skills-based AIP tracker DAG alongside the pipeline
version
discard ce2f14b3684 Improve AIP progress tracker example DAG to produce
accurate, evidence-backed results
add 166cd335659 Add defensive validation for LDAP search filter
configuration (#67630)
add cec244d28d3 Add `DmsModifyTaskOperator` (#67524)
add cc63c837fab Add comment hint about pandas 3.0.0 (#67961)
add 8e1667e0041 Add async connection testing via workers for security
isolation (#62343)
add 0341d42cb23 Add suhaas-vaddadi to INTHEWILD.md (#67969)
add ed10d7b053f UI: Fix task instance state badge staying stale after
Mark-as action (#67950)
add b82b881dced Update beginner quickstart guide (#67952)
add dcb5cc57824 Fix breeze provider release tooling (uvx paths, issue
submission) (#67960)
add c67bba009b3 Run breeze command-image prek hook against local sources,
not stale uvx cache (#67966)
add b9479453f88 Migrate apache-steward framework adoption to Apache Magpie
(#67929)
add 78039ba3b86 Bump google-cloud-aiplatform to force upgrade of litellm
(#66632)
add 23adbdeae3d Fix flaky e2e remote-logging tests: create LocalStack
buckets via loopback (#67976)
add 6cb5d040088 Add docs for multi-team triggerer support (#67608)
add 8cd923206d1 Update Notebook Operator to pull S3 project bucket from
tooling env (#67915)
add c13f6d45461 Strengthen trigger-hash tests with a fully-serialized JSON
guard and broader fixtures #66413 (#67018)
add c37ccaa610b Track Spark job status for YARN cluster mode via RM REST
API to free JVM (#65991)
add c91dc3bb4ba CI: Run CodeQL only on languages changed in a pull request
(#67972)
add 71ed20434d7 Add ClickHouse Provider (#67080)
add 1c1359f3a09 Fixing static check failure on main due to provider
dependencies hash (#68011)
add daad2c4bca6 Use K8s API to track Spark on K8s instead of JVM based
spark-submit (#67715)
add eeb5c925041 Fix Weaviate tenant-aware ingestion (#67298)
add 6f182491437 Bump redshift-connector from 2.1.13 to 2.1.14 (#68007)
add 34a4a7dcd2d Bump idna from 3.14 to 3.15 (#68006)
add ab1418ff94a Decouple remote logging config from core (#67056)
add a493aae4178 Add team_name as option for dag_bundle_config_list in Helm
Chart (#67991)
add c9d7f367ac4 Final wire up for Java SDK (#67826)
add 6dbe76a5d4e Enhance `ResumableJobMixin.get_job_status` with context
for better job status tracking (#68009)
add adead2b2385 Record the writer info for every asset store write for
better cross linkage (#67902)
add 16547dfef2e Validate downloaded paths stay within the destination
directory in SFTPHook.retrieve_directory (#67985)
add c1d99ec54cd Add golden rule: do not create newsfragments unless
certain a change is user-facing (#67982)
add f32991b8022 Restrict reproducible-build dirty check to
dockerignore-allowed paths (#67663)
add 15a4048db81 refactor: Added Azure, Fabric and instance MSSQL Asset URI
validation (#67999)
add 6f71c973952 Populate trigger team_name at creation time for multi-team
support (#67605)
add 5de50b80431 Remove unnecessarily added logging in edge worker (#68019)
add d8fc7550a31 Bump npm dependencies for dependabot (#67977)
add 2dfac4726ab SimpleAuthManager: Preserve next_url in login redirect
(#67965)
add f0833b06300 Add Browse > Deadlines page (#67586)
add 7d95a3c414a Add `allow_consumer_teams` and `allow_global_consumers`
columns to `TaskOutletAssetReference` (#67730)
add f822744a0a1 Fix None child state rendering in UI (#67552)
add dc27827de26 UI: Fix Dag code highlighting for f-strings (#68026)
add c82c945e430 Apply consumer team filtering (#68025)
add 080ad504f97 Update `CLAUDE.md` to use decorators instead of `with`
when possible (#68035)
add 98efdbd59c2 Support tpl rendering in volumes, volumeMounts and
pgbouncer.configSecretName (#67958)
add 21f6df79a78 Bump aiohttp regarding dependabot warning (#67978)
add 0dd018902fa Allow kubernetes and kubernetes_asyncio client 36.x in
cncf.kubernetes (#68041)
add 60d435386d1 Add Helm chart 1.22.0 to bug report version dropdown
(#67992)
add e893ec65ea1 magpie-setup: refresh committed bootstrap from
airflow-steward main (#67983)
add 992e602015b Apply per-file authorization to dag-source endpoint
(#67662)
add 034649f1d4f Helm release docs: serve superseded chart versions from
archive.apache.org (#67988)
add 365ea553add AIP-76: Hold Dag run until all upstream partitions arrive
(#64571)
add 29a981ebbc8 Regenerate uv.lock after allowing kubernetes 36.x in
cncf.kubernetes (#68041) (#68051)
add 4adf4e62f95 Don't force the full test matrix for large
example_dags-only changes (#68042)
add aeedb91536f Add Java SDK publish configuration (#68016)
add a3cec99084a Make partition_key provenance-only and inherit it onto
asset events (#67718)
add 04b12c2540e Fix ktlint dependency to discriminator (#68058)
add 47faf3c0723 Fix coroutine serialization error in
PowerBIDatasetRefreshOperator (#63829)
add 477cbedcedc Reduce redundant Dag team lookups in authorization checks
(#68020)
add 0ac475f1d8a Add Amazon Bedrock AgentCore Runtime operators (#67984)
add 2dcfd7ccd2a Fix Java-SDK e2e test registration (#67993)
add 18caee14972 Fix trigger datetime deserialization (#67795)
add f1a5d1edab4 Fix Typo in HTTP Connection Example (#68076)
add 959b185d8f9 Improve AIP progress tracker example DAG to produce
accurate, evidence-backed results
add 238fb072a0e Add skills-based AIP tracker DAG alongside the pipeline
version
add e6133bc0692 Removed duplicate import and redundant definition
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (8fa792649b2)
\
N -- N -- N refs/heads/aip99-example-aiptracker (e6133bc0692)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.../README.md | 0
.../pr-management-config.md | 0
.../pr-management-triage-ci-check-map.md | 0
.../pr-management-triage-comment-templates.md | 0
.apache-magpie.lock | 6 +
.apache-steward.lock | 6 -
.claude/skills/magpie-setup | 1 +
.claude/skills/setup-steward | 1 -
.codespellignorelines | 1 +
.dockerignore | 1 +
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 4 +-
.github/boring-cyborg.yml | 3 +
.../{setup-steward => magpie-setup}/SKILL.md | 178 +-
.../{setup-steward => magpie-setup}/adopt.md | 497 ++-
.../{setup-steward => magpie-setup}/conventions.md | 38 +-
.../{setup-steward => magpie-setup}/overrides.md | 18 +-
.../{setup-steward => magpie-setup}/unadopt.md | 96 +-
.../{setup-steward => magpie-setup}/upgrade.md | 175 +-
.github/skills/magpie-setup/verify.md | 687 ++++
.../worktree-init.md | 56 +-
.github/skills/setup-steward/verify.md | 350 --
.github/workflows/additional-prod-image-tests.yml | 16 +
.github/workflows/ci-amd.yml | 44 +-
.github/workflows/ci-arm.yml | 44 +-
.github/workflows/codeql-analysis.yml | 52 +-
.github/workflows/publish-docs-to-s3.yml | 60 +-
.gitignore | 37 +-
.pre-commit-config.yaml | 12 +-
AGENTS.md | 17 +-
Dockerfile.ci | 4 +
INTHEWILD.md | 2 +-
README.md | 14 +-
.../docs/authoring-and-scheduling/assets.rst | 95 +
.../docs/authoring-and-scheduling/deferring.rst | 8 +
airflow-core/docs/core-concepts/multi-team.rst | 45 +-
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/docs/howto/connection.rst | 37 +
airflow-core/docs/migrations-ref.rst | 13 +-
airflow-core/docs/security/security_model.rst | 25 +
airflow-core/hatch_build.py | 41 +-
airflow-core/newsfragments/62343.feature.rst | 1 +
...ip-76.significant.rst => 64571.significant.rst} | 27 +-
airflow-core/newsfragments/67056.significant.rst | 101 +
airflow-core/newsfragments/67586.significant.rst | 4 +
.../auth/managers/simple/simple_auth_manager.py | 11 +-
.../api_fastapi/common/partition_helpers.py | 89 +
.../src/airflow/api_fastapi/common/types.py | 1 +
.../api_fastapi/core_api/datamodels/asset_store.py | 12 +
.../api_fastapi/core_api/datamodels/connections.py | 44 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 1 +
.../api_fastapi/core_api/datamodels/ui/assets.py | 54 +
.../api_fastapi/core_api/datamodels/ui/grid.py | 3 +-
.../core_api/datamodels/ui/partitioned_dag_runs.py | 14 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 116 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 273 +-
.../core_api/routes/public/asset_store.py | 52 +-
.../core_api/routes/public/connections.py | 158 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 3 +-
.../core_api/routes/public/dag_sources.py | 33 +-
.../api_fastapi/core_api/routes/ui/assets.py | 165 +-
.../core_api/routes/ui/partitioned_dag_runs.py | 407 +-
.../api_fastapi/core_api/services/ui/grid.py | 6 +-
.../execution_api/datamodels/connection_test.py | 50 +
.../api_fastapi/execution_api/routes/__init__.py | 4 +
.../execution_api/routes/asset_store.py | 61 +-
.../execution_api/routes/connection_tests.py | 140 +
.../api_fastapi/execution_api/routes/dag_runs.py | 7 +-
.../execution_api/routes/task_instances.py | 10 +-
.../airflow/api_fastapi/execution_api/security.py | 7 +
.../api_fastapi/execution_api/versions/__init__.py | 7 +-
.../execution_api/versions/v2026_06_30.py | 11 +
airflow-core/src/airflow/assets/manager.py | 92 +-
.../cli/commands/rotate_fernet_key_command.py | 8 +
.../src/airflow/config_templates/config.yml | 49 +
.../src/airflow/dag_processing/collection.py | 37 +-
.../example_dags/example_asset_partition.py | 79 +
airflow-core/src/airflow/exceptions.py | 4 +
.../src/airflow/executors/base_executor.py | 76 +-
.../src/airflow/executors/local_executor.py | 9 +-
.../src/airflow/executors/workloads/__init__.py | 6 +-
.../airflow/executors/workloads/connection_test.py | 81 +
.../src/airflow/executors/workloads/types.py | 13 +-
.../src/airflow/jobs/scheduler_job_runner.py | 407 +-
airflow-core/src/airflow/logging_config.py | 69 +-
..._3_3_0_add_task_store_and_asset_store_tables.py | 5 +
.../0118_3_3_0_add_connection_test_table.py | 85 +
...nsumer_teams_to_task_outlet_asset_reference.py} | 28 +-
.../0120_3_3_0_add_partition_mapper_info_to_dag.py | 73 +
.../0121_3_3_0_add_rollup_fingerprint_to_apdr.py | 66 +
airflow-core/src/airflow/models/__init__.py | 1 +
airflow-core/src/airflow/models/asset.py | 30 +-
airflow-core/src/airflow/models/asset_store.py | 10 +
airflow-core/src/airflow/models/callback.py | 13 +-
airflow-core/src/airflow/models/connection.py | 64 +-
airflow-core/src/airflow/models/connection_test.py | 230 ++
airflow-core/src/airflow/models/crypto.py | 57 +
airflow-core/src/airflow/models/dag.py | 57 +-
airflow-core/src/airflow/models/dagbundle.py | 17 +-
airflow-core/src/airflow/models/deadline.py | 4 +-
airflow-core/src/airflow/models/taskinstance.py | 23 +-
.../src/airflow/partition_mappers/__init__.py | 46 +
airflow-core/src/airflow/partition_mappers/base.py | 122 +-
.../src/airflow/partition_mappers/temporal.py | 276 +-
.../src/airflow/partition_mappers/window.py | 196 +
airflow-core/src/airflow/provider.yaml.schema.json | 19 +
airflow-core/src/airflow/provider_info.schema.json | 19 +
airflow-core/src/airflow/providers_manager.py | 54 +
airflow-core/src/airflow/serialization/decoders.py | 21 +
.../src/airflow/serialization/definitions/dag.py | 32 +-
airflow-core/src/airflow/serialization/encoders.py | 79 +
airflow-core/src/airflow/serialization/helpers.py | 19 +
airflow-core/src/airflow/state/metastore.py | 122 +-
airflow-core/src/airflow/timetables/base.py | 93 +-
airflow-core/src/airflow/timetables/simple.py | 42 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 7 +
.../ui/openapi-gen/queries/ensureQueryData.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 28 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 13 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 439 ++-
.../ui/openapi-gen/requests/services.gen.ts | 53 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 184 +-
airflow-core/src/airflow/ui/package.json | 8 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 36 +-
.../airflow/ui/public/i18n/locales/en/browse.json | 18 +
.../airflow/ui/public/i18n/locales/en/common.json | 4 +
.../ui/public/i18n/locales/zh-TW/common.json | 3 +
.../components/AssetExpression/AssetExpression.tsx | 14 +-
.../src/components/AssetExpression/AssetNode.tsx | 95 +-
.../ui/src/components/AssetExpression/types.ts | 2 -
.../ui/src/components/AssetProgressCell.tsx | 36 +-
.../src/components/MonacoEditor/configureMonaco.ts | 40 +-
.../components/MonacoEditor/pythonFStrings.test.ts | 183 +
.../src/components/MonacoEditor/pythonFStrings.ts | 100 +
.../ui/src/components/RollupKeyChecklist.tsx | 96 +
.../ui/src/components/TaskInstanceTooltip.test.tsx | 22 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 17 +
.../src/airflow/ui/src/constants/searchParams.ts | 4 +
.../airflow/ui/src/layouts/Nav/BrowseButton.tsx | 5 +
.../ui/src/pages/DagsList/AssetSchedule.tsx | 143 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 156 +
.../airflow/ui/src/queries/usePatchTaskInstance.ts | 26 +-
airflow-core/src/airflow/ui/src/router.tsx | 5 +
airflow-core/src/airflow/ui/src/theme.ts | 1 +
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 2 +
airflow-core/src/airflow/ui/src/vite-env.d.ts | 11 +
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/db_cleanup.py | 16 +
airflow-core/tests/unit/always/test_connection.py | 40 +
.../tests/unit/always/test_providers_manager.py | 83 +
.../managers/simple/test_simple_auth_manager.py | 12 +
.../api_fastapi/common/test_partition_helpers.py | 97 +
.../core_api/routes/public/test_asset_store.py | 56 +
.../core_api/routes/public/test_assets.py | 6 +-
.../core_api/routes/public/test_connections.py | 243 +-
.../core_api/routes/public/test_dag_run.py | 113 +-
.../core_api/routes/public/test_dag_sources.py | 59 +
.../core_api/routes/public/test_task_instances.py | 2 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 259 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 12 +-
.../routes/ui/test_partitioned_dag_runs.py | 551 ++-
.../unit/api_fastapi/execution_api/conftest.py | 10 +-
.../unit/api_fastapi/execution_api/test_app.py | 17 +
.../versions/head/test_asset_store.py | 104 +-
.../versions/head/test_connection_tests.py | 331 ++
.../execution_api/versions/head/test_dag_runs.py | 36 +-
.../versions/head/test_task_instances.py | 63 +
.../versions/v2026_06_30/test_connection_tests.py | 68 +
airflow-core/tests/unit/assets/test_manager.py | 181 +
.../tests/unit/dag_processing/test_collection.py | 236 +-
.../tests/unit/executors/test_base_executor.py | 49 +-
.../tests/unit/executors/test_local_executor.py | 6 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 1571 +++++++-
.../tests/unit/logging/test_logging_config.py | 210 ++
airflow-core/tests/unit/models/test_callback.py | 45 +-
.../tests/unit/models/test_connection_test.py | 276 ++
airflow-core/tests/unit/models/test_dag.py | 199 +-
airflow-core/tests/unit/models/test_dagbundle.py | 60 +
airflow-core/tests/unit/models/test_deadline.py | 16 +
.../tests/unit/models/test_taskinstance.py | 159 +-
airflow-core/tests/unit/models/test_trigger.py | 21 +
.../tests/unit/partition_mappers/test_base.py | 127 +
.../tests/unit/partition_mappers/test_temporal.py | 101 +
.../tests/unit/partition_mappers/test_window.py | 345 ++
.../unit/serialization/test_dag_serialization.py | 38 +-
.../tests/unit/serialization/test_encoders.py | 136 +-
airflow-core/tests/unit/state/test_metastore.py | 150 +
.../tests/unit/timetables/test_base_timetable.py | 135 +
.../unit/timetables/test_partitioned_timetable.py | 78 +-
airflow-core/tests/unit/utils/test_db_cleanup.py | 66 +
.../src/airflowctl/api/datamodels/generated.py | 91 +-
airflow-e2e-tests/scripts/init-aws.sh | 26 +-
chart/files/pod-template-file.kubernetes-helm-yaml | 8 +-
chart/newsfragments/67958.feature.rst | 1 +
chart/templates/_helpers.yaml | 9 +-
.../api-server/api-server-deployment.yaml | 6 +-
chart/templates/cleanup/cleanup-cronjob.yaml | 4 +-
.../dag-processor/dag-processor-deployment.yaml | 8 +-
.../database-cleanup/database-cleanup-cronjob.yaml | 4 +-
chart/templates/flower/flower-deployment.yaml | 4 +-
chart/templates/jobs/create-user-job.yaml | 4 +-
chart/templates/jobs/migrate-database-job.yaml | 4 +-
.../templates/pgbouncer/pgbouncer-deployment.yaml | 4 +-
.../templates/scheduler/scheduler-deployment.yaml | 8 +-
.../templates/triggerer/triggerer-deployment.yaml | 8 +-
chart/templates/workers/worker-deployment.yaml | 12 +-
.../tests/helm_tests/airflow_aux/test_configmap.py | 21 +-
chart/values.schema.json | 10 +-
chart/values.yaml | 6 +-
.../03a_contributors_quick_start_beginners.rst | 30 +-
dev/README_RELEASE_HELM_CHART.md | 63 +-
dev/README_RELEASE_PROVIDERS.md | 38 +-
dev/breeze/doc/images/output_build-docs.svg | 122 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
...tput_release-management_add-back-references.svg | 56 +-
...tput_release-management_add-back-references.txt | 2 +-
...management_generate-issue-content-providers.svg | 37 +-
...management_generate-issue-content-providers.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 4 +-
...ease-management_generate-providers-metadata.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 8 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 8 +-
...e-management_prepare-provider-documentation.txt | 2 +-
.../output_release-management_publish-docs.svg | 82 +-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 64 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 16 +-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 16 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 86 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
.../src/airflow_breeze/commands/common_options.py | 9 +
.../airflow_breeze/commands/developer_commands.py | 260 +-
.../commands/developer_commands_config.py | 7 +-
.../commands/release_management_commands.py | 101 +-
.../commands/release_management_commands_config.py | 1 +
dev/breeze/src/airflow_breeze/global_constants.py | 3 +
.../src/airflow_breeze/params/shell_params.py | 3 +
.../src/airflow_breeze/utils/publish_docs_to_s3.py | 9 +-
.../src/airflow_breeze/utils/selective_checks.py | 25 +-
.../tests/test_release_management_commands.py | 47 +
dev/breeze/tests/test_selective_checks.py | 66 +-
devel-common/pyproject.toml | 1 -
devel-common/src/tests_common/pytest_plugin.py | 25 +
.../src/tests_common/test_utils/aiohttp.py | 90 +
devel-common/src/tests_common/test_utils/db.py | 11 +
docs/spelling_wordlist.txt | 6 +
generated/provider_dependencies.json | 2035 ++++++++++
generated/provider_dependencies.json.sha256sum | 1 +
java-sdk/README.md | 92 +
java-sdk/build.gradle.kts | 6 +-
java-sdk/gradle.properties | 2 +
java-sdk/sdk/build.gradle.kts | 110 +-
providers/amazon/docs/operators/bedrock.rst | 52 +
providers/amazon/docs/operators/dms.rst | 17 +
.../docs/operators/sagemakerunifiedstudio.rst | 17 +-
.../airflow/providers/amazon/aws/hooks/bedrock.py | 40 +
.../src/airflow/providers/amazon/aws/hooks/dms.py | 68 +
.../aws/hooks/sagemaker_unified_studio_notebook.py | 166 +-
.../providers/amazon/aws/operators/bedrock.py | 247 ++
.../airflow/providers/amazon/aws/operators/dms.py | 169 +-
.../operators/sagemaker_unified_studio_notebook.py | 1 +
.../sensors/sagemaker_unified_studio_notebook.py | 1 +
.../providers/amazon/aws/triggers/bedrock.py | 53 +-
.../airflow/providers/amazon/aws/triggers/dms.py | 48 +
...nctions.json => bedrock-agentcore-control.json} | 28 +-
.../airflow/providers/amazon/aws/waiters/dms.json | 79 +
.../system/amazon/aws/example_bedrock_agentcore.py | 111 +
.../amazon/tests/system/amazon/aws/example_dms.py | 20 +
.../tests/unit/amazon/aws/hooks/test_bedrock.py | 4 +
.../amazon/tests/unit/amazon/aws/hooks/test_dms.py | 55 +
.../test_sagemaker_unified_studio_notebook.py | 351 +-
.../unit/amazon/aws/operators/test_bedrock.py | 249 +-
.../tests/unit/amazon/aws/operators/test_dms.py | 278 ++
.../test_sagemaker_unified_studio_notebook.py | 1 +
.../test_sagemaker_unified_studio_notebook.py | 1 +
.../tests/unit/amazon/aws/triggers/test_bedrock.py | 47 +-
.../tests/unit/amazon/aws/triggers/test_dms.py | 43 +
.../aws/waiters/test_bedrock_agentcore_control.py | 74 +
.../tests/unit/amazon/aws/waiters/test_dms.py | 40 +
providers/apache/livy/README.rst | 2 +-
providers/apache/livy/docs/index.rst | 2 +-
providers/apache/livy/pyproject.toml | 2 +-
providers/apache/spark/docs/operators.rst | 95 +
providers/apache/spark/provider.yaml | 10 +
.../providers/apache/spark/get_provider_info.py | 5 +
.../providers/apache/spark/hooks/spark_submit.py | 491 ++-
.../apache/spark/operators/spark_submit.py | 47 +-
.../unit/apache/spark/hooks/test_spark_submit.py | 718 +++-
.../apache/spark/operators/test_spark_submit.py | 55 +-
.../tests/unit/atlassian/jira/hooks/test_jira.py | 23 +-
.../clickhousedb}/.gitignore | 0
LICENSE => providers/clickhousedb/LICENSE | 0
NOTICE => providers/clickhousedb/NOTICE | 0
.../{common/messaging => clickhousedb}/README.rst | 41 +-
.../{ibm/mq => clickhousedb}/docs/changelog.rst | 13 +-
.../{apprise => clickhousedb}/docs/commits.rst | 6 +-
providers/{celery => clickhousedb}/docs/conf.py | 2 +-
.../clickhousedb/docs/connections/clickhouse.rst | 129 +
providers/{sqlite => clickhousedb}/docs/index.rst | 35 +-
.../docs/installing-providers-from-sources.rst | 0
.../docs/integration-logos/ClickHouse.png | Bin 0 -> 6557 bytes
.../clickhousedb/docs/operators/clickhouse.rst | 77 +
.../docs/operators}/index.rst | 4 +-
.../{airbyte => clickhousedb}/docs/security.rst | 0
providers/clickhousedb/provider.yaml | 131 +
providers/{sqlite => clickhousedb}/pyproject.toml | 17 +-
.../clickhousedb/src/airflow}/__init__.py | 0
.../src/airflow/providers}/__init__.py | 0
.../airflow/providers/clickhousedb}/__init__.py | 4 +-
.../clickhousedb/example_dags}/__init__.py | 0
.../example_dags/example_clickhouse.py | 75 +
.../providers/clickhousedb/get_provider_info.py | 94 +
.../providers/clickhousedb/hooks}/__init__.py | 0
.../providers/clickhousedb/hooks/clickhouse.py | 372 ++
.../{airbyte => clickhousedb}/tests/conftest.py | 0
.../clickhousedb/tests/system}/__init__.py | 0
.../tests/system/clickhouse}/__init__.py | 0
.../tests/system/clickhouse/example_clickhouse.py | 97 +
.../clickhousedb/tests/unit}/__init__.py | 0
.../tests/unit/clickhousedb}/__init__.py | 0
.../tests/unit/clickhousedb/hooks}/__init__.py | 0
.../unit/clickhousedb/hooks/test_clickhouse.py | 1346 +++++++
providers/cncf/kubernetes/README.rst | 4 +-
providers/cncf/kubernetes/docs/index.rst | 4 +-
providers/cncf/kubernetes/pyproject.toml | 8 +-
providers/databricks/README.rst | 2 +-
providers/databricks/docs/index.rst | 2 +-
providers/databricks/pyproject.toml | 4 +-
providers/dbt/cloud/README.rst | 2 +-
providers/dbt/cloud/docs/index.rst | 2 +-
providers/dbt/cloud/pyproject.toml | 2 +-
.../unit/discord/hooks/test_discord_webhook.py | 21 +-
providers/edge3/README.rst | 2 +-
providers/edge3/docs/index.rst | 2 +-
providers/edge3/pyproject.toml | 2 +-
.../src/airflow/providers/edge3/cli/worker.py | 1 -
.../edge3/worker_api/v2-edge-generated.yaml | 35 +
.../edge3/tests/unit/edge3/cli/test_api_client.py | 127 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 3 +
.../fab/auth_manager/security_manager/override.py | 10 +-
.../auth_manager/security_manager/test_override.py | 64 +
.../unit/fab/auth_manager/test_fab_auth_manager.py | 11 +
providers/google/README.rst | 2 +-
providers/google/docs/index.rst | 2 +-
providers/google/pyproject.toml | 2 +-
.../unit/google/cloud/hooks/test_cloud_sql.py | 46 +-
.../unit/google/cloud/hooks/test_datafusion.py | 46 +-
providers/http/README.rst | 2 +-
providers/http/docs/connections/http.rst | 2 +-
providers/http/docs/index.rst | 2 +-
providers/http/pyproject.toml | 2 +-
providers/http/tests/unit/http/hooks/test_http.py | 190 +-
.../providers/microsoft/azure/operators/powerbi.py | 63 +-
.../unit/microsoft/azure/operators/test_powerbi.py | 177 +-
.../providers/microsoft/mssql/assets/mssql.py | 14 +-
.../unit/microsoft/mssql/assets/test_mssql.py | 58 +-
.../unit/pagerduty/hooks/test_pagerduty_events.py | 30 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 37 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 23 +
providers/slack/README.rst | 1 +
providers/slack/docs/index.rst | 1 +
providers/slack/pyproject.toml | 1 +
.../airflow/providers/weaviate/hooks/weaviate.py | 43 +-
.../providers/weaviate/operators/weaviate.py | 8 +-
.../tests/unit/weaviate/hooks/test_weaviate.py | 128 +
.../tests/unit/weaviate/operators/test_weaviate.py | 46 +
pyproject.toml | 24 +
scripts/ci/docker-compose/remove-sources.yml | 1 +
scripts/ci/docker-compose/tests-sources.yml | 1 +
scripts/ci/prek/breeze_cmd_line.py | 84 +-
scripts/ci/prek/known_airflow_exceptions.txt | 2 +-
scripts/docker/entrypoint_ci.sh | 4 +
scripts/docker/install_jdk.sh | 70 +
scripts/in_container/run_migration_round_trip.py | 1 +
scripts/tests/ci/prek/test_breeze_cmd_line.py | 55 +
shared/dagnode/tests/dagnode/test_node.py | 6 +-
.../logging/src/airflow_shared/logging/factory.py | 182 +
shared/logging/tests/logging/test_factory.py | 289 ++
.../observability/metrics/metrics_template.yaml | 47 +
.../src/airflow_shared/serialization/__init__.py | 1 +
shared/state/src/airflow_shared/state/__init__.py | 39 +
task-sdk/.pre-commit-config.yaml | 1 +
task-sdk/docs/api.rst | 19 +
task-sdk/src/airflow/sdk/__init__.py | 29 +-
task-sdk/src/airflow/sdk/__init__.pyi | 19 +-
task-sdk/src/airflow/sdk/api/client.py | 34 +
.../src/airflow/sdk/api/datamodels/_generated.py | 43 +
task-sdk/src/airflow/sdk/bases/resumablemixin.py | 15 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 30 +
.../sdk/definitions/partition_mappers/base.py | 46 +-
.../sdk/definitions/partition_mappers/temporal.py | 40 +-
.../sdk/definitions/partition_mappers/window.py | 87 +
.../execution_time/connection_test_supervisor.py | 130 +
task-sdk/src/airflow/sdk/execution_time/context.py | 18 +
task-sdk/src/airflow/sdk/execution_time/timeout.py | 15 +-
task-sdk/src/airflow/sdk/log.py | 13 +-
.../src/airflow/sdk/providers_manager_runtime.py | 56 +-
.../src/airflow/sdk/serde/serializers/datetime.py | 6 +
.../tests/task_sdk/bases/test_resumablemixin.py | 2 +-
.../task_sdk/definitions/test_partition_mappers.py | 75 +
.../test_connection_test_supervisor.py | 264 ++
.../tests/task_sdk/execution_time/test_timeout.py | 77 +
task-sdk/tests/task_sdk/serde/test_serializers.py | 18 +
.../task_sdk/test_providers_manager_runtime.py | 70 +-
uv.lock | 3879 +++++++++-----------
409 files changed, 27872 insertions(+), 4660 deletions(-)
rename {.apache-steward-overrides => .apache-magpie-overrides}/README.md (100%)
rename {.apache-steward-overrides =>
.apache-magpie-overrides}/pr-management-config.md (100%)
rename {.apache-steward-overrides =>
.apache-magpie-overrides}/pr-management-triage-ci-check-map.md (100%)
rename {.apache-steward-overrides =>
.apache-magpie-overrides}/pr-management-triage-comment-templates.md (100%)
create mode 100644 .apache-magpie.lock
delete mode 100644 .apache-steward.lock
create mode 120000 .claude/skills/magpie-setup
delete mode 120000 .claude/skills/setup-steward
rename .github/skills/{setup-steward => magpie-setup}/SKILL.md (64%)
rename .github/skills/{setup-steward => magpie-setup}/adopt.md (68%)
rename .github/skills/{setup-steward => magpie-setup}/conventions.md (90%)
rename .github/skills/{setup-steward => magpie-setup}/overrides.md (88%)
rename .github/skills/{setup-steward => magpie-setup}/unadopt.md (81%)
rename .github/skills/{setup-steward => magpie-setup}/upgrade.md (81%)
create mode 100644 .github/skills/magpie-setup/verify.md
rename .github/skills/{setup-steward => magpie-setup}/worktree-init.md (79%)
delete mode 100644 .github/skills/setup-steward/verify.md
create mode 100644 airflow-core/newsfragments/62343.feature.rst
rename airflow-core/newsfragments/{aip-76.significant.rst =>
64571.significant.rst} (55%)
create mode 100644 airflow-core/newsfragments/67056.significant.rst
create mode 100644 airflow-core/newsfragments/67586.significant.rst
create mode 100644
airflow-core/src/airflow/api_fastapi/common/partition_helpers.py
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/datamodels/ui/assets.py
create mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/connection_test.py
create mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/routes/connection_tests.py
create mode 100644
airflow-core/src/airflow/executors/workloads/connection_test.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0118_3_3_0_add_connection_test_table.py
copy
airflow-core/src/airflow/migrations/versions/{0114_3_3_0_add_access_control_columns_to_dag_schedule_asset_reference.py
=> 0119_3_3_0_add_allow_consumer_teams_to_task_outlet_asset_reference.py} (59%)
create mode 100644
airflow-core/src/airflow/migrations/versions/0120_3_3_0_add_partition_mapper_info_to_dag.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0121_3_3_0_add_rollup_fingerprint_to_apdr.py
create mode 100644 airflow-core/src/airflow/models/connection_test.py
create mode 100644 airflow-core/src/airflow/partition_mappers/window.py
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/pythonFStrings.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/pythonFStrings.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/RollupKeyChecklist.tsx
create mode 100644 airflow-core/src/airflow/ui/src/pages/Deadlines/index.tsx
create mode 100644
airflow-core/tests/unit/api_fastapi/common/test_partition_helpers.py
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/test_connection_tests.py
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2026_06_30/test_connection_tests.py
create mode 100644 airflow-core/tests/unit/logging/test_logging_config.py
create mode 100644 airflow-core/tests/unit/models/test_connection_test.py
create mode 100644 airflow-core/tests/unit/models/test_dagbundle.py
create mode 100644 airflow-core/tests/unit/partition_mappers/test_base.py
create mode 100644 airflow-core/tests/unit/partition_mappers/test_window.py
create mode 100644 chart/newsfragments/67958.feature.rst
create mode 100644 devel-common/src/tests_common/test_utils/aiohttp.py
create mode 100644 generated/provider_dependencies.json
create mode 100644 generated/provider_dependencies.json.sha256sum
copy
providers/amazon/src/airflow/providers/amazon/aws/waiters/{stepfunctions.json
=> bedrock-agentcore-control.json} (50%)
create mode 100644
providers/amazon/tests/system/amazon/aws/example_bedrock_agentcore.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/waiters/test_bedrock_agentcore_control.py
copy {airflow-core => providers/clickhousedb}/.gitignore (100%)
copy LICENSE => providers/clickhousedb/LICENSE (100%)
copy NOTICE => providers/clickhousedb/NOTICE (100%)
copy providers/{common/messaging => clickhousedb}/README.rst (61%)
copy providers/{ibm/mq => clickhousedb}/docs/changelog.rst (73%)
copy providers/{apprise => clickhousedb}/docs/commits.rst (92%)
copy providers/{celery => clickhousedb}/docs/conf.py (98%)
create mode 100644 providers/clickhousedb/docs/connections/clickhouse.rst
copy providers/{sqlite => clickhousedb}/docs/index.rst (70%)
copy providers/{airbyte =>
clickhousedb}/docs/installing-providers-from-sources.rst (100%)
create mode 100644 providers/clickhousedb/docs/integration-logos/ClickHouse.png
create mode 100644 providers/clickhousedb/docs/operators/clickhouse.rst
copy providers/{opsgenie/docs/notifications =>
clickhousedb/docs/operators}/index.rst (97%)
copy providers/{airbyte => clickhousedb}/docs/security.rst (100%)
create mode 100644 providers/clickhousedb/provider.yaml
copy providers/{sqlite => clickhousedb}/pyproject.toml (90%)
copy {airflow-core/tests/integration =>
providers/clickhousedb/src/airflow}/__init__.py (100%)
copy {airflow-core/tests/integration =>
providers/clickhousedb/src/airflow/providers}/__init__.py (100%)
copy providers/{apache/drill/src/airflow/providers/apache/drill =>
clickhousedb/src/airflow/providers/clickhousedb}/__init__.py (94%)
copy {airflow-core/src/airflow/_shared =>
providers/clickhousedb/src/airflow/providers/clickhousedb/example_dags}/__init__.py
(100%)
create mode 100644
providers/clickhousedb/src/airflow/providers/clickhousedb/example_dags/example_clickhouse.py
create mode 100644
providers/clickhousedb/src/airflow/providers/clickhousedb/get_provider_info.py
copy {airflow-core/src/airflow/api/common =>
providers/clickhousedb/src/airflow/providers/clickhousedb/hooks}/__init__.py
(100%)
create mode 100644
providers/clickhousedb/src/airflow/providers/clickhousedb/hooks/clickhouse.py
copy providers/{airbyte => clickhousedb}/tests/conftest.py (100%)
copy {airflow-core/tests/integration =>
providers/clickhousedb/tests/system}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/clickhousedb/tests/system/clickhouse}/__init__.py (100%)
create mode 100644
providers/clickhousedb/tests/system/clickhouse/example_clickhouse.py
copy {airflow-core/tests/integration =>
providers/clickhousedb/tests/unit}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/clickhousedb/tests/unit/clickhousedb}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/clickhousedb/tests/unit/clickhousedb/hooks}/__init__.py (100%)
create mode 100644
providers/clickhousedb/tests/unit/clickhousedb/hooks/test_clickhouse.py
create mode 100755 scripts/docker/install_jdk.sh
create mode 100644 scripts/tests/ci/prek/test_breeze_cmd_line.py
create mode 100644 shared/logging/src/airflow_shared/logging/factory.py
create mode 100644 shared/logging/tests/logging/test_factory.py
create mode 100644
task-sdk/src/airflow/sdk/definitions/partition_mappers/window.py
create mode 100644
task-sdk/src/airflow/sdk/execution_time/connection_test_supervisor.py
create mode 100644
task-sdk/tests/task_sdk/definitions/test_partition_mappers.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/test_connection_test_supervisor.py
create mode 100644 task-sdk/tests/task_sdk/execution_time/test_timeout.py