Using the ‘Devel’ Version of Bioconductor

Which version of R?

Package authors should develop against the version of R that will be available to users when the Bioconductor devel branch becomes the Bioconductor release branch.

R has a ‘.y’ release in x.y.z every year, but Bioconductor has a .y release (where current devel becomes release) every 6 months.

When the next (typically mid-April) .y releases of R and Bioconductor coincide, Bioc-devel is based on R-devel.

When the next (typically mid-October) .y release of Bioconductor corresponds to no change in R’s y, Bioc-devel is based on release R.

This means that, from mid-October through mid-April, Bioconductor developers should be developing against R-devel. From mid-April to mid-October, developers should use R-release (actually, the R snapshot from the R-x-y-branch) for Bioconductor development.

Using Bioc-devel

In order to use the devel version of Bioconductor during the current release cycle, simply call the function useDevel() (from the BiocInstaller) package:

## In R-3.3
library(BiocInstaller)
useDevel()
biocValid()              # checks for out of date packages
biocLite()               # (optional) updates out of date packages

After doing this, all packages will be installed from the devel (BioC 3.4) repository.

If you also want to work with the release version of Bioconductor (3.3), we recommend maintaining two separate installations of R 3.3, one to be used with Bioconductor 3.3 (BioC-release) and the other to be used with Bioconductor 3.4 (BioC-devel). Run useDevel() as described above in this latter installation.

An easy way to do this is to have two separate installations of R-3.3.

A more complicated way is to use the R_LIBS_USER environment variable. First, create two separate directories. Suggested directory names are Linux:

~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-release
~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-devel

Mac OS:

~/Library/R/3.3-bioc-release/library
~/Library/R/3.3-bioc-devel/library

and Windows:

C:\Users\YOUR_NAME\Documents\R\win-library\3.3-bioc-release
C:\Users\YOUR_NAME\Documents\R\win-library\3.3-bioc-devel

(change YOUR_NAME to your user name)

Invoke “R for bioc-devel” or “R for bioc-release” from the command line on Linux:

R_LIBS_USER=~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-release R
R_LIBS_USER=~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-devel R

Mac OS X:

R_LIBS_USER=~~/Library/R/3.3-bioc-release/library R
R_LIBS_USER=~~/Library/R/3.3-bioc-devel/library R

and Windows (assuming that R.exe is in PATH):

cmd /C "set R_LIBS_USER=C:\Users\YOUR_NAME\Documents\R\win-library\3.3-bioc-release &&  R"
cmd /C "set R_LIBS_USER=C:\Users\YOUR_NAME\Documents\R\win-library\3.3-bioc-devel &&  R"

When correctly configured, R’s .libPaths() function will return the release or devel directory as its first entry. Packages are installed to that directory, and that is the first place that library() looks for them. biocLite() and install.packages() respect this setting; update.packages() attempts to update packages in the directory where the current package is installed.

Aliases

On Linux and Mac OS X, you can create a bash alias to save typing. Add the following to your ~/bash_profile on Linux:

alias Rdevel='R_LIBS_USER=~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-devel R'
alias Rrelease='R_LIBS_USER=~/R/x86_64-unknown-linux-gnu-library/3.3-bioc-release R'

or Mac OS X

alias Rdevel='R_LIBS_USER=~/Library/R/3.3-bioc-devel/library R'
alias Rrelease='R_LIBS_USER=~/Library/R/3.3-bioc-release/library R'

Invoke R from the command line as Rdevel or Rrelease.

On Windows, create two shortcuts, one for release and one for devel. For devel (do similar steps for release) go to My Computer and navigate to a directory that is in your PATH. Then right-click and choose New->Shortcut. In the “type the location of the item” box, put:

cmd /C "set R_LIBS_USER=C:\Users\YOUR_NAME\Documents\R\win-library\3.3-bioc-devel &&  R"

(again, it’s assumed R.exe is in your PATH) Click “Next”, and in the “Type a name for this shortcut” box, type

Rdevel

Invoke these from the command line as Rdevel.lnk.

Because R_LIBS_USER is an environment variable, its value should be inherited by any subprocesses started by R, so they should do the right thing as well.