The Bioconductor project is maintained in a Git source control system. Package maintainers update their packages by pushing changes to their git repositories.
The essential steps for transitioning from SVN to git are summarized in
More scenarios for repository creation:
Scenarios for code update:
Github scenarios
See other frequently asked questions.
A minimal workflow is to checkout, update, commit, and push changes to
your repository. Using BiocGenerics
as an example:
git clone git@git.bioconductor.org:packages/BiocGenerics
cd BiocGenerics
## add a file, e.g., `touch README`
## edit file, e.g., `vi DESCRIPTION`
BiocGenerics$ git commit README DESCRIPTION
BiocGenerics$ git push
This requires that Bioconductor knows the SSH keys you use to establish your identity.
Two useful commands are
BiocGenerics$ git diff # review changes prior to commit
BiocGenerics$ git log # review recent commits
If the repository is already cloned, the work flow is to make sure that you are on the ‘master’ branch, pull any changes, then introduce your edits.
BiocGenerics$ git checkout master
BiocGenerics$ git pull
## add, edit, commit, and push as above
New features and bug fixes are introduced on the master (‘devel’) branch of the GIT repository.
BiocGenerics$ git checkout master
BiocGenerics$ git pull
## edit 'R/foo.R' and commit on master
BiocGenerics$ git commit R/foo.R #
[master c955179] your commit message
1 file changed, 10 insertions(+), 3 deletions(-)
BiocGenerics$ git push
To make more extensive changes see Fix bugs in devel and release.
Bug fixes can be ported to the current release branch. Use
cherry-pick
to identify the commmit(s) you would like to port. E.g.,
for release 3.6, porting the most recent commit to master
BiocGenerics$ git checkout RELEASE_3_6
BiocGenerics$ git cherry-pick master
BiocGenerics$ git push
Each commit pushed to the Bioconductor repository should build and check without errors or warnings
BiocGenerics$ cd ..
R CMD build BiocGenerics
R CMD check BiocGenerics_1.22.3.tar.gz
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 git commits captured in the most recent build (upper left corner)
Traditional Annotation packages are not stored in GIT due to the size of annotation files. To update an existing Annotation package please send an email to maintainer@bioconductor.org. A member of the Bioconductor team will be in contact to receive the updated package.
Newer annotation packages can be stored in GIT as it is a requirement to use the AnnotationHub or similar server hosted data. The larger sized files are not included directly in the package. To contribute a new Annotation package please contact hubs@bioconductor.org for guidance and read the documentation on How to Create A Hub package.
Currently direct updates to annotation packages, even those stored on git, are not supported. If you wish to updated an annotation package, make required changes and push to git.bioconductor.org. Then send an email to hubs@bioconductor.org or maintainer@bioconductor.org requesting the package be propagated.
Need more help? Ask on the bioc-devel mailing list.