Biomedical Engineering Reference
In-Depth Information
however, two areas where collaborative code development in cheminformatics
fl ourishes: One situation is where a piece of software has become large and
successful and multiple people have interest in contributing to the project; the
second situation is where the project is fairly small and no single developer can
or wants to lead the project, as the topic is not core to their research. An
example of the latter situation is the JChemPaint project [1]. There are existing
similar projects, making continued development out of the scope of cheminfor-
matics research. However, in 1998 Steinbeck et al. showed that a collaborative
project can lead to an ecosystem where such software can still be developed.
Central to collaborative code development is the sharing of source code.
Particularly, it is the pipelining of how patches are shared and applied. While
some cheminformatics projects still share source code as source distributions,
the adoption of source code repositories has emerged as the golden standard.
There are various open-source repository technologies available, including the
Concurrent Versions System (CVS) [2], Subversion (SVN) [3], Mercurial [4],
Bazaar [5], and Git [6]. CVS is the oldest and mostly replaced by the newer
technologies. Subversion is still abundant but increasingly replaced by the last
three technologies. The reason for this is that the latter three systems are
distributed technologies, allowing for server redundancy. Moreover, because
of the distributed nature of Mercurial, Bazaar, and Git, branching and merges
of branches are often easier. However, the increased functionality also intro-
duces further complexity, which is particularly the case for Git, and leads to a
steeper learning curve.
As these tools are open source, anyone is able to set up a local, possibly
private server, but open-source projects can take advantage of service provid-
ers that host free and public code repositories. Table 24.1 provides an overview
of various larger service providers, but there are many alternatives.
24.2.1
Licensing
A second aspect that simplifi es collaboration is to use an open-source license.
Such a license ensures that potential contributors know that whatever work
they invest in the source code is not lost: It will always be available to that
contributor under those license terms. There are various open-source licenses
available, each with different characteristics. A discussion of the differences
TABLE 24.1 Overview of Code - Sharing
Technologies and Service Providers That Provide
Free Online Hosting
Technology
Provider(s)
Subversion
SourceForge [7] , Google Code [8]
Mercurial
Google Code
Bazaar
LaunchPad [9]
Git
GitHub [10] , Gitorious [11] , SourceForge
Search WWH ::




Custom Search