<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-text-plain" wrap="true" graphical-quote="true"
      style="font-family: -moz-fixed; font-size: 12px;" lang="x-unicode">
      <pre wrap="">Hi all, I'm the manager of Mozilla's Bugzilla team. We've talked about
this idea before, but I thought I would flesh it out and ask for feedback.

I think we should move the Bugzilla code off of the Bazaar system hosted
by Mozilla and onto git, and maybe even GitHub. There are a few reasons
for this:

* git is pretty much the de facto standard for VCSs these days. This
means many people are familiar with it and like its flexibility (I
certainly do).

* On the other side, Bazaar is almost dead. There are maybe 2-3 commits
to trunk every month.

* GitHub is extremely popular, and for good reason, since it's a very
powerful system. Exposure via GitHub could mean increased contributions
(whether we can keep up with them or not is, of course, another question. <span class="moz-smiley-s1" title=":)"></span>

* Mozilla would very much like to retire Tinderbox, since Bugzilla is
the only system still using it. Moving to GitHub means we could use
travis-ci, which is really nice (we use it for other projects on my team).

* Mozilla would also very much like to retire the Bazaar and CVS servers,
both of which are used solely by Bugzilla.

Doing a one-time migration is quite easy using fast-import/fast-export.
I've verified that it works, with one small error that should be simple
to fix (a single file not deleted in the git version).

However, even with some advance warning, I don't think we can convert
and then abandon Bazaar immediately due to Bugzilla's suggested upgrade
path, which is to install a package and then pull updates directly from
the Bazaar repository. If we had to do a security release, it doesn't
seem right to require users to switch VCSs to get that fix. That said, I
don't think we need to maintain Bazaar indefinitely, just for some grace
period. I suggest 9 months, which would put that sometime mid-2014. I
would, however, like to shut down CVS when we migrate to git,
so that we don't have to maintain three VCSs at the same time.

I haven't found a suitable solution to automatically mirror changes from
git to Bazaar; there is one project[1] that at first glance appeared
suitable, but after running into problems, I had a discussion with the
package's author, who stated that there difficult bugs that would
prevent it from working the way we would need it to.

Luckily Bugzilla has already gone through this before, from CVS to
Bazaar, and we have a script[2] that steps through Bazaar commits and
applies them to a CVS repo. I've been modifying that script to do a
similar git-to-bzr translation, and I'm confident I can get it working.
The mirroring would be in a single direction, that is, from git to
Bazaar; after the migration, Bazaar would be read only to everyone
except the mirroring script.

We would still need migration instructions, which I believe we can do
using the old cvs-to-bzr instructions[3] as a base.

As for location of the repository, we could have Mozilla host the
official git repository and set up two-way mirroring to GitHub.

How does this sound to everyone? Any strong objections? I and the rest
of the BMO team are willing to do most of the work.

Mark


[1] <a class="moz-txt-link-freetext" href="https://launchpad.net/bzr-git">https://launchpad.net/bzr-git</a>
[2] <a class="moz-txt-link-freetext" href="http://bzr.mozilla.org/bzr-plugins/bzr-to-cvs/view/head:/bzr-to-cvs.pl">http://bzr.mozilla.org/bzr-plugins/bzr-to-cvs/view/head:/bzr-to-cvs.pl</a>
[3] <a class="moz-txt-link-freetext" href="https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar">https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar</a>

</pre>
    </div>
  </body>
</html>