Twenty-four languages are translated before anybody has read the English once #182
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#182
Loading…
Add table
Add a link
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?
Observation
test_every_european_union_language_stays_completeholds the twenty-four European Unioncatalogues at 100%, in every set, on every commit. It has done its job — 0.2.0 finished those
languages and nothing has quietly dropped one since.
What it also does is make adding one user-facing string cost twenty-four translations,
before the string has been read by anybody, made by the same hand that wrote the English a
minute earlier. That is real work with no reader, and it is paid on a draft: the wording
changes, and the twenty-four change with it, or worse, do not.
The promise is about a published version — what somebody installs should not have a gap
in a language Postulo offers them. It was never a promise about a branch halfway through a
feature.
What changes
releasemarker: a promise that must hold in a published version, not in every commit.addoptsdeselects it, as it already deselectse2e:-m 'not e2e and not release'. CI'suv run pytest --covpicks that up unchanged.test_every_european_union_language_stays_completeis marked with it. Nothing else is,yet.
CONTRIBUTING.mdbecomesuv run pytest -m release,before the changelog is moved or anything is tagged, with what to do when it names a gap.
Ordinary work translates English, French and European Portuguese — enough to see a change
in three languages and catch what only shows up in one, which is how the long German string
that broke a row in #165 was found. The rest are swept up once, deliberately, against strings
that have settled.
What this does not do
by the same assertions, and the check is now first in the release list rather than
implicit in a suite that had already run.
catalogue currency, the "a started catalogue actually translates" gate and the render-in-
every-language walk all still run on every commit, because those catch mistakes rather than
measure completeness.
offered until somebody starts it.
The risk, stated
Somebody can now commit a string that only three languages have. That is the point, and it is
only safe because the release step is a hard gate rather than a note. If releases start going
out with
-m releaseskipped, this was a mistake and should be reverted.