The following is the planned release schedule for 2017:
|Month||Type of release|
Note the schedule may be adjusted to facilitate major bug fixes or SBML developments. Changes will be shown in red and details will be given below.
Types of libSBML releases
Historically, we have provided two types of releases of libSBML: full, and experimental-only. They are described below.
A Full release is a rigorously tested release of the latest code in both stable and experimental branches of libSBML. It includes prebuilt binaries and installers for all operating systems and language bindings supported in addition to archives of the source.
The stable and experimental code/builds are found in the correspondingly named subdirectories of the release directory. The directory will be named according to the release version number.
For example part of the 5.9.0 release directory is
- Mac OS X
An Experimental only release is a release of the code in the latest experimental branch of libSBML; the code for all SBML Level 3 packages that are not yet fully developed. It includes prebuilt binaries and the latest source code archives.
Code in this branch is not as well tested as that in the stable release of libSBML. However we are introducing these mini releases to facilitate development of SBML Level 3 packages that are changing and thus provide developers with more frequent updates of the code/prebuilt binaries.
The source and binaries are found in the corresponding subdirectories of the release directory. In the case of an experimental release the release directory will be named according to the release version number with the word experimental appended.
For example the first experimental release directory will be
- Mac OS X
An experimental release may contain additions to the code for core libSBML and/or approved packages. Since this code will not have been subject to the rigorous testing that precedes a full release it should still be considered 'experimental', as it may change before the next full release.
Numbering the releases
Releases are numbered according to our guidelines. However recently, to facilitate developers who use code directly from SVN, we have started to update the version number in SVN by a patch number (the number after the last dot) immediately following a release. Prior to an actual release the version number is again updated so that the release has a different version number from code that was in SVN in the elapsed time between releases.
Thus following the 5.9.0 release, the version number in SVN was updated to 5.9.1. The next release will update the version number. Thus it may appear in the libSBML release directory on Sourceforge that we are missing releases with numbers going from 5.9.0 to 5.9.2 without an official 5.9.1 release. The rule following the 5.9.0 release, allowing for SVN to have a different version number, is that official libSBML releases will have an even patch version number.
An experimental only release facilitates developers of package code that is still changing. Thus code within an experimental release may change before a full release. Consequently, experimental only releases will only ever update the patch version number.
Retrieving the libSBML version number
LibSBML provides functions for retrieving the version number as either integer or string. Full details of these functions (as described by the C++ API) can be found here.
Stable vs Experimental code
At present libSBML code is present in two repositories:
- trunk/libsbml which contains code for core plus accepted packages
- branches/libsbml-experimental which contains code for core plus both accepted and non-accepted packages
A full release includes code/binaries from both repositories in directories correspondingly names stable and experimental. It should be noted that the experimental repository and therefore released code does include all of the stable libSBML code.