Skip to content

Commit 243fe86

Browse files
authored
Move airflow sources to airflow-core package (apache#47798)
This is continuation of the separation of the Airflow codebase into separate distributions. This one splits airflow into two of them: * apache-airflow - becomes an empty, meta no-code distribution that only has dependencies to apache-airflow-core and task-sdk distributions and it has preinstalled provider distributions added in standard "wheel" distribution. All "extras" lead either to "apache-airflow-core" extras or to providers - the dependencies and optional dependencies are calculated differently depending on "editable" or "standard" mode - in editable mode, just provider dependencies are installed for preinstalled providers in standard mode - those preinstalled providers are dependencies. * the apache-airflow-core distribution contains all airflow core sources (previously in apache-airflow) and it has no provider extras. Thanks to that apache-airflow distribution does not have any dynamically calculated dependencies. * the apache-airflow-core distribution hs "hatch_build_airflow_core.py" build hooks that add custom build target and implement custom cleanup in order to implement compiling assets as part of the build. * During the move, the following changes were applied for consistency: * packages when used in context of distribution packages have been renamed to "distributions" - including all documentations and commands in breeze to void confusion with import packages (see https://packaging.python.org/en/latest/discussions/distribution-package-vs-import-package/) * all tests in `airflow-core` follow now the same convention where tests are in `unit`, `system` and `integration` package. no extra package has been as second level, because all the provider tests have "<PROVIDER>" there, so we just have to avoid naming airflow unit."<PROVIDER>" with the same name as provider. * all tooling in CI/DEV have been updated to follow the new structure. We should always build to packages now when we are building them using `breeze`.
1 parent d14f0c2 commit 243fe86

File tree

2,713 files changed

+6438
-5661
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,713 files changed

+6438
-5661
lines changed

.dockerignore

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
**
2828

2929
# Allow only these directories
30-
!airflow
30+
!airflow-core
3131
!common
3232
!dags
3333
!dev
@@ -75,19 +75,24 @@
7575
!pyproject.toml
7676
!manifests
7777
!generated
78+
79+
# Reproducible build configuration
80+
!reproducible_build.yaml
81+
7882
# Now - ignore unnecessary files inside allowed directories
7983
# This goes after the allowed directories
8084

8185
# Git version is dynamically generated
82-
airflow/git_version
86+
airflow-core/src/airflow/git_version
8387

8488
# Exclude node/pmpme caches..
8589
**/.pnpm-store
8690
**/node_modules
8791
# Exclude link to docs
88-
airflow/ui/static/docs
92+
airflow-core/src/airflow/ui/static/docs
8993

9094
# Legacy www exclusions (just to exclude things in case you switch to old branches and generate assets)
95+
# THey should not be in airflow-core as "www" never was there.
9196
airflow/www/static/docs
9297
airflow/www/static/dist
9398
airflow/www/node_modules
@@ -123,7 +128,7 @@ docs/**/_api/**
123128
**/*.egg
124129

125130
# But ensure UI dist files are included
126-
!airflow/ui/dist
131+
!airflow-core/src/airflow/ui/dist
127132
!providers/fab/src/airflow/providers/fab/www/dist
128133

129134
# Exclude temporary vi files

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Dockerfile.ci @potiuk @ashb
8080
/dev/PROVIDER_PACKAGE_DETAILS.md @eladkal
8181
/dev/README.md @kaxil
8282
/dev/README_RELEASE_*.md @kaxil @pierrejeambrun
83-
/dev/README_RELEASE_PROVIDER_PACKAGES.md @eladkal
83+
/dev/README_RELEASE_PROVIDERS.md @eladkal
8484
ISSUE_TRIAGE_PROCESS.rst @eladkal
8585

8686
# AIP-52 - Setup and Teardown

.github/ISSUE_TEMPLATE/airflow_bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
# yamllint disable rule:line-length
99
value: "
10-
<img src='https://raw.githubusercontent.com/apache/airflow/main/docs/apache-airflow/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
10+
<img src='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
1111
Thank you for finding the time to report the problem!
1212
1313
We really appreciate the community's efforts to improve Airflow.

.github/ISSUE_TEMPLATE/airflow_doc_issue_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
# yamllint disable rule:line-length
99
value: "
10-
<img src='https://raw.githubusercontent.com/apache/airflow/main/docs/apache-airflow/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
10+
<img src='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
1111
Thank you for finding the time to report the problem!
1212
1313
We really appreciate the community's efforts to improve Airflow.

.github/ISSUE_TEMPLATE/airflow_helmchart_bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
# yamllint disable rule:line-length
99
value: "
10-
<img src='https://raw.githubusercontent.com/apache/airflow/main/docs/apache-airflow/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='120' height='120'>
10+
<img src='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='120' height='120'>
1111
Thank you for finding the time to report the problem!
1212
1313
We really appreciate the community's efforts to improve Airflow.

.github/ISSUE_TEMPLATE/airflow_providers_bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
# yamllint disable rule:line-length
99
value: "
10-
<img src='https://raw.githubusercontent.com/apache/airflow/main/docs/apache-airflow/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
10+
<img src='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
1111
Thank you for finding the time to report a problem!
1212
1313
We really appreciate the community's efforts to improve Airflow.

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body:
77
attributes:
88
# yamllint disable rule:line-length
99
value: "
10-
<img src='https://raw.githubusercontent.com/apache/airflow/main/docs/apache-airflow/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
10+
<img src='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/logos/airflow_64x64_emoji_transparent.png' align='left' width='80' height='80'>
1111
Thank you for finding the time to propose new feature!
1212
1313
We really appreciate the community efforts to improve Airflow.

.github/SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Team and how members of it are chosen can be found in the
118118

119119
### Does CVE in Airflow Providers impact Airflow core package ?
120120

121-
Airflow core package is released separately from provider packages. While Airflow comes with ``constraints``
121+
Airflow core package is released separately from provider distributions. While Airflow comes with ``constraints``
122122
which describe which version of providers have been tested when the version of Airflow was released, the
123123
users of Airflow are advised to install providers independently of Airflow core when they want to apply
124124
security fixes found and released in providers. Therefore, the issues found and fixed in providers do

.github/actions/breeze/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ runs:
4545
shell: bash
4646
run: breeze ci free-space
4747
env:
48-
AIRFLOW_SOURCES_ROOT: "${{ github.workspace }}"
48+
AIRFLOW_ROOT_PATH: "${{ github.workspace }}"
4949
- name: "Get Python version"
5050
shell: bash
5151
run: >
@@ -56,4 +56,4 @@ runs:
5656
shell: bash
5757
run: breeze setup config --no-cheatsheet --no-asciiart
5858
env:
59-
AIRFLOW_SOURCES_ROOT: "${{ github.workspace }}"
59+
AIRFLOW_ROOT_PATH: "${{ github.workspace }}"

.github/boring-cyborg.yml

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -301,11 +301,11 @@ labelPRBasedOnFilePath:
301301
- providers/zendesk/**
302302

303303
area:API:
304-
- airflow/api/**/*
305-
- airflow/api_fastapi/**/*
304+
- airflow-core/src/airflow/api/**/*
305+
- airflow-core/src/airflow/api_fastapi/**/*
306306
- clients/**/*
307-
- docs/apache-airflow/stable-rest-api-ref.rst
308-
- tests/api_fastapi/**/*
307+
- airflow-core/docs/stable-rest-api-ref.rst
308+
- airflow-core/tests/unit/api_fastapi/**/*
309309

310310
area:dev-tools:
311311
- scripts/**/*
@@ -331,94 +331,93 @@ labelPRBasedOnFilePath:
331331
- docs/helm-chart/**
332332

333333
area:UI:
334-
- docs/apache-airflow/ui.rst
335-
- airflow/ui/**/*
334+
- airflow-core/docs/ui.rst
335+
- airflow-core/src/airflow/ui/**/*
336336

337337
area:CLI:
338-
- airflow/cli/**/*.py
339-
- tests/cli/**/*.py
340-
- docs/apache-airflow/cli-and-env-variables-ref.rst
341-
- docs/apache-airflow/howto/usage-cli.rst
338+
- airflow-core/src/airflow/cli/**/*.py
339+
- airflow-core/tests/unit/cli/**/*.py
340+
- airflow-core/docs/cli-and-env-variables-ref.rst
341+
- airflow-core/docs/howto/usage-cli.rst
342342

343343
area:Lineage:
344-
- airflow/lineage/**/*
345-
- tests/lineage/**/*
346-
- docs/apache-airflow/administration-and-deployment/lineage.rst
344+
- airflow-core/src/airflow/lineage/**/*
345+
- airflow-core/tests/unit/lineage/**/*
346+
- airflow-core/docs/administration-and-deployment/lineage.rst
347347

348348
area:Logging:
349-
- airflow/utils/log/**/*
350-
- docs/apache-airflow/administration-and-deployment/logging-monitoring/logging-*.rst
351-
- tests/utils/log/**/*
349+
- airflow-core/src/airflow/utils/log/**/*
350+
- airflow-core/docs/administration-and-deployment/logging-monitoring/logging-*.rst
351+
- airflow-core/tests/unit/utils/log/**/*
352352
- providers/**/log/*
353353

354354
area:Plugins:
355-
- airflow/cli/commands/local_commands/plugins_command.py
356-
- airflow/plugins_manager.py
357-
- tests/cli/commands/local_commands/test_plugins_command.py
358-
- tests/plugins/**/*
359-
- docs/apache-airflow/administration-and-deployment/plugins.rst
355+
- airflow-core/src/airflow/cli/commands/local_commands/plugins_command.py
356+
- airflow-core/src/airflow/plugins_manager.py
357+
- airflow-core/tests/unit/cli/commands/local_commands/test_plugins_command.py
358+
- airflow-core/tests/unit/plugins/**/*
359+
- airflow-core/docs/administration-and-deployment/plugins.rst
360360

361361
area:Scheduler:
362-
- airflow/jobs/scheduler_job_runner.py
363-
- docs/apache-airflow/administration-and-deployment/scheduler.rst
364-
- tests/jobs/test_scheduler_job.py
362+
- airflow-core/src/airflow/jobs/scheduler_job_runner.py
363+
- airflow-core/docs/administration-and-deployment/scheduler.rst
364+
- airflow-core/tests/unit/jobs/test_scheduler_job.py
365365

366366
area:DAG-processing:
367-
- airflow/dag_processing/**/*
368-
- airflow/jobs/dag_processor_job_runner.py
369-
- docs/apache-airflow/administration-and-deployment/dagfile-processing.rst
370-
- tests/dag_processing/**/*
367+
- airflow-core/src/airflow/dag_processing/**/*
368+
- airflow-core/src/airflow/jobs/dag_processor_job_runner.py
369+
- airflow-core/docs/administration-and-deployment/dagfile-processing.rst
370+
- airflow-core/tests/unit/dag_processing/**/*
371371

372372
area:Executors-core:
373-
- airflow/executors/**/*
374-
- docs/apache-airflow/core-concepts/executor/**/*
375-
- tests/executors/**/*
373+
- airflow-core/src/airflow/executors/**/*
374+
- airflow-core/docs/core-concepts/executor/**/*
375+
- airflow-core/tests/unit/executors/**/*
376376

377377
area:Secrets:
378-
- airflow/secrets/**/*
379-
- tests/secrets/**/*
378+
- airflow-core/src/airflow/secrets/**/*
379+
- airflow-core/tests/unit/secrets/**/*
380380
- providers/**/secrets/*
381-
- docs/apache-airflow/security/secrets/**/*
381+
- airflow-core/docs/security/secrets/**/*
382382

383383
area:Triggerer:
384-
- airflow/cli/commands/local_commands/triggerer_command.py
385-
- airflow/jobs/triggerer_job_runner.py
386-
- airflow/models/trigger.py
384+
- airflow-core/src/airflow/cli/commands/local_commands/triggerer_command.py
385+
- airflow-core/src/airflow/jobs/triggerer_job_runner.py
386+
- airflow-core/src/airflow/models/trigger.py
387387
- providers/standard/src/airflow/providers/standard/triggers/**/*
388-
- tests/cli/commands/local_commands/test_triggerer_command.py
389-
- tests/jobs/test_triggerer_job.py
390-
- tests/models/test_trigger.py
388+
- airflow-core/tests/unit/cli/commands/local_commands/test_triggerer_command.py
389+
- airflow-core/tests/unit/jobs/test_triggerer_job.py
390+
- airflow-core/tests/unit/models/test_trigger.py
391391
- providers/standard/tests/unit/standard/triggers/**/*
392392

393393
area:Serialization:
394-
- airflow/serialization/**/*
395-
- airflow/models/serialized_dag.py
396-
- tests/serialization/**/*
397-
- tests/models/test_serialized_dag.py
398-
- docs/apache-airflow/administration-and-deployment/dag-serialization.rst
394+
- airflow-core/src/airflow/serialization/**/*
395+
- airflow-core/src/airflow/models/serialized_dag.py
396+
- airflow-core/tests/unit/serialization/**/*
397+
- airflow-core/tests/unit/models/test_serialized_dag.py
398+
- airflow-core/docs/administration-and-deployment/dag-serialization.rst
399399

400400
area:core-operators:
401-
- airflow/operators/**/*
402-
- airflow/hooks/**/*
403-
- airflow/sensors/**/*
404-
- tests/hooks/**/*
405-
- tests/sensors/**/*
406-
- docs/apache-airflow/operators-and-hooks-ref.rst
407-
- docs/apache-airflow/howto/operator/*
401+
- airflow-core/src/airflow/hooks/**/*
402+
- airflow-core/src/airflow/sensors/**/*
403+
- airflow-core/tests/unit/hooks/**/*
404+
- airflow-core/tests/unit/sensors/**/*
405+
- airflow-core/docs/operators-and-hooks-ref.rst
406+
- airflow-core/docs/howto/operator/*
408407

409408
area:production-image:
410409
- Dockerfile
411410
- docs/docker-stack/**/*
412411
- docker_tests/**/*
413412

414413
area:system-tests:
415-
- tests/system/**/*
414+
- airflow-core/tests/system/**/*
416415

417416
area:task-sdk:
418417
- task-sdk/**/*
419418

420419
area:db-migrations:
421-
- airflow/migrations/versions/*
420+
- airflow-core/src/airflow/migrations/versions/*
422421

423422
area:providers:
424423
- providers/**/*
@@ -445,7 +444,7 @@ firstPRWelcomeComment: >
445444
446445
- In case of a new feature add useful documentation (in docstrings or in `docs/` directory).
447446
Adding a new operator? Check this short
448-
[guide](https://github.com/apache/airflow/blob/main/docs/apache-airflow/howto/custom-operator.rst)
447+
[guide](https://github.com/apache/airflow/blob/main/airflow-core/docs/howto/custom-operator.rst)
449448
Consider adding an example DAG that shows how users should use it.
450449
451450
- Consider using [Breeze environment](https://github.com/apache/airflow/blob/main/dev/breeze/doc/README.rst)

0 commit comments

Comments
 (0)