docs: sketch a Weblate workflow for rapid translation releases from a stable branch #284
+8
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously
The goal
As @legoktm put it:
Status quo
Translation
A Weblate "component" for each GitHub repository tracks its main branch. Translations come back as pull requests into the main branch for review.
securedrop/securedropsecuredropdevelopsecuredrop/securedrop-appsecuredrop-clientmainPackaging
A release branch
release/X.Y.Zis tagged asX.Y.Z, from which thesecuredrop-app-codeandsecuredrop-apppackages are built.Other assumptions
Proposed changes
The big idea
Translation
Introduce a component+branch pair like
stablefrom the latest tagX.Y.Z(changes in bold):securedrop/securedropsecuredropdevelopsecuredrop/securedrop-stablesecuredropstablesecuredrop/securedrop-appsecuredrop-clientmainsecuredrop/securedrop-app-stablesecuredrop-clientstableWeblate supports translating multiple branches from the same repository. This means that:
-stablecomponent will see only source strings currently on itsstablebranch.-stablecomponent will be pushed back to itsstablebranch (via pull request). Both CI and manual review will enforce that only localization paths have changed.-stablecomponent will nonetheless be propagated within Weblate to the main components, so that they can be reused on main branches for future releases. (We'll want to test this behavior on our sandbox Weblate instance to see how it works in practice.)Packaging
securedropsecuredrop-app-codesecuredrop-app-translationssecuredrop-clientsecuredrop-appsecuredrop-app-translations(The naming collision is unfortunate. To discuss.)
As noted above: Enforce in CI that the
stablebranch may diverge from the latest tagX.Y.Zonly at localization paths.A
-translationspackage may be built and released from thestablebranch at any time. It is versioned based on the latest tag, whereTis the translation-specific monotonic release counter forX.Y.Zstarting fromT=0, either:X.Y.Z.T(extend Debianupstream-versionfield) orX.Y.Z-T(overload Debiandebian-revisionfield).