[Maildev] Obligatory GitHub vs Mercurial (Mozilla-hosted) Question

Tom Prince mozilla at hocat.ca
Sun Dec 10 19:17:08 EST 2017

On Thu, Dec 7, 2017 at 10:55 PM Magnus Melin <mkmelin+mozilla at iki.fi> wrote:

> On 07-12-2017 23:50, Tom Prince wrote:
> This is definitely false. I know several prominent, skilled open-source
> developers who have not bothered to make contributions (even easy ones)
> because they can't be bothered to figure out or install a new version
> control system. We want to make it easy for new people to start
> contributing to Thunderbird; any hurdle we put in front of people means we
> will lose some people before they actually start contributing. Certainly
> once somebody has started contributing regularly, we can push them to start
> using hg, but that shouldn't be the first hurdle they face.
> On linux, installing mercurial is maybe 30s and even on Windows, you'll
> set it up in a few minutes. I'm sorry, but if 30s of your time is a major
> hurdle to contribute, your contributions are not going to be considerable.

If we only people we want to contribute are people that make "considerable"
contributions, we won't ever get more contributors. Most people who
contribute will start with small fixes. There is some discussion of this in
I think this dismissive response to small contributions is not good for the
health of the project.

In any case, I think you significantly underestimate the effort required to
install and learn a new version control tool enough to contribute using it.
Certainly the actual time to download and install mercurial (from selecting
the program to install to it being installed) may only be 30s (on a good
internet connection, but as you point out the size of the mozilla and
thunderbird repository will be a larger issue in this case). But, there is

   -  figuring out which program to install (is it `mercurial` or `hg` or
   something else)
   - figuring out how to clone the thunderbird repos
   - figuring out how to get something out of the repo to submit as a change
   - dealing with the possibility that there exists commands with identical
   names in git and hg that have opposite behavior, which could easily lead to
   losing changes

Perhaps you don't consider this much to take in, but anybody who is going
to be contributing is going to be doing in their spare time. Any hurdle is
going to push people some other activity, or contributing to a project that
doesn't require as much initial investment to start contributing to. Given
that approaching the codebase is a challenge in and of itself, if we want
to grow the contributor base, we should do whatever is practical to make
contributing easier; which I think includes having a well-supported and
monitored github mirror.

> For comparison, setting up the build environment on Windows is a
> multi-hour effort even on a fast machine and fast connection. Downloading
> the initial repos is almost 3GB. I would think on the list of things
> blocking contribution, these are more important hurdles, but of course not
> easily addressable.

All of these are addressable and should be addressed in addition to other
- A build environment is (in theory) only needed if you are making changes
to C++ files. I hope (once the migration to taskcluster is done) to
enable artifact
that don't require installing a build environment.
- Git supports shallow clones that don't require donwloading the entire
history, which is much smaller. Hg is also going to get shallow clone
support in the medium-future.
- If we have a github mirror, people can make small fixes directly in the
browser, without needing to download anything.

> In any case, even some Mozilla employees working on large firefox projects
> use git for them, so why should we make it harder for a casual contributor
> to work on thunderbird?
> Conversely, why should we make it harder for people working on Mozilla
> (and used to hg) to contribute the off patches to Thunderbird?

As I've said elsewhere I don't think we should change the source of truth,
just add more options for people to contribute. Everything the currently
works will continue to work.

-- Tom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thunderbird.net/pipermail/maildev_lists.thunderbird.net/attachments/20171211/26bc13e3/attachment-0002.html>

More information about the Maildev mailing list