[Kde-scm-interest] A concept for "moving to Git" and translations

Chusslove Illich caslav.ilic at gmx.net
Tue May 26 12:16:26 CEST 2009


First of all, "moving to Git" is under quotes because it's, in my view, a
misnomer for what should really be done to properly reorganize the things,
such that we do not set ourselves up for a similar trouble in the
foreseeable future, and provide even more flexibility right after its up and
running. What we need is separation, decoupling of translators' and
programmers' facilities, such that one does not influence the other, save
through a well-defined internal bridge which few people can maintain. The
idea is that translators can pick their own VCS (and/or something else), and
likewise maintainers of an app or a complete core module.

While I personally don't like messing with Scripty as it is further and
advised against it, it *can* be made to work as above, i.e. to make things
no worse (or marginally worse) for the few overall i18n maintainers, *and*
introduce *no* changes for translators in general.

It's conceptually simple. Modify Scripty such that a random app, with its
random separate repo and VCS (be it Subversion, Git, etc.) can just put a
few lines in a particular Scripty's register file, which will map it's repo
locations/branches to what Scripty should fetch, extract, and commit to. For
example:

  [amarok]
  section = extragear
  subsection = multimedia
  vcs = git
  repo-base = git://foo.bar.kde/amarok
  ui-stable = src at branch_2_0
  ui-trunk = src at master
  doc-stable = doc at branch_2_0
  doc-trunk = doc at master

All Scripty's VCS ops should be modularized, such that it has (in SVN
terminology) checkout_branch, update_branch, commit_dir, commit_file, etc.
which will do the right thing for a VCS given by vcs key when given value
repo-base, one of ui-stable etc., a file or dir path, and whetever other
argument necessary for the operation. *-stable and *-trunk here are names of
translators' branches, which are merely according to current translators'
convention, but from Scripty's point of view could very well be *-stable and
*-unstable (which I'd prefer, as they do not imply VCS branches, which they
shouldn't).

For example, by the above setup, to create stable POT Scripty should clone
(on first run, later whatever least bandwidth) git://foo.bar.kde/amarok,
switch to its branch_2_0, go into src/ do the extraction (run
messages-extract.sh, etc.) and commit the POTs (there will be at least
desktop_* too, and any number of POs for apps/modules in general) into
svn://svn.kde.org/home/kde/branches/stable/l10n-kde4/templates/messages/extragear-multimeda/
.

Or, for stable doc, it should put copies of docbooks (yes, duplicates) into
svn://svn.kde.org/home/kde/branches/stable/l10n-kde4/documentation/extragear/multimedia/
, and of course POTs into
svn://svn.kde.org/home/kde/branches/stable/l10n-kde4/templates/docmessages/extragear-multimedia/
.

This system implements decoupling from the first paragraph. When a random
app with a random VCS comes along, it just implements Scripty's VCS ops in
that VCS, which would be by that moment well modularized. So maintainers can
play around as they wish (subject only to wider KDE policies, not concerning
translation as such). Translators simply see none of that.

With this the answers to Aarons' four questions become: not important, not
important, all, none. I'm not restating the questions because they are
really not important in this frame. I'd consider it a failure if at any
future moment translators should adapt the workflow not for their internal
reasons, but due to apps' internal business; and likewise in the other
direction, if apps are forced to adapt workflow for translators' internal
organization.

Now, the above is work, and I have no time to actively help. But I do feel
that anything less is just needless strife now and tomorrow, and reduces
flexibility on both sides. Of course, I (and probably Albert, Pino) can
continue answering narrow and precise questions about this and that, as up
till now. It also seems to me, if I've gathered correctly, that Chani with
her current work is going into the above direction, only with less
generality.

The system just as well applies to whatever current apps and modules, until
and if they peel off from central SVN repository. For example, for a current
extragear app the setup would be:

  [kfoobar]
  section = extragear
  subsection = doodles
  vcs = svn
  repo-base = svn://svn.kde.org/home/kde
  ui-stable = branches/extragear/doodles/foobar/2.0/src
  ui-trunk = trunk/extragear/doodles/foobar/src
  doc-stable = branches/extragear/doodles/foobar/2.0/doc
  doc-trunk = trunk/extragear/doodles/foobar/doc

and for a core module:

  [kdegames]
  section = kdegames
  vcs = svn
  repo-base = svn://svn.kde.org/home/kde
  ui-stable = branches/KDE/4.2/kdegames
  ui-trunk = trunk/KDE/kdegames
  doc-stable = branches/KDE/4.2/kdegames/doc
  doc-trunk = trunk/KDE/kdegames/doc

Note 1: Albert has read the above and gave his blessing ("[...] I think this
really makes sense"); I've actually modified the text a bit from what he
read, but nothing substantial.

Note 2: Conceptually, the system as above is already almost up and running
in the neighborhood. Since the beginning of this year, in Gnome they've
introduced a web interface called Vertimus, which checks out Gnome code
(whether controlled by Git or SVN), extracts templates, collects catalogs,
presents them to translators for download, allows upload of translated
catalogs, marking for reviews/acceptance, and whatnot. At this point it only
misses commit capability, but it is planned (until then Gnome translators-
committers have to have those full Git modules around, but they are used to
it anyway). Then they'll have full decoupling such as described above; one
could say Vertimus = Scripty + translators' SVN + higher order terms. Of
course, some Gnome translators are not very happy about having to go through
a web thingy rather than a proper VCS; but these are precisely the internal
matters that should be upon translators to ponder about, and not influence
programmers.

-- 
Chusslove Illich (Часлав Илић)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20090526/ca0a8b9b/attachment.sig 


More information about the Kde-scm-interest mailing list