Feature #12342

Feature #10034: Translation web platform

Feature #15079: Integrate the platform with our Git and ikiwiki infrastructure

Feature #15077: Have a staging website to build planned languages, with a resilient build

[translate.vm]Decide if we merge 'weblate git' with 'staging git'

Added by emmapeel almost 3 years ago. Updated 7 months ago.

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


Feature Branch:
Type of work:
Affected tool:


In our famous svg [1], 'weblate git' and 'staging git' have a note about being merged.

I think it will be much better to merge this two repos in one, we can always have the repo reverted to a previous stage if something stops working and we don't need to make staging ikiwiki changed able to get to the weblate git.


Related issues

Blocks Tails - Feature #12340: [translate.vm] give weblate permission to write to /var/lib/weblate/staging Duplicate 03/14/2017


#1 Updated by emmapeel almost 3 years ago

  • Blocks Feature #12340: [translate.vm] give weblate permission to write to /var/lib/weblate/staging added

#2 Updated by intrigeri almost 3 years ago

I think it will be much better to merge this two repos in one, we can always have the repo reverted to a previous stage if something stops working and we don't need to make staging ikiwiki changed able to get to the weblate git.

Disclaimer: here are a quick thoughts from someone who knows quite a bit about Git/ikiwiki, but doesn't understand the proposed design very well (the meaning of the various arrows is not always obvious to me).

I see that the staging ikiwiki is in charge of updating the PO files for all languages (since our production ikiwiki doesn't do that for languages that are not enabled in production yet). So it needs to commit and push to a Git repo (generally, a bare one). If it hasn't a dedicated repo, but instead shares one with weblate, then it means we'll have two different systems pushing to the same repo. IIRC ikiwiki first pulls before it attempts any push, which solves at least part of one direction of the problem. What about the other direction? In other words, does weblate assume it has exclusive write access to the Git repo it pushes to ("weblate git"), or is it able to cope with concurrent access, e.g. by pulling before pushing?

Also, I don't understand this sentence: Weblate needs the POT files so maybe we should merge "staging Git" and "Weblate Git". Does it mean that we're assuming non-bare repositories here, i.e. a Git working copy where POT files would live (but without being tracked by Git)? If we want to share such a working copy between two systems, then what I wrote above is mostly useless (there's no such thing as pushing and pulling in this case, only committing changes). But then the problem becomes: what happens when they both commit at the same time, or one commit while the other one is doing some work, e.g. weblate commits while ikiwiki is running, and what happens when ikiwiki commits files that are being worked on in weblate? I think that ikiwiki assumes exclusive access to its working copy. I wouldn't be surprised if weblate did the same. So I have doubts about how they can cooperate here, if they use a single, shared Git repo.

Once these questions are resolved, then I think that Git merge conflict resolution will be the next big problem to tackle in this area: e.g. ikiwiki can update a string in a PO file, while the (previous version of the) very same string is being translated in weblate.

#3 Updated by sajolida over 2 years ago

I don't want to be the mastermind behind this whole plan anymore.

#4 Updated by u about 2 years ago

  • Assignee changed from sajolida to u
  • Target version set to Tails_3.6
  • Type of work changed from Discuss to Research

I will think about the setup in detail myself.

#5 Updated by u about 2 years ago

  • Parent task changed from #12311 to #15077

#6 Updated by emmapeel almost 2 years ago

After some more tests I think that .pot files are not needed on 'weblate git' so they can be two different repositories/folders, not sure this issue is relevant anymore.

#7 Updated by u almost 2 years ago

  • Status changed from Confirmed to Resolved
  • % Done changed from 0 to 100

We've seen together that .pot files are needed simply if we want to add new languages using the weblate interface. We have a manual procedure which could replace the procedure using the interface. So indeed they are not totally necessary, but it would be cleaner to keep them.

However, I believe that we do need two git repositories after all

- one will contain all the translations, even the unreviewed ones > this is to be able to build the staging ikiwiki.
the second one will contain only the reviewed translations and will push to tails/master.

Thus, I will now close this ticket - and if we decide otherwise because we realize we miss something, I'll reopen it later.

#8 Updated by intrigeri 7 months ago

  • Assignee deleted (u)

Also available in: Atom PDF