Skip to content

cmd/go: delete bzr support #78090

Description

@rsc

Proposal Details

I propose that we delete support for GNU Bazaar (bzr) from cmd/go, because Bazaar itself is no longer used, nor developed.

GNU Bazaar last issued a release in 2016. The last commit in its development repo was in 2017. The last issue filed in its issue tracker was in 2023. There is no homebrew package for it.

Canonical's Launchpad.net, the only public Bazaar hosting service, announced plans to remove Bazaar support at the end of 2025. (That said, it does seem to still be running; at least I can 'bzr branch https://launchpad.net/goose'.)

In 2016 we introduced GOVCS and the policy of only fetching public modules from git and hg by default. The proxy still enables all the vcs systems, so people using the proxy (which is also the default) can still fetch bzr-hosted modules.

In 2022 we added information about the VCS repo to the module's .info file, which the proxy then saves. So we know for all modules fetched since late 2022 what version control system they are. Scanning all the .info files for modules in the proxy index (using proxy.golang.org/cached-only, to avoid making the proxy refetch expired non-open-source things), I get these counts:

git    30,726,669
hg          1,123
fossil      1,021
bzr            46
svn             1

(I'm very surprised how little Mercurial usage there is, but both Mercurial and Fossil are actively maintained, which makes them very different from Bazaar. I'm not surprised that Subversion is so low - I expected zero - because Subversion support has always really been meant for private modules inside enterprises. It may still have significant usage in that context. I don't believe Bazaar ever did.)

Here is the full list of the 46 bzr fetches since late 2022: the newest module being fetched is launchpad.net/kjvonly-bql, dated 2023. Excluding that, all the code being fetched is from 2015 or earlier. Note that this excludes fetches of non-redistributable modules (those without open source licenses) that have expired from the proxy's cache.
2026-03-08T13:14:19.993429Z  2014-07-02T05:51:33Z  launchpad.net/goose                      v0.0.0-20140702055133-000000000127
2025-12-23T13:23:52.538467Z  2014-07-30T02:02:17Z  launchpad.net/golxc                      v0.0.0-20140730020217-000000000012
2025-12-23T13:23:51.657409Z  2014-09-15T05:14:21Z  launchpad.net/gomaasapi                  v0.0.0-20140915051421-000000000054
2025-12-23T13:23:50.890722Z  2014-06-24T09:32:41Z  launchpad.net/gwacl                      v0.0.0-20140624093241-000000000236
2025-12-20T01:00:42.221842Z  2014-07-01T14:00:51Z  labix.org/v2/mgo                         v2.0.0-20140701140051-000000000287+incompatible
2025-09-07T18:59:34.657249Z  2016-10-08T00:52:54Z  launchpad.net/ubuntu-sdk-tools           v0.0.0-20161008005254-000000000033
2024-10-27T07:56:39.58051Z   2014-03-24T06:53:52Z  launchpad.net/widelands-metaserver       v0.0.0-20140324065352-000000000047
2024-08-09T16:52:09.778056Z  2014-03-12T05:13:45Z  labix.org/v2/mgo                         v0.0.0-20140312051345-000000000264
2024-08-09T16:51:23.098253Z  2014-01-25T23:50:43Z  labix.org/v2/mgo                         v0.0.0-20140125235043-000000000261
2024-08-09T16:50:30.751403Z  2014-01-25T17:54:08Z  labix.org/v2/mgo                         v0.0.0-20140125175408-000000000259
2024-08-09T16:49:33.135943Z  2014-01-25T17:41:22Z  labix.org/v2/mgo                         v0.0.0-20140125174122-000000000257
2024-08-09T16:48:43.463934Z  2014-01-24T01:06:51Z  labix.org/v2/mgo                         v0.0.0-20140124010651-000000000256
2024-08-09T16:48:06.824359Z  2014-03-12T05:15:20Z  labix.org/v2/mgo                         v0.0.0-20140312051520-000000000265
2024-08-09T16:47:14.668196Z  2013-11-18T22:17:17Z  labix.org/v2/mgo                         v0.0.0-20131118221717-000000000250
2024-08-09T16:46:14.45485Z   2014-06-18T21:51:24Z  labix.org/v2/mgo                         v0.0.0-20140618215124-000000000280
2024-08-09T16:45:28.603809Z  2014-06-30T23:42:58Z  labix.org/v2/mgo                         v0.0.0-20140630234258-000000000285
2024-07-24T16:07:47.247602Z  2014-08-13T15:05:39Z  launchpad.net/~goamz/goamz/trunk         v0.0.0-20140813150539-000000000049
2024-05-22T13:17:48.140405Z  2017-11-02T04:55:27Z  launchpad.net/ciborium                   v0.0.0-20171102045527-000000000174
2024-05-22T08:00:34.426048Z  2013-01-21T23:47:36Z  launchpad.net/~mirtchovski/goamz/ec2@v0.0.0-20130121234736-000000000027
2024-03-26T12:08:20.795158Z  2016-09-28T04:59:22Z  launchpad.net/usensord                   v0.0.0-20160928045922-000000000031
2023-09-08T00:41:34.38007Z   2023-09-08T00:17:51Z  launchpad.net/kjvonly-bql/trunk          v0.0.0-20230908001751-000000000007
2023-09-08T00:35:58.252721Z  2023-09-08T00:17:51Z  launchpad.net/kjvonly-bql                v0.0.0-20230908001751-000000000007
2023-09-08T00:17:13.716212Z  2023-09-07T23:57:20Z  launchpad.net/kjvonly-bql/trunk          v0.0.0-20230907235720-000000000006
2023-09-07T23:52:44.522797Z  2023-09-07T23:51:59Z  launchpad.net/kjvonly-bql/trunk          v0.0.0-20230907235159-000000000005
2023-09-07T23:28:12.993684Z  2023-09-07T23:21:25Z  launchpad.net/kjvonly-bql/trunk          v0.0.0-20230907232125-000000000003
2023-02-27T13:22:14.294246Z  2014-02-12T15:20:42Z  launchpad.net/errgo                      v0.0.0-20140212152042-000000000010
2023-02-27T13:19:10.275909Z  2014-06-10T12:27:28Z  launchpad.net/goose                      v0.0.0-20140610122728-000000000125
2023-02-27T13:16:47.724449Z  2014-03-12T04:10:35Z  launchpad.net/gwacl                      v0.0.0-20140312041035-000000000234
2023-02-27T13:16:45.335261Z  2014-05-13T11:18:13Z  launchpad.net/gomaasapi                  v0.0.0-20140513111813-000000000050
2023-02-27T13:16:42.065745Z  2014-05-16T07:09:29Z  launchpad.net/goose                      v0.0.0-20140516070929-000000000124
2023-02-27T13:16:34.488373Z  2014-06-04T05:56:17Z  launchpad.net/goamz                      v0.0.0-20140604055617-000000000047
2023-02-27T13:16:31.901051Z  2014-05-28T13:24:19Z  launchpad.net/golxc                      v0.0.0-20140528132419-000000000009
2023-02-27T13:06:04.644217Z  2013-12-18T15:52:44Z  launchpad.net/goamz                      v0.0.0-20131218155244-000000000044
2023-02-27T13:05:58.529365Z  2013-10-17T01:14:45Z  launchpad.net/gomaasapi                  v0.0.0-20131017011445-000000000047
2023-02-27T13:05:57.368177Z  2014-02-05T04:54:33Z  launchpad.net/gwacl                      v0.0.0-20140205045433-000000000231
2023-02-27T13:05:57.082892Z  2014-01-16T22:57:18Z  launchpad.net/golxc                      v0.0.0-20140116225718-000000000006
2023-02-27T13:05:52.011269Z  2014-01-24T16:52:35Z  launchpad.net/goose                      v0.0.0-20140124165235-000000000116
2023-02-27T13:03:29.483366Z  2014-03-31T18:50:09Z  labix.org/v2/mgo                         v0.0.0-20140331185009-000000000273
2023-02-27T12:58:18.660133Z  2015-06-02T21:51:05Z  launchpad.net/gomaasapi                  v0.0.0-20150602215105-000000000062
2023-02-27T12:56:55.223497Z  2014-12-03T07:29:23Z  launchpad.net/gwacl                      v0.0.0-20141203072923-000000000242
2023-02-27T12:56:52.074979Z  2015-01-13T03:20:02Z  launchpad.net/gomaasapi                  v0.0.0-20150113032002-000000000061
2023-02-25T19:01:46.739294Z  2015-07-03T10:11:40Z  launchpad.net/gomaasapi                  v0.0.0-20150703101140-000000000063
2022-12-22T05:04:57.404073Z  2013-11-18T21:37:20Z  labix.org/v2/mgo                         v0.0.0-20131118213720-000000000248
2022-12-22T05:04:56.831716Z  2014-02-11T11:10:26Z  launchpad.net/usso                       v0.0.0-20140211111026-000000000033
2022-11-03T22:55:09.423107Z  2013-12-10T23:13:47Z  launchpad.net/phablet-tools/bootimg      v0.0.0-20131210231347-000000000001
2022-11-03T22:54:27.933462Z  2013-12-20T15:24:30Z  launchpad.net/phablet-tools/ubuntu-emulator v0.0.0-20131220152430-000000000020

So in addition to the Bazaar software project being dead, Go usage seems dead.

We added Bazaar to goinstall (the predecessor of 'go get') to support Canonical and launchpad.net. Now that even they have moved on, it seems like Go can too.

There seems to be zero value to providing Bazaar support at this point, and there is non-zero cost. For example I am working on the implementation for #77897 and need to update the Bazaar support. But I went to install it using Homebrew (something I can do for all the other VCSes) and found that I couldn't. Digging into that is how I found out that there hasn't been a release since 2016 and that even launchpad.net has dropped support.

Given that no one has been maintaining Bazaar for a decade, that cmd/go's Bazaar support appears to provide zero value to Go users anymore, and that there is non-zero cost to continuing to maintain it, I propose we delete Bazaar support from cmd/go.

It is worth noting that those launchpad.net modules will stop being fetchable directly when launchpad.net does remove Bazaar support. At that point only the proxy's copies will be accessible. That happens whether we implement this proposal or not.

The earliest this could happen would be Go 1.27 (to be released August 2026).

/cc @niemeyer, who added the Bazaar support long ago.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status
    Done
    Status
    Accepted

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions