Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
b89e40f
fix: api_version on on_kill method
dantonbertuol Feb 14, 2025
301e1d9
Add run after to grid (#46740)
bbovenzi Feb 14, 2025
609b1b2
Add Create Pool button on the pools page (#46736)
shubhamraj-git Feb 14, 2025
54d99ff
Align layout in trigger form with flexible form (#46596)
jscheffl Feb 14, 2025
9c5ffed
Notify user on unhealthy backend container (#46786)
insomnes Feb 15, 2025
7bb20e9
Add trigger as source for asset event. (#46783)
tirkarthi Feb 15, 2025
a72dbc4
Add rendered templates tab. (#46750)
tirkarthi Feb 15, 2025
f12d1d9
always populate mapped tasks (#46778)
sbock-slack Feb 15, 2025
0ff6eca
remove k8S 1.28 support (#46762)
raphaelauv Feb 15, 2025
5e0debb
Removed the unused provider's distribution (#46608)
potiuk Feb 15, 2025
d427c26
add Karen to triage team (#46743)
RNHTTR Feb 15, 2025
cb26e7b
Modified start.rst from pip to uv. #46316 (#46767)
adan-shahid Feb 15, 2025
c94cf26
fix return job_id when async finish before deffed in BigQueryInsertJo…
nakamura1878 Feb 15, 2025
6903c67
Make sure the SSHClient is also closed when using connection in conte…
dabla Feb 15, 2025
bb8a1c6
Remove backcompat re _task_event_logs from scheduler (#46771)
dstandish Feb 15, 2025
384f794
Remove trailing new lines mistakenly added in #46767 (#46796)
ashb Feb 15, 2025
6dbfd68
Remove assert in example DAG (#46794)
jscheffl Feb 15, 2025
5259999
Using quotes for file path in find command (#46795)
amoghrajesh Feb 16, 2025
87e4154
Move provider_tests to unit folder in provider tests (#46800)
potiuk Feb 16, 2025
c5764ba
Avoid imports from "providers" (#46801)
potiuk Feb 16, 2025
fef547d
Adding a task that validates format of dates in YDB example dag (#46807)
amoghrajesh Feb 16, 2025
b149cf2
Add docs for DAGs - ruff >= 0.95 with example (#46806)
aditya0yadav Feb 16, 2025
052b92b
Using env for file path in find command (#46809)
Vincent550102 Feb 16, 2025
15dc0fa
Fix f-string ruff static check (#46813)
insomnes Feb 16, 2025
85a36e0
Add REST API endpoint to materialize asset (#46718)
uranusjr Feb 17, 2025
aaad750
Add pre-commit check for default configuration (#46622)
jason810496 Feb 17, 2025
c88ded3
AIP-72: Simplify the XCOM interface between task sdk and execution AP…
amoghrajesh Feb 17, 2025
2f45d84
Edge worker stop command can wait for processes to terminate (#46816)
Feb 17, 2025
555899d
Fix `TypeError` when deserializing task with `execution_timeout` set …
wjszlachta-man Feb 17, 2025
0fdb1fa
Speedup test collection for `tests/www` (#46812)
insomnes Feb 17, 2025
6b6c48a
Expose the YDB web interface port (#46815)
amoghrajesh Feb 17, 2025
7d6eb7b
refactor: Update DAG response model aligning with logical_date (#46776)
josix Feb 17, 2025
f5f615a
Speed-up check-default-configuration pre-commit (#46821)
potiuk Feb 17, 2025
5ada956
Remove old provider references and replace "new" with just providers …
potiuk Feb 17, 2025
4150f17
Add Plugins list page (#46823)
DjVinnii Feb 17, 2025
98ed36e
fix: disable sorting for providers table columns (#46785)
josix Feb 17, 2025
9bcdb30
Add run after to task instances endpoints (#46741)
bbovenzi Feb 17, 2025
3675c06
Bump dompurify in /providers/fab/src/airflow/providers/fab/www (#46798)
dependabot[bot] Feb 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ github:
- vatsrahul1001
- cmarteepants
- bugraoz93
- briana-okyere
- karenbraganz
- gyli

notifications:
Expand Down
2 changes: 1 addition & 1 deletion .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ labelPRBasedOnFilePath:
- tests/jobs/test_triggerer_job.py
- tests/models/test_trigger.py
- tests/jobs/test_triggerer_job_logging.py
- providers/standard/tests/provider_tests/standard/triggers/**/*
- providers/standard/tests/unit/standard/triggers/**/*

area:Serialization:
- airflow/serialization/**/*
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/integration-system-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,7 @@ jobs:
use-uv: ${{ inputs.use-uv }}
- name: "System Tests"
run: >
./scripts/ci/testing/run_system_tests.sh
tests/system/example_empty.py providers/tests/system/example_empty.py
./scripts/ci/testing/run_system_tests.sh tests/system/example_empty.py
- name: "Post Tests success"
uses: ./.github/actions/post_tests_success
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/special-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ jobs:
runs-on-as-json-default: ${{ inputs.runs-on-as-json-default }}
test-name: "SystemTest"
test-scope: "System"
test-groups: ${{ inputs.test-groups }}
test-groups: "['core']"
backend: "postgres"
python-versions: "['${{ inputs.default-python-version }}']"
backend-versions: "['${{ inputs.default-postgres-version }}']"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-provider-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:
- name: "Prepare provider documentation"
run: >
breeze release-management prepare-provider-documentation --include-not-ready-providers
--non-interactive
--non-interactive --answer yes
if: matrix.package-format == 'wheel'
- name: "Prepare provider packages: ${{ matrix.package-format }}"
run: >
Expand Down
16 changes: 10 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -556,9 +556,6 @@ repos:
language: pygrep
entry: >
(?i)
.*https://github.*[0-9]/providers/.*/tests/system/|
.*https://github.*/main/providers/.*/tests/system/|
.*https://github.*/master/providers/.*/tests/system/|
.*https://github.*/main/providers/.*/src/airflow/providers/.*/example_dags/|
.*https://github.*/master/providers/.*/src/airflow/providers/.*/example_dags/
pass_filenames: true
Expand Down Expand Up @@ -674,7 +671,6 @@ repos:
^scripts/ci/docker-compose/integration-keycloak.yml$|
^scripts/ci/docker-compose/keycloak/keycloak-entrypoint.sh$|
^tests/|
^providers/tests/|
^providers/.*/tests/|
^.pre-commit-config\.yaml$|
^.*CHANGELOG\.(rst|txt)$|
Expand Down Expand Up @@ -920,6 +916,7 @@ repos:
entry: ./scripts/ci/pre_commit/check_providers_subpackages_all_have_init.py
language: python
require_serial: true
additional_dependencies: ['rich>=12.4.4']
- id: check-pre-commit-information-consistent
name: Validate hook IDs & names and sync with docs
entry: ./scripts/ci/pre_commit/check_pre_commit_hooks.py
Expand Down Expand Up @@ -983,7 +980,6 @@ repos:
entry: ./scripts/ci/pre_commit/check_system_tests.py
language: python
files: ^(providers/)?tests/system/.*/example_[^/]*\.py$
exclude: ^providers/google/tests/system/google/cloud/bigquery/example_bigquery_queries\.py$
pass_filenames: true
additional_dependencies: ['rich>=12.4.4']
- id: generate-pypi-readme
Expand Down Expand Up @@ -1386,7 +1382,7 @@ repos:
stages: ['manual']
name: Run mypy for providers (manual)
language: python
entry: ./scripts/ci/pre_commit/mypy_folder.py providers/src/airflow/providers all_new_providers
entry: ./scripts/ci/pre_commit/mypy_folder.py all_providers
pass_filenames: false
files: ^.*\.py$
require_serial: true
Expand Down Expand Up @@ -1460,4 +1456,12 @@ repos:
pass_filenames: false
files: ^airflow/migrations/versions/.*\.py$|^docs/apache-airflow/migrations-ref\.rst$
additional_dependencies: ['rich>=12.4.4']
- id: check-default-configuration
name: Check the default configuration
entry: ./scripts/ci/pre_commit/check_default_configuration.py
language: python
additional_dependencies: ['rich>=12.4.4']
require_serial: true
pass_filenames: false
files: ^airflow/config_templates/config.yml
## ONLY ADD PRE-COMMITS HERE THAT REQUIRE CI IMAGE
2 changes: 1 addition & 1 deletion PROVIDERS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Airflow main branch to being decommissioned and removed from the main branch in

Technical details on how to manage lifecycle of providers are described in the document:

`Managing provider's lifecycle <https://github.com/apache/airflow/blob/main/providers/src/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst>`_
`Managing provider's lifecycle <https://github.com/apache/airflow/blob/main/providers/MANAGING_PROVIDERS_LIFECYCLE.rst>`_


Accepting new community providers
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,14 @@ Airflow is not a streaming solution, but it is often used to process real-time d

Apache Airflow is tested with:

| | Main version (dev) | Stable version (2.10.5) |
|------------|----------------------------|----------------------------|
| Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
| Kubernetes | 1.28, 1.29, 1.30, 1.31 | 1.27, 1.28, 1.29, 1.30 |
| PostgreSQL | 13, 14, 15, 16, 17 | 12, 13, 14, 15, 16 |
| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
| SQLite | 3.15.0+ | 3.15.0+ |
| | Main version (dev) | Stable version (2.10.5) |
|------------|------------------------|----------------------------|
| Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 |
| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
| Kubernetes | 1.29, 1.30, 1.31, 1.32 | 1.27, 1.28, 1.29, 1.30 |
| PostgreSQL | 13, 14, 15, 16, 17 | 12, 13, 14, 15, 16 |
| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
| SQLite | 3.15.0+ | 3.15.0+ |

\* Experimental

Expand Down
19 changes: 17 additions & 2 deletions airflow/api_fastapi/core_api/datamodels/dags.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,24 @@
from airflow.api_fastapi.core_api.datamodels.dag_tags import DagTagResponse
from airflow.configuration import conf

DAG_ALIAS_MAPPING: dict[str, str] = {
# The keys are the names in the response, the values are the original names in the model
# This is used to map the names in the response to the names in the model
# See: https://github.com/apache/airflow/issues/46732
"next_dagrun_logical_date": "next_dagrun",
"next_dagrun_run_after": "next_dagrun_create_after",
}


class DAGResponse(BaseModel):
"""DAG serializer for responses."""

model_config = ConfigDict(
alias_generator=AliasGenerator(
validation_alias=lambda field_name: DAG_ALIAS_MAPPING.get(field_name, field_name),
),
)

dag_id: str
dag_display_name: str
is_paused: bool
Expand All @@ -56,10 +70,10 @@ class DAGResponse(BaseModel):
max_consecutive_failed_dag_runs: int
has_task_concurrency_limits: bool
has_import_errors: bool
next_dagrun: datetime | None
next_dagrun_logical_date: datetime | None
next_dagrun_data_interval_start: datetime | None
next_dagrun_data_interval_end: datetime | None
next_dagrun_create_after: datetime | None
next_dagrun_run_after: datetime | None
owners: list[str]

@field_validator("owners", mode="before")
Expand Down Expand Up @@ -115,6 +129,7 @@ class DAGDetailsResponse(DAGResponse):
"dag_run_timeout": "dagrun_timeout",
"last_parsed": "last_loaded",
"template_search_path": "template_searchpath",
**DAG_ALIAS_MAPPING,
}.get(field_name, field_name),
),
)
Expand Down
3 changes: 3 additions & 0 deletions airflow/api_fastapi/core_api/datamodels/task_instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class TaskInstanceResponse(BaseModel):
run_id: str = Field(alias="dag_run_id")
map_index: int
logical_date: datetime | None
run_after: datetime
start_date: datetime | None
end_date: datetime | None
duration: float | None
Expand Down Expand Up @@ -104,6 +105,8 @@ class TaskInstancesBatchBody(StrictBaseModel):
dag_run_ids: list[str] | None = None
task_ids: list[str] | None = None
state: list[TaskInstanceState | None] | None = None
run_after_gte: AwareDatetime | None = None
run_after_lte: AwareDatetime | None = None
logical_date_gte: AwareDatetime | None = None
logical_date_lte: AwareDatetime | None = None
start_date_gte: AwareDatetime | None = None
Expand Down
2 changes: 2 additions & 0 deletions airflow/api_fastapi/core_api/datamodels/ui/grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ class GridDAGRunwithTIs(BaseModel):
queued_at: datetime | None
start_date: datetime | None
end_date: datetime | None
run_after: datetime
state: DagRunState
run_type: DagRunType
logical_date: datetime | None
data_interval_start: datetime | None
data_interval_end: datetime | None
version_number: int | None
Expand Down
Loading