This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 8fd386d08c9 [main] CI: Upgrade important CI environment
add a8c99107c9f feat(AIP-76): support forward fan-out via forward kwarg on
Window (#67475)
add f690474a26a Add FixedKeyMapper and SegmentWindow for categorical
asset-partition rollup (#67716)
add e8b2098d616 CI: Fix generated/provider_dependencies.json (#68324)
add 764c516b01f Fix DagProcessor crash: add missing name_is_otel_safe()
guard to gauge() and timer() (#68284)
add 5f1c969ccc3 UI: Fix wrong language auto-detected from browser
preferences (#68258)
add 21123cecdad Reuse a session-scoped FastAPI app across api_fastapi
tests (#68261)
add d93a93849db Add missing template_fields to
BedrockCreateEvaluationJobOperator (#68310)
add 6a5cbdbc131 ci: sync AGENTS.md commands from contributing docs via
prek hook (#68204)
add 44f03af0a2f PR template: request before/after screenshots for UI
changes (#68201)
add e6fc8734077 fix(scheduler): populate partition_date for temporal asset
partitions (#68266)
add 8d199cf59d7 feat: close Taiwanese Mandarin Translation Gap (#68335)
add ac82cecf144 Fix 500 error for event logs with NULL dttm (#68338)
add a48c549d031 Speed up Dags list and dashboard queries on large DagRun
tables (#67721)
add 40b6796fac5 Avoid N+1 team-name queries in bulk Dag run authorization
(#68286)
add 31f3ad90157 Fix apache-airflow-mypy release docs to match ASF dist
conventions (#68332)
add eeb0c9d1b5b Fix role bindings for workers.celery.serviceAccount
(#68306)
add cc20a79b3ca Bump stylelint (#68347)
add 85ceb631177 Fill TR Translation Gaps Main (#68182)
add e51289d6892 Add import error to deactivated dag (#65687)
add 71f334aef14 Close Catalan gap on main (#68272)
add 18704832a39 Remove deprecated SecurityContext from chart (#68036)
add e5a89f13ba1 Remove deprecated ingress options from chart (#68043)
add 67e935988ae Modify values in pod launcher role tests (#68357)
add 71827ec13fb Align apache-airflow-mypy RC verification steps with other
release docs (#68350)
add a0f1bb021a9 [main] CI: Upgrade important CI environment
add aed2c0dae9a Fix typing hints from jupyter client upgrade
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 (8fd386d08c9)
\
N -- N -- N refs/heads/ci-upgrade-main (aed2c0dae9a)
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:
.github/PULL_REQUEST_TEMPLATE.md | 3 +
.pre-commit-config.yaml | 29 +-
AGENTS.md | 2 +
.../docs/authoring-and-scheduling/assets.rst | 83 ++++
airflow-core/newsfragments/67475.feature.rst | 1 +
airflow-core/newsfragments/67716.feature.rst | 1 +
airflow-core/newsfragments/68266.bugfix.rst | 1 +
.../src/airflow/api_fastapi/common/parameters.py | 22 +
.../core_api/openapi/v2-rest-api-generated.yaml | 24 +
.../core_api/routes/public/event_logs.py | 22 +-
.../core_api/routes/public/import_error.py | 7 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 68 +--
.../api_fastapi/core_api/routes/ui/dashboard.py | 48 +-
.../src/airflow/api_fastapi/core_api/security.py | 9 +-
.../example_dags/example_asset_partition.py | 40 ++
.../src/airflow/jobs/scheduler_job_runner.py | 79 +++-
.../src/airflow/partition_mappers/__init__.py | 4 +
airflow-core/src/airflow/partition_mappers/base.py | 19 +
.../src/airflow/partition_mappers/chain.py | 9 +-
.../src/airflow/partition_mappers/fixed_key.py | 65 +++
.../src/airflow/partition_mappers/temporal.py | 28 +-
.../src/airflow/partition_mappers/window.py | 136 +++++-
airflow-core/src/airflow/serialization/encoders.py | 14 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 6 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 8 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 8 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 8 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 8 +-
.../ui/openapi-gen/requests/services.gen.ts | 6 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 8 +
.../airflow/ui/public/i18n/locales/ca/assets.json | 14 +
.../airflow/ui/public/i18n/locales/ca/browse.json | 18 +
.../airflow/ui/public/i18n/locales/ca/common.json | 14 +-
.../ui/public/i18n/locales/ca/components.json | 3 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 22 +
.../ui/public/i18n/locales/ca/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/tr/admin.json | 3 +-
.../airflow/ui/public/i18n/locales/tr/assets.json | 1 -
.../airflow/ui/public/i18n/locales/tr/browse.json | 18 +
.../airflow/ui/public/i18n/locales/tr/common.json | 58 +++
.../ui/public/i18n/locales/tr/components.json | 9 +-
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 51 +++
.../airflow/ui/public/i18n/locales/tr/dags.json | 5 +
.../ui/public/i18n/locales/tr/dashboard.json | 2 +
.../ui/public/i18n/locales/zh-TW/assets.json | 14 +
.../ui/public/i18n/locales/zh-TW/common.json | 5 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 22 +
.../ui/src/components/DagDeactivatedBadge.tsx | 26 --
.../src/components/DagDeactivatedBanner.test.tsx | 147 ++++++
.../ui/src/components/DagDeactivatedBanner.tsx | 70 +++
.../src/airflow/ui/src/components/HeaderCard.tsx | 47 +-
.../src/airflow/ui/src/i18n/config.test.ts | 91 ++++
airflow-core/src/airflow/ui/src/i18n/config.ts | 81 +++-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 5 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 4 +-
.../ui/src/pages/Dag/DagImportErrorModal.tsx | 72 +++
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 1 -
.../src/airflow/ui/src/pages/Dag/Header.tsx | 11 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 4 +-
.../{DAGImportErrors.tsx => DagImportErrors.tsx} | 7 +-
...ortErrorsModal.tsx => DagImportErrorsModal.tsx} | 38 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 4 +-
.../tests/unit/api_fastapi/common/test_dagbag.py | 6 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 139 ++++--
.../core_api/routes/public/test_event_logs.py | 35 ++
.../core_api/routes/public/test_import_error.py | 105 +++++
.../core_api/routes/ui/test_dashboard.py | 10 +-
.../unit/api_fastapi/core_api/test_security.py | 41 ++
airflow-core/tests/unit/jobs/test_scheduler_job.py | 237 +++++++++-
.../tests/unit/partition_mappers/test_chain.py | 18 +
.../tests/unit/partition_mappers/test_fan_out.py | 78 ++++
.../tests/unit/partition_mappers/test_fixed_key.py | 120 +++++
.../tests/unit/partition_mappers/test_temporal.py | 95 ++++
.../tests/unit/partition_mappers/test_window.py | 213 ++++++++-
.../unit/serialization/test_serialized_objects.py | 6 +-
chart/newsfragments/68036.significant.rst | 3 +
chart/newsfragments/68043.significant.rst | 12 +
chart/templates/NOTES.txt | 127 +-----
chart/templates/_helpers.yaml | 36 +-
chart/templates/api-server/api-server-ingress.yaml | 11 +-
chart/templates/flower/flower-ingress.yaml | 11 +-
chart/templates/pgbouncer/pgbouncer-ingress.yaml | 2 +-
chart/templates/rbac/job-launcher-rolebinding.yaml | 15 +-
chart/templates/rbac/pod-launcher-rolebinding.yaml | 15 +-
.../security-context-constraint-rolebinding.yaml | 5 +-
chart/templates/statsd/statsd-ingress.yaml | 2 +-
.../airflow_aux/test_basic_helm_chart.py | 2 +-
.../airflow_aux/test_job_launcher_role.py | 100 ++++-
.../airflow_aux/test_pod_launcher_role.py | 86 +++-
.../airflow_aux/test_pod_template_file.py | 16 -
.../helm_tests/airflow_core/test_scheduler.py | 22 -
.../helm_tests/apiserver/test_ingress_apiserver.py | 95 +---
chart/tests/helm_tests/other/test_statsd.py | 22 -
.../helm_tests/security/test_scc_rolebinding.py | 83 +++-
.../helm_tests/security/test_security_context.py | 193 --------
chart/values.schema.json | 495 +++++----------------
chart/values.yaml | 123 -----
contributing-docs/08_static_code_checks.rst | 14 +
contributing-docs/testing/unit_tests.rst | 27 ++
dev/README_RELEASE_MYPY.md | 243 +++++++++-
generated/provider_dependencies.json | 3 +
generated/provider_dependencies.json.sha256sum | 2 +-
.../providers/amazon/aws/operators/bedrock.py | 9 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 106 ++---
.../airflow/providers/papermill/hooks/kernel.py | 6 +-
.../check_partition_mapper_defaults_in_sync.py | 291 ++++++++++--
scripts/ci/prek/check_window_in_sync.py | 216 +++++++++
scripts/ci/prek/generate_agent_skills.py | 110 +++++
...test_check_partition_mapper_defaults_in_sync.py | 388 ++++++++++++++++
.../tests/ci/prek/test_generate_agent_skills.py | 43 +-
.../observability/metrics/otel_logger.py | 25 +-
.../observability/metrics/test_otel_logger.py | 25 ++
task-sdk/docs/api.rst | 4 +
task-sdk/src/airflow/sdk/__init__.py | 6 +
task-sdk/src/airflow/sdk/__init__.pyi | 4 +
.../sdk/definitions/partition_mappers/fixed_key.py | 52 +++
.../sdk/definitions/partition_mappers/temporal.py | 15 +-
.../sdk/definitions/partition_mappers/window.py | 85 +++-
.../task_sdk/definitions/test_partition_mappers.py | 96 ++++
120 files changed, 4532 insertions(+), 1454 deletions(-)
create mode 100644 airflow-core/newsfragments/67475.feature.rst
create mode 100644 airflow-core/newsfragments/67716.feature.rst
create mode 100644 airflow-core/newsfragments/68266.bugfix.rst
create mode 100644 airflow-core/src/airflow/partition_mappers/fixed_key.py
delete mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedBadge.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedBanner.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedBanner.tsx
create mode 100644 airflow-core/src/airflow/ui/src/i18n/config.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/DagImportErrorModal.tsx
rename
airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/{DAGImportErrors.tsx =>
DagImportErrors.tsx} (89%)
rename
airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/{DAGImportErrorsModal.tsx
=> DagImportErrorsModal.tsx} (76%)
create mode 100644 airflow-core/tests/unit/partition_mappers/test_fixed_key.py
create mode 100644 chart/newsfragments/68036.significant.rst
create mode 100644 chart/newsfragments/68043.significant.rst
create mode 100755 scripts/ci/prek/check_window_in_sync.py
create mode 100644 scripts/ci/prek/generate_agent_skills.py
create mode 100644
scripts/tests/ci/prek/test_check_partition_mapper_defaults_in_sync.py
copy airflow-core/src/airflow/example_dags/example_asset_decorator.py =>
scripts/tests/ci/prek/test_generate_agent_skills.py (50%)
create mode 100644
task-sdk/src/airflow/sdk/definitions/partition_mappers/fixed_key.py