Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
807d9b4
Test(UI): Add E2E test for Calendar tab functionality
vighneshtule Jan 12, 2026
4bf45e3
Merge branch 'main' into e2e-test-calendar-tab
vighneshtule Jan 13, 2026
2bebbca
Merge branch 'main' into e2e-test-calendar-tab
vighneshtule Jan 14, 2026
395435e
Fix failing E2E tests for Calendar tab using stable data-testid selec…
vighneshtule Jan 14, 2026
eed7581
Merge branch 'main' into e2e-test-calendar-tab
vighneshtule Jan 15, 2026
1d43e1c
Simplify metric names construction in BaseExecutor emit_metrics (#60357)
gopidesupavan Jan 15, 2026
c008cc7
Add workers.celery.kerberosInitContainer field (#60427)
henry3260 Jan 15, 2026
a31b1ee
Docs: Improve wording in Helm chart introduction (#60595)
dilshadshaik3031 Jan 15, 2026
f55bc32
CI: Upgrade important CI environment (#60613)
bugraoz93 Jan 15, 2026
7972d16
Add jscheffl for K8s provider as codeowner (#60612)
jscheffl Jan 16, 2026
dafb920
feature:Trigger form missing "Select Recent Configurations" from airf…
rich7420 Jan 16, 2026
14f2b43
[DOCS] fix link of colima installation guide (#60625)
wjddn279 Jan 16, 2026
2ecf21b
Increase retry interval and maximum retries for remote logging tests …
jason810496 Jan 16, 2026
f32e53e
Update Dutch translations (2026-01-15) (#60608)
DjVinnii Jan 16, 2026
285e3b9
i18n(zh-TW): add missing translations (#60631)
Pei-Cheng-Yu Jan 16, 2026
c9ebded
Move row count and display toggle into DataTable (#57680)
cmbilly8 Jan 16, 2026
baa28bb
Remove API error from disabling submit (#60473)
bbovenzi Jan 16, 2026
36b6322
Add E2E tests for DAG Calendar tab functionality (#59544)
vighneshtule Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
# DAG Parsing
/airflow-core/src/airflow/dag_processing @jedcunningham @ephraimbuddy

# Kubernetes
/providers/cncf/kubernetes/ @dstandish @jedcunningham

# Helm Chart
/chart/ @jedcunningham @hussein-awala @jscheffl

Expand Down Expand Up @@ -51,7 +48,7 @@ airflow-core/src/airflow/ui/public/i18n/locales/he/ @shahar1 @romsharon98 # +@De
airflow-core/src/airflow/ui/public/i18n/locales/hi/ @vatsrahul1001
airflow-core/src/airflow/ui/public/i18n/locales/hu/ @jscheffl @potiuk # +@majorosdonat
airflow-core/src/airflow/ui/public/i18n/locales/it/ @bbovenzi # + @aoelvp94
airflow-core/src/airflow/ui/public/i18n/locales/ja/ @uranusjr @sekikn # + @rsanda
airflow-core/src/airflow/ui/public/i18n/locales/ja/ @uranusjr @sekikn # + @rsanda
airflow-core/src/airflow/ui/public/i18n/locales/ko/ @choo121600 # + @kgw7401 @onestn @noeunkim
airflow-core/src/airflow/ui/public/i18n/locales/nl/ @BasPH # + @DjVinnii
airflow-core/src/airflow/ui/public/i18n/locales/pl/ @potiuk @mobuchowski # + @kacpermuda
Expand Down Expand Up @@ -89,7 +86,7 @@ airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/ @Lee-W @jason810496 @guan
/providers/amazon/ @o-nikolas
/providers/apache/iceberg/ @Fokko
/providers/celery/ @hussein-awala @dheerajturaga
/providers/cncf/kubernetes @jedcunningham @hussein-awala
/providers/cncf/kubernetes @jedcunningham @hussein-awala @scheffl
/providers/common/messaging/ @vincbeck
/providers/dbt/cloud/ @josh-fell
/providers/edge3/ @jscheffl @dheerajturaga
Expand All @@ -116,10 +113,10 @@ Dockerfile.ci @potiuk @ashb @gopidesupavan @amoghrajesh @jscheffl @bugraoz93 @ka
/airflow-e2e-tests/ @potiuk @ashb @gopidesupavan @amoghrajesh @jscheffl @bugraoz93 @kaxil @jason810496

# Task SDK integration tests
/task-sdk-integration-tests/ @potiuk @ashb @gopidesupavan @amoghrajesh @jscheffl @bugraoz93 @kaxil @jason810496
/task-sdk-integration-tests/ @potiuk @ashb @gopidesupavan @amoghrajesh @bugraoz93 @kaxil @jason810496

# airflowctl integration tests
/airflow-ctl-tests/ @potiuk @ashb @gopidesupavan @amoghrajesh @jscheffl @bugraoz93 @kaxil @jason810496
/airflow-ctl-tests/ @potiuk @ashb @gopidesupavan @amoghrajesh @bugraoz93 @kaxil @jason810496

# Issue triage process
# ISSUE_TRIAGE_PROCESS.rst
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/breeze/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ inputs:
default: "3.10"
uv-version:
description: 'uv version to use'
default: "0.9.25" # Keep this comment to allow automatic replacement of uv version
default: "0.9.26" # Keep this comment to allow automatic replacement of uv version
outputs:
host-python-version:
description: Python version used in host
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-prek/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ inputs:
default: "3.10"
uv-version:
description: 'uv version to use'
default: "0.9.25" # Keep this comment to allow automatic replacement of uv version
default: "0.9.26" # Keep this comment to allow automatic replacement of uv version
prek-version:
description: 'prek version to use'
default: "0.2.28" # Keep this comment to allow automatic replacement of prek version
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/basic-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ on: # yamllint disable-line rule:truthy
type: string
uv-version:
description: 'uv version to use'
default: "0.9.25" # Keep this comment to allow automatic replacement of uv version
default: "0.9.26" # Keep this comment to allow automatic replacement of uv version
type: string
platform:
description: 'Platform for the build - linux/amd64 or linux/arm64'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_dockerhub_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
AIRFLOW_VERSION: ${{ github.event.inputs.airflowVersion }}
AMD_ONLY: ${{ github.event.inputs.amdOnly }}
LIMIT_PYTHON_VERSIONS: ${{ github.event.inputs.limitPythonVersions }}
UV_VERSION: "0.9.25" # Keep this comment to allow automatic replacement of uv version
UV_VERSION: "0.9.26" # Keep this comment to allow automatic replacement of uv version
if: contains(fromJSON('[
"ashb",
"bugraoz93",
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ repos:
types_or: [python, pyi]
args: [--fix]
require_serial: true
additional_dependencies: ['ruff==0.14.12']
additional_dependencies: ['ruff==0.14.13']
exclude: ^airflow-core/tests/unit/dags/test_imports\.py$|^performance/tests/test_.*\.py$
- id: ruff-format
name: Run 'ruff format'
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ ARG PYTHON_LTO="true"
# Also use `force pip` label on your PR to swap all places we use `uv` to `pip`
ARG AIRFLOW_PIP_VERSION=25.3
# ARG AIRFLOW_PIP_VERSION="git+https://github.com/pypa/pip.git@main"
ARG AIRFLOW_UV_VERSION=0.9.25
ARG AIRFLOW_UV_VERSION=0.9.26
ARG AIRFLOW_USE_UV="false"
ARG UV_HTTP_TIMEOUT="300"
ARG AIRFLOW_IMAGE_REPOSITORY="https://github.com/apache/airflow"
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -1568,7 +1568,7 @@ ENV DEV_APT_COMMAND=${DEV_APT_COMMAND} \

ARG AIRFLOW_PYTHON_VERSION="3.12.12"
ENV AIRFLOW_PYTHON_VERSION=${AIRFLOW_PYTHON_VERSION}
ENV GOLANG_MAJOR_MINOR_VERSION="1.25.5"
ENV GOLANG_MAJOR_MINOR_VERSION="1.25.6"

ARG PYTHON_LTO

Expand Down Expand Up @@ -1715,7 +1715,7 @@ COPY --from=scripts common.sh install_packaging_tools.sh install_additional_depe
# Also use `force pip` label on your PR to swap all places we use `uv` to `pip`
ARG AIRFLOW_PIP_VERSION=25.3
# ARG AIRFLOW_PIP_VERSION="git+https://github.com/pypa/pip.git@main"
ARG AIRFLOW_UV_VERSION=0.9.25
ARG AIRFLOW_UV_VERSION=0.9.26
ARG AIRFLOW_PREK_VERSION="0.2.28"

# UV_LINK_MODE=copy is needed since we are using cache mounted from the host
Expand Down
2 changes: 1 addition & 1 deletion airflow-core/docs/best-practices.rst
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ Installing and Using ruff

.. code-block:: bash

pip install "ruff>=0.14.12"
pip install "ruff>=0.14.13"

2. **Running ruff**: Execute ``ruff`` to check your Dags for potential issues:

Expand Down
26 changes: 10 additions & 16 deletions airflow-core/src/airflow/executors/base_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,13 @@ def heartbeat(self) -> None:
self.log.debug("Calling the %s sync method", self.__class__)
self.sync()

def _get_metric_name(self, metric_base_name: str) -> str:
return (
f"{metric_base_name}.{self.__class__.__name__}"
if len(ExecutorLoader.get_executor_names()) > 1
else metric_base_name
)

def _emit_metrics(self, open_slots, num_running_tasks, num_queued_tasks):
"""
Emit metrics relevant to the Executor.
Expand All @@ -285,23 +292,10 @@ def _emit_metrics(self, open_slots, num_running_tasks, num_queued_tasks):
If only one executor is configured, the metric names will not be changed.
"""
name = self.__class__.__name__
multiple_executors_configured = len(ExecutorLoader.get_executor_names()) > 1
if multiple_executors_configured:
metric_suffix = name

open_slots_metric_name = (
f"executor.open_slots.{metric_suffix}" if multiple_executors_configured else "executor.open_slots"
)
queued_tasks_metric_name = (
f"executor.queued_tasks.{metric_suffix}"
if multiple_executors_configured
else "executor.queued_tasks"
)
running_tasks_metric_name = (
f"executor.running_tasks.{metric_suffix}"
if multiple_executors_configured
else "executor.running_tasks"
)
open_slots_metric_name = self._get_metric_name("executor.open_slots")
queued_tasks_metric_name = self._get_metric_name("executor.queued_tasks")
running_tasks_metric_name = self._get_metric_name("executor.running_tasks")

span = Trace.get_current_span()
if span.is_recording():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
"title": "Dag Run Triggered"
}
},
"triggerAgainWithConfig": "Trigger again with this config",
"unpause": "Unpause {{dagDisplayName}} on trigger"
},
"trimText": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@
"searchPlaceholder": "Connecties zoeken",
"test": "Connectie testen",
"testDisabled": "Het testen van connecties is uitgeschakeld. Contacteer een administrator om dit in te schakelen.",
"testError": {
"title": "Connectietest mislukt"
},
"testSuccess": {
"title": "Connectietest geslaagd"
},
"typeMeta": {
"error": "Mislukt om connectie type meta op te halen",
"standardFields": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"asset_one": "Asset",
"asset_other": "Asset",
"consumingDags": "Consumerende Dags",
"consumingTasks": "Consumerende taken",
"createEvent": {
"button": "Event aanmaken",
"manual": {
Expand All @@ -25,6 +26,7 @@
},
"title": "Asset Event voor {{name}} aanmaken"
},
"extra": "Extra",
"group": "Groep",
"lastAssetEvent": "Laatste Asset Event",
"name": "Naam",
Expand Down
26 changes: 25 additions & 1 deletion airflow-core/src/airflow/ui/public/i18n/locales/nl/browse.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,35 @@
"title": "Audit Log"
},
"xcom": {
"add": {
"error": "Mislukt om XCom toe te voegen",
"errorTitle": "Fout",
"success": "XCom succesvol toegevoegd",
"successTitle": "XCom toegevoegd",
"title": "XCom toevoegen"
},
"columns": {
"dag": "Dag",
"key": "Sleutel",
"value": "Waarde"
},
"title": "XCom"
"delete": {
"error": "Mislukt om XCom te verwijderen",
"errorTitle": "Fout",
"success": "XCom succesvol verwijderd",
"successTitle": "XCom verwijderd",
"title": "XCom verwijderen",
"warning": "Weet je zeker dat je deze XCom wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden."
},
"edit": {
"error": "Mislukt om XCom te wijzigen",
"errorTitle": "Fout",
"success": "XCom succesvol gewijzigd",
"successTitle": "XCom gewijzigd",
"title": "XCom bewerken"
},
"key": "Sleutel",
"title": "XCom",
"value": "Waarde"
}
}
27 changes: 16 additions & 11 deletions airflow-core/src/airflow/ui/public/i18n/locales/nl/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@
"dagWarnings": "Dag waarschuwingen/fouten",
"defaultToGraphView": "Standaard grafiekweergave",
"defaultToGridView": "Standaard rasterweergave",
"delete": "Verwijder",
"diff": "Diff",
"diffCompareWith": "Vergelijk met",
"diffExit": "Verlaat diff",
"diffSelectVersionToCompare": "Selecteer versie om te vergelijken",
"direction": "Richting",
"docs": {
"documentation": "Documentatie",
Expand All @@ -86,11 +91,13 @@
"tooltip": "Druk op {{hotkey}} om logs te downloaden"
},
"duration": "Duur",
"edit": "Wijzig",
"endDate": "Einddatum",
"error": {
"back": "Terug",
"defaultMessage": "Een onverwachte fout is opgetreden",
"home": "Home",
"invalidUrl": "Pagina niet gevonden. Controleer de URL en probeer het opnieuw.",
"notFound": "Pagina niet gevonden",
"title": "Fout"
},
Expand All @@ -111,22 +118,27 @@
"filters": {
"durationFrom": "Duur van",
"durationTo": "Duur tot",
"endTime": "Eindtijd",
"logicalDateFrom": "Van logische datum",
"logicalDateTo": "Tot logische datum",
"runAfterFrom": "Van Run na",
"runAfterTo": "Tot Run na"
"runAfterTo": "Tot Run na",
"selectDateRange": "Selecteer datumbereik",
"startTime": "Starttijd"
},
"logicalDate": "Logische datum",
"logout": "Uitloggen",
"logoutConfirmation": "Je staat op het punt om uit te loggen uit de applicatie.",
"mapIndex": "Map Index",
"modal": {
"add": "Toevoegen",
"cancel": "Annuleer",
"confirm": "Bevestig",
"delete": {
"button": "Verwijder",
"confirmation": "Weet je zeker dat je {{resourceName}} wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden."
}
},
"save": "Opslaan"
},
"nav": {
"admin": "Beheer",
Expand All @@ -147,15 +159,6 @@
"placeholder": "Voeg een notitie toe...",
"taskInstance": "Task Instance notitie"
},
"pools": {
"deferred": "Uitgesteld",
"open": "Open",
"pools_one": "pool",
"pools_other": "pools",
"queued": "Wachtend",
"running": "Lopend",
"scheduled": "Gepland"
},
"reset": "Reset",
"runId": "Run ID",
"runTypes": {
Expand All @@ -180,6 +183,7 @@
},
"selectLanguage": "Selecteer taal",
"showDetailsPanel": "Details weergeven",
"signedInAs": "Ingelogd als",
"source": {
"hide": "Verberg bron",
"hotkey": "s",
Expand All @@ -194,6 +198,7 @@
"failed": "Mislukt",
"no_status": "Geen status",
"none": "Geen status",
"open": "Open",
"planned": "Gepland",
"queued": "Wachtend",
"removed": "Verwijderd",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"maxRuns": "Maximaal aantal actieve Runs",
"missingAndErroredRuns": "Missende en mislukte Runs",
"missingRuns": "Missende Runs",
"permissionDenied": "Dry Run mislukt: Gebruiker heeft geen toestemming om backfills te maken.",
"reprocessBehavior": "Reprocess gedrag",
"run": "Run Backfill",
"selectDescription": "Draai deze Dag voor een geselecteerd datumbereik",
Expand Down Expand Up @@ -50,6 +51,13 @@
"warning_one": "1 waarschuwing",
"warning_other": "{{count}} waarschuwingen"
},
"dateRangeFilter": {
"validation": {
"invalidDateFormat": "Ongeldig datumformaat.",
"invalidTimeFormat": "Ongeldig tijdformaat.",
"startBeforeEnd": "Startdatum/-tijd moet voor einddatum/-tijd zijn."
}
},
"durationChart": {
"duration": "Duur (seconds)",
"lastDagRun_one": "Laatste Dag Run",
Expand Down Expand Up @@ -105,20 +113,36 @@
"sortedDescending": "aflopend gesorteerd",
"sortedUnsorted": "ongesorteerd",
"taskTries": "Task pogingen",
"taskTryPlaceholder": "Task poging",
"team": {
"selector": {
"helperText": "Optioneel. Beperk het gebruik tot een specifiek team.",
"label": "Team",
"placeHolder": "Selecteer een team"
}
},
"toggleCardView": "Toon kaartweergave",
"toggleTableView": "Toon tabelweergave",
"triggerDag": {
"button": "Trigger",
"dataInterval": "Gegevensinterval",
"dataIntervalAuto": "Afgeleid van logische datum en tijdschema",
"dataIntervalManual": "Specificeer handmatig",
"intervalEnd": "Einde",
"intervalStart": "Start",
"loading": "Dag informatie aan het laden...",
"loadingFailed": "Mislukt om Dag informatie te laden. Probeer het opnieuw.",
"runIdHelp": "Optioneel - wordt gegenereerd indien niet opgegeven",
"selectDescription": "Trigger een enkele run van deze Dag",
"selectLabel": "Enkele Run",
"title": "Trigger Dag",
"toaster": {
"error": {
"title": "Mislukt om Dag te triggeren"
},
"success": {
"description": "Dag run is succesvol getriggerd.",
"title": "Dag Run triggered"
"title": "Dag Run getriggerd"
}
},
"unpause": "Hervat {{dagDisplayName}} op trigger"
Expand All @@ -136,6 +160,7 @@
"versionId": "Versie ID"
},
"versionSelect": {
"allVersions": "Alle versies",
"dagVersion": "Dag versie",
"versionCode": "v{{versionCode}}"
}
Expand Down
Loading