Hi,

This has been discussed in the past, to no avail. I would like to reopen
the discussion.

Acknowledgment: this is heavily inspired from a list compiled by Joshua
Cranmer, but please consider this *also* coming from me, with my build
system peer hat on.

What:

Let's first summarize what this is about. This is about moving the
development of Seamonkey, Thunderbird, and Lightning in the same
repository as Firefox, by merging all their code and history from
comm-central into mozilla-central.

Seamonkey and Thunderbird share a lot, so comm-central without
Seamonkey wouldn't make a significant difference. Lightning is, AIUI, both
standalone and an addon shipped with Thunderbird, so in practice, it
can be considered as being part of Thunderbird.

Why:

- The interaction between the build system in mozilla-central and the
  build system in comm-central is complex, and has been a never stopping
  cause of all kinds of problems sometimes blocking changes in the
  mozilla-central build system, sometimes making them unnecessarily more
  complex.

- The interaction between both build systems and automation is complex, 
  and got even more twisted with mozharness now being in
  mozilla-central, because of the chicken-and-egg problem it introduces,
  making integration with mozharness hard.

- Likewise with taskcluster.

- Subsequently, with mozilla-central now relying on mozharness and soon
  switching away from buildbot, the differences in setup with
  comm-central keep increasing, and makes maintaining those builds a
  large hurdle.

- Historically, the contents of comm-central used to be in the same
  repository as everything else, and the build system has never really
  copped with the separation. Arguably, this was in the CVS days.
  It's a testament to our build and release engineers that the cobbled
  together result has held up for as long as it has, but it's really
  not sustainable anymore.

- mozilla-central and comm-central are as tied as top-level
  mozilla-central and js/ are. Imagine what development would look like
  if js/ was in a separate repository.

- Relatedly, many codebase-wise changes (e.g. refactorings), or core API
  changes tend to break comm-central. While it can be argued that it
  shouldn't be platform engineers' burden to care about those, the fact
  is that even if they do care, the complexity of testing those changes
  on try or locally doesn't even slightly encourage them to actually do
  the work.

- TTBOMK, Thunderbird is Mozilla's second largest project in terms of
  number of users, behind Firefox, and before Firefox for Android and
  Firefox OS.  Many of those users may legitimately want to contribute
  to Thunderbird, and the bar to entry is made much higher by the
  multi-repository setup and the extra complexity it entails. Mozilla is
  actively making the bar to entry for Firefox/Firefox for
  Android/Firefox OS contributions lower, at the expense of Thunderbird
  contributors. This is a sad state of affairs.

Why not, and counter-counter-arguments:

- It would increase mozilla-central significantly.
    Well, first, it's true, for some value of "significant".
    comm-central is about 131M of .hg/ data, while is about 2309M as of
    writing. That's a 5.7% increase in size of the repository. On the
    other hand, 131M is less than the size mozilla-central grew in the
    last 3 months.

- It sets a bad precedent, other Gecko-based projects might want to
  merge.
  - mobile/ set the precedent half a decade ago.
  - as mentioned above, historically, everything was in the same
    repository, and the split can be argued to be the oddity here
  - there are barely any Gecko-based projects left that are not in
    comm-central.

- It adds burden to developers, needing to support those projects
  merged from comm-central.
    Just look around in mozilla-central at all the optional things
    that are not visible on treeherder and break regularly. The
    situation wouldn't be different in that sense. But the people
    that do care about those projects will have a better experience
    supporting them.

Considering all the above, are there still objections to this
happening, and can we finally allow Joshua to go ahead with his merge
plan? (CCing bsmedberg, who, iirc, had Brendan's delegation to have the
final word on this)

Cheers,

Mike
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to