Skip to content

Show English for untranslated metadata, and remove deleted docs - #10686

Open
iHiD wants to merge 1 commit into
mainfrom
metadata-fallback
Open

iHiD wants to merge 1 commit into
mainfrom
metadata-fallback

Conversation

@iHiD

@iHiD iHiD commented Sep 29, 2026

Copy link
Copy Markdown
Member

This deals with the 635 "Missing metadata" issues, #10670 among them.

Metadata

HasTranslatedMetadata#translated_metadata returned "" when a name or blurb had no translation, so the page showed a blank. It now falls back to the English.

A miss is only reported when a translation is expected, which matches what exercism/i18n requires. The new translation_expected? is false for:

  • exercises that are wip or deprecated, including problem-specifications exercises
  • anything on an inactive track: its exercises, its concepts, the track itself, and its track docs

A deprecated exercise that does have a translation still uses it.

Of the 635 open issues, 388 are on inactive tracks and 83 are wip exercises. The other 164 are exercises that no longer exist in their repo: JavaScript's legacy-* exercises (all 94 of those rows are deprecated) and two Python exercises (restored as deprecated in exercism/python#4297). The last is one docs page, covered below. So once this deploys, none of the 635 should report again.

Deleted docs

Git::SyncMainDocs only ever created and updated main docs, so a page removed from exercism/docs stayed on the site. building/tooling/analyzers/feedback-guidelines was removed in 2023 and was still there. After syncing a section, the sync now destroys that section's main docs whose UUID is no longer in its config.json. An empty config is treated as a failed read and removes nothing. A destroyed doc is also removed from the OpenSearch index, through the new Document::RemoveFromSearchIndex.

The feedback-guidelines row has already been deleted by hand on production. Its search entry will still be there until the index is next rebuilt.

Tests

  • test/models/concerns/has_translated_metadata_test.rb covers wip, deprecated and inactive-track metadata.
  • translated_metadata_test.rb now expects the English fallback.
  • sync_main_docs_test.rb covers removing a deleted doc, and the empty-config guard.
  • remove_from_search_index_test.rb covers the search removal.

🤖 Generated with Claude Code

Untranslated names and blurbs rendered as an empty string. They now fall
back to the English. A miss is reported only when exercism/i18n expects a
translation, so inactive tracks and wip or deprecated exercises no longer
file an issue for every page view.

Docs sync only ever created and updated main docs, so a page removed from
exercism/docs stayed on the site. After syncing a section, docs no longer
in its config are destroyed, and a destroyed doc is removed from search.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant