under construction
Introduction
The IGB community aims to release new versions the IGB software at least twice per year.
Sometimes releases happen more frequently, depending on the degree of changes we've implemented, user demand for new features, and so on.
Release cycle
The cycle begins with discussion and description of new features and changes to the code.
Typically, we review feature requests and bug reports submitted to sourceforge and our notes from the previous release cycle, when ideas for improving and simplifying the underlying code base presented themselves.
In general, we aim to improve the experience for users while also improving the underlying code base to support long-term development and make it easier for new developers to contribute.
Development Process and Version Control
The Genoviz project uses Subversion for version control and managing the release cycle.
Note that the repository contains multiple branches and a main trunk of development.
There are two types of branches - release branches and development branches.
Release branches have names like "igb_6_4" and correspond to major releases of the software we have made for end users. These should never be removed from the repository and should not every be touched except by the group managing the release. (As of this writing, this is the development team at UNC Charlotte led by Ann Loraine. If you have any questions about this, contact her.)
Development 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 change the the user interface, first make a branch and implement your changes there. DO NOT develop on the trunk unless your proposed new feature is unlikely to introduce many new bugs to other features. If you think your proposed change is unlikely to cause any bugs on the trunk and you don't think creating a branch is necessary, contact . the IGB developers list to affect the system or user experience in a dramatic way. The only developers who should develop on the trunk are Any new features must be thoroughly tested before being merged back to the trunk. If you do not have the personnel to test, then the Loraine group is willing to help you, but please be aware that our resources are limited. If we begin the testing process and find lots of bugs that you should have caught yourself, we will halt the testing process. They will ultimately be removed from the repository following a merge.
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, then first make a branch and develop it there. Only developers with a lot of experience working with the IGB code base should check in changes to the trunk.
Many users are building the code on the trunk and should not be changed unless
- Development phase - Only conservative changes unlikely to introduce many new bugs are made on the trunk. Developers working on radical changes to the code base should develop on a branch, merging changes from the trunk as they go. Following testing, changes from the branch may be merged into the trunk and the branch discarded. See Version Control with Subversion, Chapter 4. Branching and Merging.
- Branching the code - development proceeds "on the trunk" and "on the branch." Only minor "bug fix" changes are made to the branch.
- Alpha release - all known bugs we plan to fix are fixed on the branch (and trunk), and we set up an IGB "pre-release" download page for the IGB community to try out the new software, give us feedback. Testing continues.
- Beta release - the new version of IGB is released "in beta" and becomes the major IGB available from the main Java Web Start download set at bioviz.org/igb. Sites that use the Bioviz Java Web Start pages on their sites also pick up the new changes. (This includes Affymetrix, Huntsman Cancer Institute, and other sites.) Testing continues.
- Final release - the official release of the new IGB version happens. Meanwhile, and any bug reports from the community are addressed. "Bug fix" (minor) releases may also occur, as needed.
In parallel to releases on the Java Web Start page at Bioviz.org, we also release compiled versions of the IGB software on sourceforge.net. This is for users who can't launch IGB using Java Web Start or want to take advantage of IGB's command line features. Some users' IT infrastructure blocks Java Web Start programs from launching, and so these users download an "igb.zip" file which they then unpack and then use to run IGB by double-clicking one of the "run_igb" scripts.
Trunk versus branch
Table of Contents |
---|
IGB git repo (main)
The main repository address is: https://bitbucket.org/lorainelab/integrated-genome-browser.
The IGB project uses git for source code management. We use maven and Bitbucket pipelines to build and release IGB artifacts and user-friendly installers.
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 (mvn) will obtain the latest copy of the genoviz compiled code (a "jar" file) and install it locally.
Maven
The IGB project uses maven to build IGB, IGB Apps, and the GenoViz SDK. We provide access to new and old IGB-related jar files using the following maven repositories:
- https://nexus.bioviz.org/repository/maven-releases/ (browse using https://nexus.bioviz.org/#browse/browse:maven-releases)
To include these in your project, see the top-level POM.xml file in the Integrated Genome Browser project code base.
History
The original GenoViz library - called "BioViews" - was first developed by Gregg Helt at UC Berkeley as part of his PhD research in the mid-1990s. Around then, Helt and two colleagues (Martin Reese and Cyrus Harmon) formed a bioinformatics software company called Neomorphic, which licensed the software from the University. With funding and development support from the Bioinformatics Department at Smith Kline Beecham, they continued to improve the library, renaming it the Neomorphic Genome Software Development Kit. Also during this period, Celera Genomics and the Institute for Genomic Research (TIGR) hired Neomorphic to build genome browser and annotation software. Ann Loraine joined the company in 1999 and helped build the Neomorphic Annotation Station for The Institute for Genomic Research.
In October 2000, Affymetrix purchased Neomorphic and re-focused software effort on supporting and developing Affymetrix DNA microarray products. In 2001, Gregg Helt and colleagues began developing Integrated Genome Browser to visualize and analyze data from genome tiling arrays, which contained probes selected from (mostly) regular intervals along the genome. Visualization of probe intensity data alongside gene models was essential to developing algorithms to normalize and analyze the data, and the team at Affymetrix developed some of the first visual analytics algorithms in bioinformatics. Also, they developed some of the first indexed, random access file formats to enable partial loading of data sets that were too large to fit into computer memory. Support from Affymetrix along with federal grants to PIs Tom Gingeras and Gregg Helt funded early IGB development during this period. Affymetrix released IGB as part of their NetAffx Web site in the early 2000s.
In 2004, Affymetrix released IGB and NGSDK as open source software. This first release was done as a "tarball" on their Web site. In Jan. 2005, Affymetrix developers imported the tarball contents into a new CVS repository at Sourceforge and began using that for further development, discarding the internal repository at Affymetrix. In addition, they changed the name of the graphics library from "Neomorphic Genome Software Development Kit" to "Genoviz Software Development Kit". However, many of the graphics library's class names retain the prefix "Neo" - e.g., NeoWidget, NeoMap, etc.
In 2004, Ann Loraine joined the University of Alabama at Birmingham as an Assistant Professor, where she wrote funding proposals requesting further support for IGB and the Genoviz SDK. In 2008, she joined the College of Computing and Informatics at UNC Charlotte. Later that year, NSF awarded her a new grant to develop IGB and its companion data distribution site IGB Quickload. Developers at Affymetrix continued contributing to the code for several years after that. You can see their work by searching for commits from developers "chyekk" (Ed Erwin) and "gregghelt."
After joining UNC Charlotte, Loraine and colleagues migrated the code to a subversion repository, also hosted at Sourceforge. We continued to use this repository for many years. In 2014, we migrated the source code for IGB and the Genoviz SDK to a new git repository hosted at Atlassian's Bitbucket.
Unfortunately, over the years the early development history pre-dating the 2004 open source release has been lost. In addition, early products built using Genoviz SDK are also lost. When the developers at Affymetrix prepared the first open source release, it seemed simpler and less risky to simply migrate the code directly into a new CVS repository and go from there. Now, of course, we are using tools that are more sophisticated than before, and we can easily trace how the code has changed dating from Jan 2005 until the present day. If you have questions about what you see, feel free to get in touch.
Links
- The 13th commit: "License for IGB code, including genoviz (formerly NGSDK) and genometry" Jan. 31, 2005 - https://sourceforge.net/p/genoviz/code/13/
- Press release - Affymetrix Completes Acquisition of Neomorphic - https://ir.thermofisher.com/investors/news-and-events/news-releases/news-release-details/2000/Affymetrix-Completes-Acquisition-of-Neomorphic/default.aspx