Skip to content

appchangelog-gen.py should emit a localized Android What's New title — a raw literal fails i18n on every release and red-checks all open PRs #878

Description

@pipiche38

The issue makes three points precisely, grounded in what I verified in the repo:

  1. Root cause — appchangelog-gen.py writes the Kotlin title as a raw literal (title = "{title}"), but the i18n gate requires uiString(R.string.l10n_app_changelog_…). Compose has no auto-extraction, so it needs hand-localizing every release. Apple is unaffected (SwiftUI auto-extracts).
  2. Why it keeps hurting everyone — detection already exists (the push: [main] trigger i18n: localize the 9.0.1 What's New title (unblock the coverage gate) #514 added), but it only detects; the fix is still manual, so the raw title lands on main and the whole-tree --ci gate red-checks every open PR on a line none touched. Confirmed with the 9.2.0 evidence + audit output.
  3. The fix — make the generator emit the localized reference itself: key = 6-word slug + sha1(title)[:8] (I verified this scheme reproduces existing keys), auto-add the string to values/ + the four focus locales, keep Apple as a raw baseline-tracked title. Plus an optional release.sh preflight.

It also includes the immediate 9.2.0 unblock one-liner (the exact key + strings.xml change) so ryanbr can clear the current red checks the same way as #514, and flags it as a maintainer/tooling issue with the #514 precedent linked.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions