Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 31 Next »

Version Control

The IGB project uses git for version control. Previously, we used svn (subversion) and cvs. We migrated from an svn repository on SourceForge to a git repository on Bitbucket in 2014.

The repository address is: https://bitbucket.org/lorainelab/integrated-genome-browser.

When you clone from this repository, by default you'll get the latest stable release candidate, also called the master branch. The master branch code is typically the same version of IGB that is available on the BioViz Web site. It may have some minor differences, typically bug fixes or low-risk new features. When we release a new version of IGB at BioViz, comes from this master branch.

Repository branches

IGB repository branches include:

  • Master branch - reflects the latest released code or the latest release candidate code (see preceding section).
  • Development branches - branches where we are developing new features in preparation for a new major release. Development branches are named using the convention igb_[N]_[M] where N and M are integers (e.g. igb_8_2). 

On the BioViz Web site, you'll see when we distributed compiled versions of IGB to users, we give assign them names such as 8.3.0 or 8.4.2. We are using this naming convention of \[N].\[M]\.\[P], where N, M, and P are integers, to associate released versions with branch names. The N and M numbers refer to the development branch that was merged into the master branch before a major release. The final ".P" suffix signifies low-risk, small changes that we merged from an upcoming development branch into the stable master branch and then distributed to users as a "minor" release. 

A "major" release is anything that increments either first or second version number of IGB for users (e.g., 8.3.4 to 8.4.0 is a major release). When we do a major release, we merge the development branch into the master branch, stop making changes to that development branch, and create a new one. A "minor" release is is anything that increments the final ".P" suffix version number of IGB for users (e.g., 8.3.0 to 8.3.1 is a minor release) and which requires merging a small amount of code from the development branch into the master branch.

When developing IGB, you should make changes to the current development branch, not the master branch. For details, see Developing IGB.

IGB code base

The IGB repository is organized into sub-projects, including:

  • genometry - genomic data models used in IGB and the DAS server code
  • igb - the core IGB application
  • plugins - functions added via plug-in interface, plug-ins are also called bundles (uses OSGi)
  • common - common classes used by the other projects

 

Genoviz SDK

IGB depends on the Genoviz Software Development Kit (Genoviz SDK) which is version-controlled in a separate repository at https://bitbucket.org/lorainelab/genoviz-sdk. When you build IGB, the compilation tool we use (maven) will obtain the latest copy of the genoviz compiled code (a "jar" file) and install it locally.

Release Tags

When creating a release, we sometimes create a tag indicating at what point the release was built.

GenoPub project

For information about the GenoPub project, please contact David Nix, Huntsman Cancer Institute.

  • No labels