[Bug] PR template lists 8 languages instead of 32, and never asks about the trade-off #510
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#510
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem / motivation
Two problems with
.github/PULL_REQUEST_TEMPLATE.md, one factual and onestructural.
1. The translation checklist names 8 languages; there are 32.
Lines 15-16 ask the contributor to confirm that new UI strings are translated in
"every supported language (nl/en/it/de/fr/es/fy/pap)". Counting
AppLocalizations.languageNamesonmaingives 32 entries. A contributor whoticks that box honestly is 24 languages short and has no way to know it. The
checklist is actively misleading rather than merely incomplete.
2. Nothing in the template asks the contributor to weigh the project's
principles.
The gates in
make checkcover what can be mechanised: round-trip fidelity ofthe Markdown, the network guards, licences, coverage, the SBOM, accessibility
labels and contrast, the size and method-length ratchets. What they cannot cover
is the judgement — whether a change quietly makes the user's decks less portable,
introduces a party that has to be trusted, or writes a promise into the UI that
the code does not keep.
That weighing exists as a working agreement for maintainers, but the template is
the only place an outside contributor ever sees. Interoperability and
sovereignty rarely break with a bang; they erode one convenient exception at a
time, and a green
make checkdoes not see it.Proposed solution
truth (
AppLocalizations.languageNames) and tomake add-l10n, so thetemplate cannot go stale again the next time a language is added. A hardcoded
count is what broke here; do not replace it with a fresh hardcoded count.
format, storage, a dependency, outgoing network traffic, or a promise made in
the UI or docs — I described the trade-off in the summary: which principle I
gave precedence, why, and what would change my mind."
people tick without reading, which guards nothing.
Marp / file-format impact
None; this is contributor-facing documentation.
Alternatives considered
A CI check that compares the template's language list against
languageNames— rejected: it fixes the smaller of the two problems and thereis no runner on this Forgejo instance anyway. Pointing at the source of truth
removes the class of error instead.
Note that the second point is deliberately not mechanisable. It is a prompt for
a human judgement, and the value is in the sentence the contributor writes, not
in the tick.