Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Genoviz project uses Subversion for version control and managing the release cycle. The repository is hosted resides at sourceforge.net.

Anyone contemplating contributing to the Genoviz code base should read this on-line text on Subversion before getting started: Version Control with Subversion.

Note that for many years, Genoviz used CVS for version control. We migrated from CVS to subversion in 2008.

...

  • genometryImpl - data models shared by DAS server code and IGB
  • genoviz_sdk - graphics library that implements zooming, interacting with views, etc.
  • igb - the core IGB application
  • plugins - IGB tabbed panels- functions added via plug-in interface (uses OSGi)
  • common - common methods classes used by the other projects

...

The repository contains branches and a main trunk of development.

Branches

...

IGB project

The IGB project uses branches for major releases and uses the "trunk" (genoviz/trunk) for development.

Release branches have names like "igb_6_4" and correspond to major releases of the software we have made built for end users. These should never be removed from the repository and should not ever be touched editing except by the group managing releases for end users. (As of this writing, this is the team at UNC Charlotte led by Ann Loraine manages the release cycle. If you have any questions about this, contact her.) 

Feature branches are development workspaces and may ultimately be merged backed into the trunk provided they pass testing. If you have a great new idea for an IGB feature or a change the the user interface, first make a branch and implement your changes there. If you are interested in working on the GenoPub code, contact David Nix.

Do not develop on the trunk unless your proposed new feature is bug fix or is highly unlikely to introduce new bugs to existing systems and features. If you have any questions about this, please contact the IGB development team directly or via the developers' list.

Why branch for new features?  

There are two major reasons you should implement new features on a feature branch rather than the trunk:

  • IGB is a mature software application with thousands of users and hundreds of features. New developers experience a steep learning curve as they master the code base. Developers new to molecular biology, genomics, or next-generation sequencing often have an even steeper learning curve as they get familiar with IGB basic functionality. If you are new to the IGB and Genoviz code base, you will need freedom to experiment and make mistakes without annoying other developers or disrupting the release cycle. Creating a branch gives you a risk-free workspace where you can work, experiment, and back out of changes as needed. However, this doesn't mean you'll be developing in isolation - you can always merge in changes from the trunk. Before you get started, read this: Chapter 4: Branching and Merging in Version Control with Subversion.
  • IGB is a graphical user interface and therefore requires extensive manual testing every time a change is made either to the user interface or the underlying code base. Before merging a branch back into the trunk, you must demonstrate that the new feature is well-tested and bug-free. The Loraine group at UNC Charlotte has a testing team that can help you, but please be aware that resources are limited. If your new feature requires extensive testing and is not already covered in one of the group's funded grants, you will need to contribute to the testing effort. Contact Ann Loraine for more details.

The main trunk of development should not be used to "try things out" or experiment with new ideas and architectures. If you want to try something new that is likely to cause many other features to break or that you are not sure will work, then first make a branch and develop it there. ) If bugs are discovered after a major release, we correct the problem on the latest branch and release a new version to the public as a "dot release," e.g., 6.4.1 is the first bug fix release of IGB version 6.4.

Genoviz/trunk is the main line of IGB development where we add new features or perform code refactoring. We propose and discuss changes to the trunk at at weekly developer's meetings, typically held on Wednesday, 4 pm, EST.

GenoPub project

For information about develop processes underway for the GenoPub project, please contact David Nix, Huntsman Cancer Institute.