[Biopython-dev] Developmental and experimental branches

Bartek Wilczynski bartek at rezolwenta.eu.org
Fri Jan 9 18:17:09 UTC 2009

On Fri, Jan 9, 2009 at 6:28 PM, Peter <biopython at maubp.freeserve.co.uk> wrote:
> On Fri, Jan 9, 2009 at 5:17 PM, Giovanni Marco Dall'Olio
> <dalloliogm at gmail.com> wrote:
>> On Fri, Jan 9, 2009 at 5:18 PM, Bruce Southey <bsouthey at gmail.com> wrote:
>>> Hi,
>>> In a previous thread (and indicated in others) it was suggested that perhaps
>>> Biopython needs some type of development  or experimental branch. So this
>>> thread is orientated to provide some discussion on this and considers that
>>> Biopython has moved to SVN.
>> Maybe you can consider the approach at the basis of git, in which
>> every developer works on its personal branch, and the owner of the
>> 'official branch' can decide whether to accept the changes apported by
>> the single branches or not.
> In some ways this describes the current situation but without the
> software: The CVS/SVN repository is the master official branch which
> we (as a group) try and keep pretty stable.  When working on new
> modules, individual developers or contributors have hacked away on
> their own machines (perhaps using a local repository - I tended to
> just save versioned snapshots of work in progress), and commit things
> to the master once it was sufficiently stable to be approved.  For
> self contained modules, this works OK - although using something like
> git would be a bit more formalised and automated, and allow this kind
> of "work in progress" to be done openly.

It can be viewed this way, but the point here is that making this change to
the process of development might decrease the amount of work required to
join the  development. Especially, if you think about adding new library
to biopython, the most sensible way to do it is to branch and then
stabilize. I've
recently experienced (with Bio.Motif) that it might be tedious even
for a very simple
task. Also, using the distributed version control system, it is very
easy for a small team
of people to collaborate on a branch before merging back to the main
repository. In the
current mode this would be really difficult. And another  benefit is
that you do not loose
 the history of changes made "on a branch".

As for github, it is currently used by BioRuby project hosted on
open-bio.org. We can try
to talk to them and ask about their experiences. I'm not personally
involved in any way in it,
but it seems, that they've basically moved the main branch to github
and update the cvs repository
only occasionaly.

I think that for biopython, if we decided to use distributed version
control, it would
be better to use bazaar+launchpad instead of git+github. And for the
following reasons:
- it's completely free, as opposed to <300Mb of free account on github
- launchpad could make the transition very easy. They provide a
service of importing existing
open source projects  to launchpad:
https://help.launchpad.net/VcsImports They convert the trunk
to bazzaar for us and set it up to update from the cvs every 6-12
hours. It would be easy then to
see whether we like it like this or not
- bazaar is specifically aimed to be more user friendly than git, and
allows developers
to keep working in a familiar environment when moving from cvs or svn.
I think it is important since git
itself is really different from cvs and if we switch to anything else,
everybody needs to learn the tool.
- they use openID, which makes it simpler for people to join (even
though you still need another
- both bazaar and launchpad are developed in python, so they're more
python oriented
(while github is developed in ruby, so a better choice for bioruby).

More on comparing these to possibilities (from the bazaar developers
non-objective point of view):

These are my 2 cents on the choice of  tools for development, but I
have to admit that I'm not
sure whether it is  needed for biopython now. I'm very open to discussion.

Bartek Wilczynski
Postdoctoral fellow
EMBL, Furlong group
Meyerhoffstrasse 1,
69012 Heidelberg,
tel: +49 6221 387 8433

More information about the Biopython-dev mailing list