At the Enzo developers workshop, going on today through Wednesday, we
discussed the possibility of moving the main Enzo code repository from
heavily supported by those in the room.
The main reasons identified were:
- We have reason to believe that bitbucket will be ending support for
Mercurial repositories at some point in the medium future. There
are effectively no other good solutions for hosting Mercurial
- Github's testing infrastructure works much better with our
fork-based development model. Currently, on bitbucket, everyone
needs to individually enable testing and we each have a limited
number of testing minutes per month. On github, we simply need to
enable testing for the main repo and all issued PRs will
automatically be tested with no time limits. There is a limit on
the number of simultaneously running tests, but any tests over the
limit are simply queued and run later.
- Git is more widely used (particularly in astronomy).
The yt project recently made this move and it was relatively painless,
with most of the pain coming from learning git itself. Below are
answers to some of the main questions that were considered:
Q: What needs to change in the codebase?
A: The main changes that need to be made to the source are 1)
replacing some internal machinery that uses mercurial to get version
information with git and 2) making a new configuration file that works
with travis-ci, the main testing infrastructure for github. We would
also add some documentation detailing how one's workflow would change.
Q: What happens with my fork on bitbucket?
A: The process of moving one's fork should be relatively
straightforward. After the main repo is moved, you can create a new
fork on github and use the "hggit" Mercurial extension to push the
work from your old bitbucket fork to your new github fork. Explicit
documentation to do this will be provided.
Q: What is the timescale of this move?
A: We would try to get started here at the workshop, but the whole process would likely take a month or two.
Q: What will happen to the old pull request discussions on Bitbucket?
A: The bitbucket Enzo repository will still exist and we will not take down the old pull requests. We will also scrape the pull request data, including discussions and comments, and store them. If bitbucket decides to remove the Enzo repository in the future we will make the old pull request discussions available in a more presentable format.
The developer workshop will run through Wednesday and it would be
useful to get the ball rolling here, IF we decide it's what we want to
do. However, we want to consider the everyone’s opinion and not just
the people who could make it to the workshop. If you have any objections
to this move, please reply to this email by Wednesday morning (10 AM EST).
Britton, on behalf of those at the workshop