What is Bazaar code hosting?

Bazaar is a distributed revision control system, originally developed by Canonical. It provides similar functionality compared to the now dominant Git.

Bazaar code hosting is an offering from Launchpad to both provide a Bazaar backend for hosting code, but also a web frontend for browsing the code. The frontend is provided by the Loggerhead application on Launchpad.

Sunsetting Bazaar

Bazaar passed its peak a decade ago. Breezy is a fork of Bazaar that has kept a form of Bazaar alive, but the last release of Bazaar was in 2016. Since then the impact has declined, and there are modern replacements like Git.

Just keeping Bazaar running requires a non-trivial amount of development, operations time, and infrastructure resources - all of which could be better used elsewhere.

Launchpad will now begin the process of discontinuing support for Bazaar.

Timelines

We are aware that the migration of the repositories and updating workflows will take some time, that is why we planned sunsetting in two phases.

Phase 1

Loggerhead, the web frontend, which is used to browse the code in a web browser, will be shut down imminently. Analyzing access logs showed that there are hardly any more requests from legit users, but almost the entire traffic comes from scrapers and other abusers. Sunsetting Loggerhead will not affect the ability to pull, push and merge changes.

An example view for code view would be…

Phase 2

From September 1st, 2025, we do not intend to have Bazaar, the code hosting backend, any more. Users need to migrate all repositories from Bazaar to Git between now and this deadline.

Migration paths

The following blog post describes all the necessary steps on how to convert a Bazaar repository hosted on Launchpad to Git.

Call for action

Our users are extremely important to us. Ubuntu, for instance, has a long history of Bazaar usage, and we will need to work with the Ubuntu Engineering team to find ways to move forward to remove the reliance on the integration with Bazaar for the development of Ubuntu. If you are also using Bazaar and you have a special use case, or you do not see a clear way forward, please reach out to us to discuss your use case and how we can help you.

You can reach us in #launchpad:ubuntu.com on Matrix, or submit a question or send us an e-mail via feedback@launchpad.net.

6 Likes

Note that “bzr fastexport” is buggy (and actually one of the plugins for Bazaar which lacks test coverage), so I don’t think it’s the best way to do these kinds of migrations. The differences you’re seeing in the blogpost are due to that.

@jelmer What way would you suggest?

Thanks!

The native bzr/git interop is probably better, albeit slower:

charis:/tmp% brz branch https://code.launchpad.net/lazr.config
Branched 27 revisions.
charis:/tmp% git init lazr.config-git
Initialized empty Git repository in /tmp/lazr.config-git/.git/
charis:/tmp% brz push -d lazr.config --lossy lazr.config-git
Pushing from a Bazaar to a Git repository. For better performance, push into a Bazaar repository.
All changes applied successfully.
Pushed up to revision 27.
6 tags updated.
1 Like

@jugmac00 any chance this could be posted on the Launchpad blog as well? I don’t think most people in the remaining Bazaar community read the Ubuntu discourse.

1 Like

What is the plan for all of the bazaar repos? Does it just all get deleted?

Can we work with Archive team or similar to work out a plan to archive all of these bazaar repos, ideally in their native format?

1 Like

@jelmer Just did so - Launchpad Blog - and I also cross-linked it to this post, so people can get into a discussion.

1 Like

Sad. I love the simplicity of bazaar(breezy)/launchpad. I really do not get git. Is git really the only option? All the eggs are now in just one basket?!? Will Launchpad stay? Is converting the bazaar repository to git enough?

I just have a couple of small things to add here.

First, I don’t think it would be right to let this sort of farewell process for Bazaar commence without recognizing Jelmer Vernooij (@jelmer) for having kept the tooling maintained, packaged and adapted to the ecosystem around it. Any time in the last decade that I have ever needed help with Breezy or one of its plugins, or had a question about their operation or design, Jelmer has responded incredibly quickly and with a deeper level of knowledge than was implicitly required—probably the most tangible act of generosity that can be made among strangers in the open source world. When I conjure up a mental list of the software engineers that I hope most to emulate myself, he’s always in the group getting shuffled at the top. Maintainership is a grueling, thankless task, sadly, and perhaps especially so when external influences align to diminish the relevance of a project before you decide to shelve it yourself. Thank you, Jelmer, not just for Breezy and Samba and dulwich, et al., but also the humanity you bring to the process.

I also wanted to make sure that anyone affected by this service closure is aware that migration to Git, either on Launchpad or elsewhere, is not their only recourse. If there’s value to you to continue using Bazaar, GNU Savannah still offers free hosting for Bazaar repositories and I’m not aware of there having been any thoughts of ceasing that in the foreseeable future.

I’ll be looking into other possible solutions in the days to come and will add more in this thread if I find anything of note.

4 Likes

Could someone please be kind enough to link to the documentation describing how to use the Launchpad translation service with a git repository? I could not find it. Currently the sole reason my project is using bzr is Launchpad translations — the primary repository is at GitHub, and when needed I have manually imported code changes into bzr / Launchpad.

1 Like

@damonlynch There is still work necessary from the Launchpad side to make translation to work with git. This will be announced separately.

2 Likes

Is there any plan for what happens to Launchpad features that never made the jump to Git?

In particular, Rosetta’s automatic imports of translation templates from a branch and automatic export of translations to a branch.

1 Like

@Henk No worries, Launchpad will stay. Removing the support for Bazaar will free up resources which we can put into other areas.

As mentioned earlier, there is some work that needs to be done from the Launchpad side.

Is there any chance you could implement brownouts or similar, please, before a full shutdown? I’m concerned that there’s infrastructure that relies on bzr repositories that haven’t been migrated yet. We don’t have a full list, but some key repositories were bzr until very recently.

1 Like

Hey Robie,

In general I am not a big fan of brown outs, as they confuse the hell out of people, as things sometimes work and sometimes not.

The decommissioning of Bazaar might be an exception, though this needs to be carefully planned, and I do not think we can catch all workflows.

I am pretty sure there will be some workflows which use Bazaar which are only used very rarely. This needs a different approach.

On the other hand, IS currently heavily relies on Bazaar, and so we cannot have a brown out without disturbing their day to day work. That said, IS works already on the conversions to git.

Thanks. As a follow up, I tried that and while it works (I ended up with the same git log with the blog method and this one) it doesn’t import the tags from bzr so if you care about preserving those the blog method might be better