Source Control

The Bioconductor project is maintained in a Subversion source control system. Maintainers can also access their packages through git and Github using the Bioconductor Git mirrors.

Subversion Resources

Software Packages

To check out (co) all packages in the software repository (~3 GB) use:

svn co Rpacks-devel

This creates a copy of all packages on your local machine. Specify a name other than “Rpacks-devel” if you want a top-level directory with different name.

To check out the code for a single package, for example Biobase, use:

svn co

The check out command uses the directory name in the repository if the destination name is not specified.

Basic svn Operations

Primary commands:

Some other commands:

Many of these commands have additional arguments. Get help on diff, for example, like this:

svn help diff

The Subversion Book has more complete documentation and examples for all the commands and options.

Where to Commit Changes

Committing Changes to the Development Branch

Almost all development is on the trunk (‘devel’) branch of the SVN repository, as indicated by the ‘trunk’ part of the URL in the examples above. To checkout or commit to the ‘devel’ branch use this url:

All bug fixes, new features and major changes are introduced in devel.

Committing Changes to the Release Branch

Only bug fixes should be back-ported to the release branch. This is so that users of the release branch have a stable environment in which to get their work done. To checkout or commit to the release branch use this url:

If you wish to have a bug-fix made in the devel branch also available in the current release branch, you have a couple of options. Once approach is to simply checkout the release code

svn co

apply the bug fix changes, run R CMD build and check with the release version of R/Bioconductor, bump the version and commit:

svn ci

A second approach is to use the ‘changeset’ from devel and apply it to release. To do this first need to take note of the revision number from your devel commit, for example,

$ svn commit -m "Sample commit"
Adding         Rpacks\Biobase\DESCRIPTION
Sending        Rpacks\Biobase\DESCRIPTION
Transmitting file data ..
Committed revision 140.

was revision 140. The changeset you want is -c140.

You’ll need to have checked out the branches subdirectory, which is separate from trunk. If you have only checked out the madman subdirectory previously, you’ll need to also check out the appropriate branch subdirectory:

svn co

Merge your changes from the trunk to the release branch, check and fix any conflicts, bump the version and commit. Step by step:

NOTE: The version in the release branch (in DESCRIPTION file) should never be the same as the version in the devel branch. In release, y is even and in devel it’s odd. You should only be bumping the z portion of the version. See versioning scheme for details.

Version Bump and Propagation of Changes

Each commit, in either release or devel, should include a bump in the z portion of the x.y.z package versioning scheme.

Builds occur once per day, and take approximately 24 hours. See the build report for the SVN ‘Snapshot Date’ (upper left corner) for the last SVN commit included in the report, and the ‘page was generated’ time stamp (top center) for the date of the build report.

Experiment Data Packages

The root of the Bioconductor experiment data svn repository is Experiment data packages are divided into two components: pkgs (containing all but the data files) and data_store (containing the data files). To obtain a specific experiment data package first check out the package infrastructure then fold the data in using the Python script on the exported package. Here are the commands to check out the affydata package:

## export script
svn export
## check out the package, without the large data
svn co
## add the large data
./ affydata

Note that experiment data packages are only built twice a week, on Wednesdays and Saturdays.

Updating the affydata package might involve commits to data_store/affydata (if data is being updated), to pkgs/affydata (if documentation is being updated) or both (e.g., a data change in data_store/affydata coupled with a version bump in pkgs/affydata/DESCRIPTION). The file pkgs/affydata/external_data_store.txt would be appropriate if the organization of the data in the data_store were changed. A typical work flow might create a subset of the experiment data repository

svn co -N
cd experiment
svn up pkgs/affydata data_store/affydata pkgs/

make changes, and commit

svn ci pkgs/affydata data_store/affydata

Annotation Packages

Due to the size of the Annotation files these packages are not stored in svn. To update an existing Annotation package please make the new version available in dropbox (or similar) and send an email to A member of the Bioconductor team will add the package to the appropriate repository.

To contribute a new Annotation package please contact for guidance.

Having Problems?

Lost Subversion username or password

One of the following steps should work:

Other problems

Here is a list of possible issues: