← Back to team overview

launchpad-dev team mailing list archive

Launchpad 2.2.7: translation sharing, release file automation, etc.

 

The Launchpad team is proud to announce Launchpad 2.2.7!

Launchpd 2.2.7 was rolled out this past week and includes:

 * Sharing translations between different releases
 * Automatic merge of project translations to a Bazaar branch
 * Automatically import release files using product release finder
 * Answer contacts can now assign questions
 * Browse package branches that are being uploaded
 * Source code :-)

Read on for more...

Sharing translations between different releases
-----------------------------------------------

Message sharing between different releases of a product or distribution
in Launchpad means that translations done in one release (e.g., trunk)
would immediately apply to translations in another release (e.g.,
stable).  This should benefit almost all projects that use Launchpad for
translations.

  * Translators don't have to worry about back-porting translation fixes
    to older releases anymore.  They can simply translate the latest
    release; translations will automatically propagate to older
    releases.  Also, this works both ways: if you are translating a
    current stable release, newer development release will get those
    updates too!

  * For project maintainers who host their translations in Launchpad,
    when they upload a template to a new release series and it gets
    imported, it will instantly get all existing translations from
    previous releases shared with the new series.  Translators won't
    have to re-do their work; They won't have to upload correct versions
    of translated PO files, they can just care about POT files instead.

  * For Ubuntu, there's another benefit: opening a new release for
    translations will take minutes instead of days.  Message sharing
    also improves the scalability of the system, and we should soon
    start seeing more performance improvements as the result of
    migrating to this new way of managing translations.

  * If you don't want a particular release to use a shared message, you
    can disable sharing for that message in that release.

See Danilo Šegan's blog post for details:

  http://blog.launchpad.net/translations/sharing-translations

Automatic merge of project translations to a Bazaar branch
----------------------------------------------------------

Launchpad can now commit regular snapshots of your project's
translations to a Bazaar branch of your choice.  No more waiting for the
email with the URL!  The latest snapshot will always be waiting in the
same place for you to download it.  We're doing daily snapshots at
first, though we may change that later depending on usage.

Here's what you do:

You create a branch in Launchpad, of the "Hosted" variety.  That means
that the branch lives on Launchpad itself; it can't be mirrored from
somewhere else.  (You may need to "bzr init" and "bzr push" an empty
directory from your local machine to get the branch properly set up.)

Then go to the Translations tab for your project.  Go to the release
series that you want snapshots of, e.g., trunk.

On the Translations tab for that release series you'll see an option,
"Settings."  There, at the bottom, you'll be able to set a translations
export branch.  Pick any branch that you own; it doesn't have to be
related to the project.

A word of caution: whatever branch you pick here, Launchpad is going to
commit files to it.  It will ruthlessly overwrite any previous versions
of the files.  So you probably don't want to use your development branch
for this, or any other branch that you use for other things.  We
recommend that you create an fresh branch, and don't use it for anything
else but getting translation snapshots of a single release series.

Automatically import release files using product release finder
---------------------------------------------------------------

The product release finder process runs daily to locate new releases and
import them to Launchpad.  It uses each series' release file pattern to
locate files and import them to the appropriate release, and can even
create releases for series.

The project owner and series release manager can set the Release URL
pattern on the series edit page.  The pattern is an "ftp", "http", or
"https" URL with a glob (*) in the part of the file name that varies per
release.  For example:

   http://widgets.dom/downloads/widget-2.*

describes all files that start with "widget-2.".  This might be the
source for two different releases: "widget-2.1.tar.gz" and
"widget-2.2.3.tar.gz".  The pattern will also match multiple files that
belong to a single release, such as "widget-2.1.tar.gz",
"widget-2.1.zip", and "widget-2.1.changelog".

Many projects choose to group files in series in a dedicated directory,
in which case the Release URL pattern would look something like this:

   http://widgets.dom/downloads/2.8/*

You can tell the product release finder to search multiple directories
by using a glob for a directory.  For example, if your project separates
release files into directories by OS, then you can use

   http://widgets.dom/downloads/*/widget-2.*

to scan "downloads/ubuntu/widget-2.*" and "downloads/mac/widget-2.*".

Be careful to include the common part of the series in the URL,
otherwise files from different series will be imported to the wrong
series.  Do not do something like:

   http://widgets.dom/all-releases/*

because any file that looks like it has version information in it will
be imported to one series.

In all cases, the product release finder will extract the version from
the file name, and match it to a milestone name.  It will create the
milestone and release it if necessary.  If a version cannot be
extracted, the file is simply ignored.

The version numbers extracted from file names will be converted to
conform to Launchpad URL name rules.  So if your release files have
underscores or plus signs in their version names, dashes will be
substituted.  Flavour information is also ignored in the file name.  For
example these file names yield these versions:

   emacs-21.10.tar.gz                   ==>  21.10
   vpnc-0.2-rm+zomb-pre1.tar.gz         ==>  0.2-rm-zomb-pre1
   warzone2100-2.0.5_rc1.tar.bz2        ==>  2.0.5-rc1
   furiusisomount-0.8.1.0_de_DE.tar.gz  ==>  0.8.1.0
   glow-0.2.1_i386.deb                  ==>  0.2.1
   Bazaar-1.16.1.win32-py2.5.exe        ==>  1.16.1

See Curtis Hovey's blog post for more information:

  http://blog.launchpad.net/cool-new-stuff/automatically-import-files-to-launchpad-using-product-release-finder

Answer contacts can now assign questions
----------------------------------------

Question listing now includes the assignee column.  Answer contacts can
assign a question to a user via the edit page.  The assigned user will
receive a notification about the assigned question.  An assigned
question will never expire; the assignee is obligated to answer the
question. (Launchpad has supported assigning questions to users for
several years, but the privilege was limited to project owners.  This
meant the feature was rarely used.  Since the feature was also not
visible, answer contacts often requested that we develop the feature.)

Curtis Hovey's blog post has more details, and more background on how
the Launchpad team came to understand the need for this feature:

  http://blog.launchpad.net/general/answer-contacts-can-assign-questions

Browse package branches that are being uploaded
-----------------------------------------------

You can now browse the package branches that are being uploaded.  They
can be seen for the entire distro:

  https://code.launchpad.net/ubuntu

Or for a distroseries:

  https://code.launchpad.net/ubuntu/karmic

And there's a new view for a source package in a distribution that
groups the distroseries branches:

  https://code.launchpad.net/ubuntu/+source/apturl

Source code
-----------

The Launchpad source code, that is.  Launchpad was open-sourced shortly
before the rollout of Launchpad 2.2.7, so this is the first release of
Launchpad to come with full source code.  See this blog post for more:

  http://blog.launchpad.net/general/launchpad-is-now-open-source

Also in release 2.2.7
---------------------

For full details of the bugfixes and blueprints that make up Launchpad
2.2.7, visit its milestone page:

  https://launchpad.net/launchpad-project/+milestone/2.2.7

If you come across a bug, please report it here:

  https://bugs.launchpad.net/launchpad

See you next time
-----------------

Launchpad 3.0 is due on the 21st of September.  See the releases
calendar for more:

  https://dev.launchpad.net/Releases/2009Calendar

In the meantime, stay up to date with Launchpad news and views
through our blog:

  http://blog.launchpad.net

As always, you can join us in channel #launchpad on irc.freenode.net and
on the launchpad-users mailing list:

  https://launchpad.net/~launchpad-users

For development discussion, come to channel #launchpad-dev on
irc.freenode.net or to the launchpad-dev mailing list:

  https://launchpad.net/~launchpad-dev

Best,
-Karl Fogel