Bazaar branches for all Ubuntu source packages available

James Westby jw+debian at
Thu Nov 27 09:28:26 GMT 2008


If you go visit

you will find bzr branches available for (almost) all Ubuntu source
packages. These branches are a new service available to all Ubuntu

These Bazaar branches are available for anyone to use in any way
that is useful to them. I can describe some ways in which they
will be useful, but I know many more will be found that I haven't
thought of yet.

From this point forward these branches will only get more useful
as we work to link them up with Debian and upstream branches. While
that work is ongoing we will also be working on tools that allow
you to complete tasks more easily, experiment with changes, and
visualise the differences between the code we distribute in Ubuntu
and the code distributed elsewhere.

These branches will be kept up to date by processes that continuously
monitor uploads to the archives and import new versions of packages.
This means that the branches will be up to date regardless of whether
an uploader uses bzr or not.

Currently there are around 500 packages that failed to import at some
point. This means they will either not appear on that site, or the
branch will be incomplete. I will be trying to reduce that number over
the coming weeks. Anyone that would like to help with this is welcome to
get in touch. You can see the current list of failures at

If there is a package you care about on that list and would like to
see a full import then drop me a note and I can prioritise it.

The current branches are read-only. This means that you can make use of
the data, but you will not be able to preserve any revision history
you create while working on branches by pushing them back. You will
of course be able to push them elsewhere if you wish to collaborate with
someone, but integrating that extra history with the main branch will
not be possible until they are read-write.

These branches are being made available at this location while the
Launchpad developers work on extending launchpad to be able to host
source package branches. Once they have finished we will migrate to
launchpad for hosting, which will bring us several benefits, notably
read-write branches, with the write permissions tied to upload
permissions for the source package.

At this point it is important to stress what these branches are not. 
They are not complete with respect to upstream history, and they do not
even contain revisions corresponding to Debian uploads. This means two
things, firstly that there is no way to e.g. merge from upstream if they
use bzr (or something with a bzr plugin, e.g. svn), or merge from a 
Debian packaging branch. Secondly, we are currently in the "merge"
period of Ubuntu development, and these branches will only help with
part of that. You won't be able to use bzr's excellent merging to
merge from Debian, only use the historical information to help you
understand past changes.

Work during Jaunty will be put in to rectifying this, so that in Jaunty
+1 you will at least be able to merge from Debian directly in bzr, and 
in later cycles integrate properly with VCS packaging in Debian and 
upstreams. Some of this work will involve rewriting revision history,
and so will require fixing up your branches; more details will be 
provided nearer the time.

An extension of this point is that if you already maintain an Ubuntu 
package in a VCS, or you work with Debian or upstream through their
VCS then you may just want to ignore these branches for now. You will
probably already have something that is more useful to you than what
is provided by these branches. I will be in touch later about using
such branches directly so that things work better for you.

These branches are being made available now, despite these shortcomings
so that you can start experimenting with them, and making use of the
historical information that they provide. As we work on the outstanding
issues they will become more and more useful to your work.

Here are some possible next steps if you are still reading:

  1. Find a package you know and grab the branch and have a poke around.
     Make sure that everything looks as you would expect and speak to me
     if it doesn't.

  2. Go to the site and click around on loggerhead and get a feel for 
     some of the information that can be provided by a DVCS branch that
     it is hard to get from source packages. You might like to download
     the branch and use something like bzr-gtk or qbzr to get a richer 
     view as well.

  3. Try a packaging task in bzr. There is some documentation at

     Please help improve it, and let me know if something is not clear.

  4. Help to craft the tools and workflow that will be coming to support
     this by contributing to 

     for example in a Requirements document for your use case, or in
     helping to design the client tools.

For those interested in general in this topic you may like to join to discuss using VCSs for packaging. For those 
interested in the next steps for Ubuntu keep an eye on , and consider attending
if you are at UDS.

Have fun with the branches, and keep me updated on the interesting
things you discover you can do with them.



-------------- 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 : 

More information about the ubuntu-devel-announce mailing list