diff --git a/.github/skills/airflow-translations/locales/ar.md b/.github/skills/airflow-translations/locales/ar.md new file mode 100644 index 0000000000000..ce006214506cc --- /dev/null +++ b/.github/skills/airflow-translations/locales/ar.md @@ -0,0 +1,9 @@ + + +# Arabic (`ar`) translation guidelines + +No locale-specific guidance has been authored yet for Arabic. Until this file +is filled in, follow the global rules in the parent +[airflow-translations SKILL.md](../SKILL.md). Contributions to this guide are +welcome. diff --git a/.github/skills/airflow-translations/locales/it.md b/.github/skills/airflow-translations/locales/it.md new file mode 100644 index 0000000000000..4fb8a351e6b84 --- /dev/null +++ b/.github/skills/airflow-translations/locales/it.md @@ -0,0 +1,9 @@ + + +# Italian (`it`) translation guidelines + +No locale-specific guidance has been authored yet for Italian. Until this file +is filled in, follow the global rules in the parent +[airflow-translations SKILL.md](../SKILL.md). Contributions to this guide are +welcome. diff --git a/.github/skills/airflow-translations/locales/tr.md b/.github/skills/airflow-translations/locales/tr.md new file mode 100644 index 0000000000000..5a93679c67458 --- /dev/null +++ b/.github/skills/airflow-translations/locales/tr.md @@ -0,0 +1,9 @@ + + +# Turkish (`tr`) translation guidelines + +No locale-specific guidance has been authored yet for Turkish. Until this file +is filled in, follow the global rules in the parent +[airflow-translations SKILL.md](../SKILL.md). Contributions to this guide are +welcome. diff --git a/.github/skills/pr-triage/actions.md b/.github/skills/pr-triage/actions.md index f03ed686a471e..b030365958fdb 100644 --- a/.github/skills/pr-triage/actions.md +++ b/.github/skills/pr-triage/actions.md @@ -112,6 +112,8 @@ recover from. --- + + ## `mark-ready` — add `ready for maintainer review` label **Mandatory pre-mutation check.** Before adding the label, the @@ -160,6 +162,8 @@ error; this is the only action of the skill whose sole purpose --- + + ## `mark-ready-with-ping` — promote a likely-addressed PR + ping reviewers A composite of `mark-ready` plus a `ping` comment. Used when diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 295688d115f4c..6c0a97b801c9a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -400,6 +400,35 @@ repos: files: ^\.github/workflows/.*$|^\.github/actions/.*$ require_serial: true entry: zizmor + - repo: https://github.com/lycheeverse/lychee + rev: e85aaf5524b2f808e63bae55e594c843220f10f2 # frozen: lychee-v0.24.2 + hooks: + # Use the upstream `lychee-docker` variant rather than the script-based + # `lychee` hook because the prebuilt lychee binaries that the script + # downloads are linked against newer glibc than ubuntu-22.04 runners + # ship with (`GLIBC_2.38` / `GLIBC_2.39` not found at runtime). The + # docker variant runs the official `lycheeverse/lychee` image, which + # bundles its own libc and is portable across runners. + - id: lychee-docker + name: Check internal Markdown links with lychee (offline mode) + description: >- + Validate intra-repo links in Markdown files (relative paths, anchors, + and fragments) without making any HTTP requests. Auto-generated client + docs are excluded because they are regenerated from OpenAPI specs. + types: [markdown] + args: + - --offline + - --no-progress + - --root-dir + - . + - --include-fragments + exclude: | + (?x) + ^clients/python/| + ^.*/openapi-gen/| + ^.*/node_modules/| + ^\.build/| + ^generated/ - repo: local # Note that this is the 2nd "local" repo group in the .pre-commit-config.yaml file. This is because # we try to minimize the number of passes that must happen to apply some of the changes diff --git a/airflow-core/src/airflow/_shared/AGENTS.md b/airflow-core/src/airflow/_shared/AGENTS.md index 1947c43f88ffc..3b99217a56609 100644 --- a/airflow-core/src/airflow/_shared/AGENTS.md +++ b/airflow-core/src/airflow/_shared/AGENTS.md @@ -5,7 +5,7 @@ # The `_shared` package — Agent Instructions Each shared library is a symbolic link to the library package sources from the shared library -located in the [shared folder](../../shared). In the shared folder each library is a separate +located in the [shared folder](../../../../shared). In the shared folder each library is a separate distribution that has it's own tests and dependencies. Those dependencies and links to those libraries are maintained by `prek` hook automatically. diff --git a/airflow-core/src/airflow/_shared/README.md b/airflow-core/src/airflow/_shared/README.md index 658af6b5d975a..e00b1dc62340c 100644 --- a/airflow-core/src/airflow/_shared/README.md +++ b/airflow-core/src/airflow/_shared/README.md @@ -32,4 +32,4 @@ library code is stored in "shared" folder) - and at the same time we can have di same shared library in different packages when for example `airflow-core` and `task-sdk` package are installed together in different version. -You can read about it in [the shared README.md](../../shared/README.md) document. +You can read about it in [the shared README.md](../../../../shared/README.md) document. diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md index c72bd3aaafca4..aff91c070d9ef 100644 --- a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md +++ b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md @@ -62,7 +62,7 @@ Adding a new Execution API feature touches multiple packages. All of these must - Dag processor handler: `airflow-core/src/airflow/dag_processing/processor.py` - Triggerer handler: `airflow-core/src/airflow/jobs/triggerer_job_runner.py` - Task SDK generated models: `task-sdk/src/airflow/sdk/api/datamodels/_generated.py` -- Full versioning guide: [`contributing-docs/19_execution_api_versioning.rst`](../../../../contributing-docs/19_execution_api_versioning.rst) +- Full versioning guide: [`contributing-docs/19_execution_api_versioning.rst`](../../../../../contributing-docs/19_execution_api_versioning.rst) ## Token Scope Infrastructure diff --git a/airflow-core/src/airflow/ui/tests/e2e/README.md b/airflow-core/src/airflow/ui/tests/e2e/README.md index 9e6eb1db94fc6..4c62116b1df5a 100644 --- a/airflow-core/src/airflow/ui/tests/e2e/README.md +++ b/airflow-core/src/airflow/ui/tests/e2e/README.md @@ -161,7 +161,7 @@ When submitting a PR that adds new E2E coverage, briefly explain in the PR descr 2. **Create a spec file** in `specs/` - Import page objects and write test steps - - See existing test: [dag-trigger.spec.ts](specs/dag-trigger.spec.ts) + - See existing test: [dag-runs.spec.ts](specs/dag-runs.spec.ts) 3. **Run tests locally** diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md index 02a8715f8dc51..2f4c3020fb2c2 100644 --- a/dev/README_RELEASE_AIRFLOW.md +++ b/dev/README_RELEASE_AIRFLOW.md @@ -202,7 +202,7 @@ EOF When it is time to cut the RC, you should: 1. Generate an additional completeness output: - a. If there are incomplete locales that were also incomplete in the previous major/minor release, please contact the code owner and ask them to act according to the [removing or replacing ownership procedure](../airflow-core/src/airflow/ui/public/i18n/README.md#removing-or-replacing-ownership) in the i18n policy. + a. If there are incomplete locales that were also incomplete in the previous major/minor release, please contact the code owner and ask them to act according to the [Relinquishing translation/code ownership procedure](../airflow-core/src/airflow/ui/public/i18n/README.md#relinquishing-translationcode-ownership) in the i18n policy. b. If there are other incomplete locales, please write it as a reminder for the next major/minor release. 2. Post the final completeness output on the same thread. diff --git a/dev/README_RELEASE_HELM_CHART.md b/dev/README_RELEASE_HELM_CHART.md index 3ac3aea711276..2f733e91a7d7c 100644 --- a/dev/README_RELEASE_HELM_CHART.md +++ b/dev/README_RELEASE_HELM_CHART.md @@ -204,7 +204,7 @@ The minimum version of Kubernetes should be updated according to https://github.com/apache/airflow/blob/main/README.md#requirements in two places: * [../../helm-chart/README.md](../chart/README.md) -* [../docs/helm-chart/index.rst](../docs/helm-chart/index.rst) +* [../chart/docs/index.rst](../chart/docs/index.rst) ## Build RC artifacts diff --git a/dev/breeze/doc/ci/02_images.md b/dev/breeze/doc/ci/02_images.md index f5d85fba8b2aa..7182b205b20c9 100644 --- a/dev/breeze/doc/ci/02_images.md +++ b/dev/breeze/doc/ci/02_images.md @@ -108,7 +108,7 @@ it uses the latest installed version of airflow and providers. However, you can choose different installation methods as described in [Building PROD docker images from released PIP packages](#building-prod-docker-images-from-released-pip-packages). Detailed reference for building production image from different sources can be -found in: [Build Args reference](../../../../docs/docker-stack/build-arg-ref.rst#installing-airflow-using-different-methods) +found in: [Build Args reference](../../../../docker-stack-docs/build-arg-ref.rst#installing-airflow-using-different-methods) You can build the CI image using current sources this command: diff --git a/dev/system_tests/README.md b/dev/system_tests/README.md index 00cd02a7e9875..4dcd3d6af670b 100644 --- a/dev/system_tests/README.md +++ b/dev/system_tests/README.md @@ -25,14 +25,13 @@ Small tool to update status of all AIP-47 issues. Simply: -1) Activate dev environment based on [requirements](../../dev/requirements.txt) +1) Set `GITHUB_TOKEN` to a repo-writeable token. -2) Set GITHUB_TOKEN to repo-writeable token - -3) Run this: +2) Run the script via `uv` (it pulls in the few third-party deps it + needs — `PyGithub`, `rich-click`, `rich`): ```bash -python dev/system_tests/update_issue_status.py +uv run --with PyGithub --with rich-click --with rich python dev/system_tests/update_issue_status.py ```