Bug #17005

Use the same version of po4a in Tails 4.0, on www.lizard, and on RM's systems

Added by intrigeri 24 days ago. Updated 10 days ago.

Target version:
Start date:
Due date:
% Done:


Feature Branch:
Type of work:
Affected tool:


po4a changed behavior between Stretch and Buster, e.g. wrt. linebreaks at the end of strings, and better extraction of bullet points. This is an improvement.

But this means that when updating with Buster's po4a a PO file that was generated with Stretch's po4a, tons of strings will be marked as fuzzy; and reciprocally. We've been bitten by this a couple times already, e.g. when a technical writer was using a recent version of po4a from Ubuntu, or when another used the one that's currently installed in Tails by our devel branch.

So we need to go through this upgrade in a coordinated way, taking the drawbacks into account.

Before we release 4.0, we need to upgrade to po4a 0.55 all systems that are responsible for generating or updating PO files:

  • Tails itself: some translators and technical writers work in there
  • www.lizard: ikiwiki refreshes PO files
  • translate.lizard: for the staging website
  • every RM's system: we update PO files as part of the release process

Things to take into account:

  • po4a 0.55-1~bpo9+1 is in stretch-backports so we could do this whenever we want before the 4.0 release. The earlier, the better, as sajolida is already using 0.55: better upgrade everybody else (we'll have to eventually) than to ask him to downgrade.
  • It should be safe to assume that it's not worth upgrading po4a in Tails 3.x: all affected folks should be running 4.0~betaN by now.
  • This mass change to our PO files will make lots of translations fuzzy. Unfuzzying the newly fuzzy strings is going to require some work.

Tentative migration plan:

  1. Soft-freeze our website
    1. Ask tech writers to avoid pushing until we're done here.
    2. Disable Weblate's automated push.
  2. On a topic branch forked off master:
    1. Refresh all website PO files with po4a 0.55.
    2. Unfuzzy every translation that just became fuzzy. Quite possibly, crude automation would save lots of time here.
    3. Update our doc to require po4a 0.55 instead of the Stretch version.
    4. Commit and push.
    5. Review.
  3. On a topic branch forked off devel:
    1. Merge the topic branch that was forked off master.
    2. Resolve conflicts.
    3. Refresh all website PO files with po4a 0.55.
    4. Unfuzzy every translation that just became fuzzy.
    5. Commit and push.
    6. Review.
  4. On a topic branch for our Puppet code:
    1. Upgrade po4a to the version from stretch-backports.
    2. Review
  5. Once everything is ready and reviewed:
    1. Merge the Puppet branch, deploy, ensure po4a is upgraded.
    2. Merge the tails.git topic branch into master, push.
    3. Re-enable Weblate automatic push.
    4. Ensure Weblate picks up the updates.
    5. Tell tech writers that they can push stuff again.

Related issues

Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed


#1 Updated by intrigeri 24 days ago

#2 Updated by intrigeri 22 days ago

I wrote "the earlier, the better", but let's not do this before 3.16 and 4.0~beta2 are out: if anything goes wrong, we don't want to disrupt the release process.

#3 Updated by intrigeri 18 days ago

  • Description updated (diff)

#4 Updated by intrigeri 10 days ago

If we don't manage to get this done in time for 4.0, we can downgrade po4a to the Stretch version in 4.0 and postpone.

Also available in: Atom PDF