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]

Reply via email to