Team,
I think the Babel project has reached a level of 'maturity' and
popularity where we need to investigate a Release strategy. While I'm
not overly concerned with the Babel server code [1], nor the plugin
code, I am concerned about building a weekly language pack that goes
largely untested. Furthermore, we need to have a plan, and formal
releases, to satisfy our duties as Eclipse project citizens.
Please witness this bug, where a single 'bad' translation caused errors
in Eclipse: https://bugs.eclipse.org/250734
Fortunately, a bad translation only affects one language (German, in
the case above) but it is still the equivalent of a major/stop-ship bug
in code.
I envision a consistent, predictable release cycle similar to this:
0. [FUTURE]: We implement a lock-down function on the Babel server,
allowing only language champions to alter translations -- no new
translations. This is similar to a code/API freeze.
1. We build a language pack from 'live'... Call this RC1
2. We build/use a testing framework to ensure the language packs are
*functional*... If any 'bugs' are fixed, we rebuild, and this becomes
RC2
3. We ask language champions (and the community at large) to review the
language packs ... If any bad translations need correcting, they are
fixed.
3.1 If the 'bad' translations are deemed stop-ship, we start over
from step 1, rebuild and call this RC3. We try to avoid this, as this
will introduce new translations from the community until Step 0 is
implemented.
4. If RC2/RC3 passes, we "release" the fragments to our update site.
We then call the release R-something.
5. [FUTURE] We unfreeze the Babel server and allow community
translations until our next lock-down.
If we can repeat this cycle every 3 months or so (2.5 months open
translations, .5 month lockdown & release), this could give our NL
Packs much more stability and quality, while giving our community a
consistent, predictable release cycle.
Thoughts? Comments?
[1] I think the Babel server code is great, but the primary purpose of
our project is not to build a server tool. I'm happy to continue an
informal, releaseless, agile process for improving the code
incrementally.
|