docs: sketch a Weblate workflow for rapid translation releases from a stable branch#284
docs: sketch a Weblate workflow for rapid translation releases from a stable branch#284
Conversation
|
Given that this is not likely to be a frequent occurrence and some level of developer attention would likely be required anyway, we could probably make do with the current hotfix release process and avoid the -stable split. I'm thinking a scenario like:
If we wanted we could still do the package split, but I'd be worried that the testing burden would actually be the same or higher as you'd need to verify that it worked with the current server release. |
|
In proposal review yesterday, we concluded that we're more interested in internationalizing other resources such as our documentation, with freedomofpress/securedrop-info#19 as a test case. But @zenmonkeykstop and I will refine this proposal to see if we can commit to the "new language is a hotfix" approach without making any process or tooling changes (aka "diffoscope and ship"). |
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).