We are currently testing the benefits of migration to Git distributed version control.
The process of development of Biopython with git is outlined here.
This page contains the information on the technicalities of the transition itself and how the core developers should deal with the changes during the transitional period.
This would become the official repository. Currently it is synchronized with the main CVS trunk every hour, so it should be up to date most of the time.
Updates from CVS to github branch
This works by extracting commits from the cvs repo and generating input for git fast-import. It seems to work nicely and is really fast.
The updates are performed hourly, using the following configuration . The scripts obtains the cvs repository via rsync and performs the conversion locally. This has to be done this way at least until we get git installed on dev.open-bio.org.
After the conversion is done, the updated git branch is pushed to github, so that others can use it. Afterwards, the copy of the git repo is rsynced back to OBF servers for backup purposes.
Accepting code contributions
During the migration, the CVS repo is assumed to be still of higher priority. This means that all code contributions need to go through CVS and then get updated to the github branch. This effectively means, we cannot push to the main biopython branch directly, but instead work on different branches and generate diffs to be applied to CVS.
In case of small bug fixes, the core developers can continue to work directly in CVS. The changes will get pushed to github eventually.
Since we also want to accept contributions through github, it means that core developer integrating changes will need to do some extra work:
- make sure you have an updated version of cvs source tree
- make sure you have a git repo with the official and contributed branch
- make a diff between the contributed and official branch in git repo (see GitUsage)
- apply this diff to the cvs repository
- commit in cvs with appropriate message
Once we reach a consensus that git/github serves us well. We will make the final switch. This would include:
- dropping the cvs support (updating Biopython webpage)
- shutting down the cvs2git update scripts
- installing git on the open-bio servers
- setting up a synchronization between obf-hosted branch and github branch
- posting an announcement on the dev-mailing list, news server, and twitter account to celebrate!