kutsibalci opened a new pull request, #71179:
URL: https://github.com/apache/airflow/pull/71179
The locale guideline table in
`airflow-core/src/airflow/ui/public/i18n/README.md` links to
`.github/skills/airflow-translations/locales/<locale>.md`. All twenty of those
links return 404 on GitHub.
`.github/skills/airflow-translations` is a symlink to
`../../.agents/skills/airflow-translations`. Git stores it as a symlink blob
rather than a tree, and GitHub does not traverse it when resolving a path, so
anything *through* it is unreachable in the web UI.
This is verifiable against the API on `main`:
```
GET /repos/apache/airflow/contents/.github/skills/airflow-translations
-> type=symlink, target=../../.agents/skills/airflow-translations
GET
/repos/apache/airflow/contents/.github/skills/airflow-translations/locales/ar.md
-> 404 Not Found
GET
/repos/apache/airflow/contents/.agents/skills/airflow-translations/locales/ar.md
-> type=file, size=6597
```
So the fix is to point the table at
`.agents/skills/airflow-translations/locales/`, where the files actually are.
Both the link target and the visible text are updated, so the table keeps
naming the location it sends you to.
The prose above the table ("The PR for a new locale should include: A
locale-specific translation guide file at ...") named the same unreachable
path. Since a new guide cannot be added under a symlink anyway — it has to be
created in `.agents/skills/airflow-translations/locales/` — that line is
updated too. It is one line, in the same file and the same section, describing
the same location.
Note `.agents/skills/airflow-translations/SKILL.md` already carries an
equivalent table and links correctly, as `[locales/ar.md](locales/ar.md)`,
because it sits next to the directory. Only the copy of the table in the i18n
README was affected.
### What was not touched
`README.md` at the repo root links to `.github/skills/magpie-setup/` — that
is a link *to* the symlink rather than through it, and the surrounding text
deliberately describes that path as the committed framework artefact. It
behaves differently and looked like a separate call, so I left it alone.
### Testing
- Every link in the changed file was re-resolved against a clone of `main`;
none now resolves through a symlinked path component, and none is missing.
- `.github` and `.agents` are both seven characters, so the markdown table
alignment is byte-for-byte unchanged.
- File hygiene checked for the `trailing-whitespace`, `end-of-file-fixer`
and `mixed-line-ending` hooks: no trailing whitespace, no CRLF, trailing
newline present. The change is a like-for-like string swap inside existing
links and inline code, so `markdownlint` sees no structural change.
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes (please specify the tool below)
Generated-by: Claude Code following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
I ran the link sweep and drafted this description with the tool, and I
reviewed the result before opening: the symlink behaviour was confirmed against
the GitHub API rather than assumed, the replacement path was confirmed to
serve, and the one related link I chose not to change is called out above.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]