In bug listings, there's a new sticking plaster icon that shows you which bugs
have a patch attached.

Also, Launchpad will now email you when someone attaches a patch to a bug to
which you're subscribed.

Anonymous web service API access
---------------------------------

Leonard blogs that:

Your launchpadlib scripts can now get read-only access to the Launchpad web
service API without going through any authorization process. Previously,
to authorize your script, you had to open a web page in the end-user's web
browser and get the user to click a button. Now, you only have to go through
that process if you want to access someone's private data or modify the
Launchpad dataset on their behalf.

We're now using a new numbering scheme for Launchpad's releases. We've chosen
something similar to the Ubuntu style, whereby our release numbers start with
the year, followed by the number of releases so far in that year.

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.

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.

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:

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:

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:

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:

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: