Release Roadmap: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
Line 25: Line 25:
CVS (the collaborative souce code repository and tracking system we use) is broken down into three distinct parts: repositories, branches, and tags.
CVS (the collaborative souce code repository and tracking system we use) is broken down into three distinct parts: repositories, branches, and tags.


1. '''repository'''. contains all source code and history for a project. aka ''HEAD''
# '''repository'''. contains all source code and history for a project. aka ''HEAD''
: for example ''grass'' (for grass 5.x), ''grass6'' (grass 6.x), ''web'' (for the website pages)
: for example ''grass'' (for grass 5.x), ''grass6'' (grass 6.x), ''web'' (for the website pages)


2. '''branch'''. at a certain date it is split off from ''HEAD''. New developement in ''HEAD'' will not appear in the branch, changes must be backported to the branch.
# '''branch'''. at a certain date it is split off from ''HEAD''. New developement in ''HEAD'' will not appear in the branch, changes must be backported to the branch. Usually created in advance of a stable release to separate code that is trying to be stabalized from new development.
Usually created in advance of a stable release to separate code that is trying to be stabalized from new development.
: for example ''releasebranch_6_0'' or ''releasebranch_6_2'' in the ''grass6'' repository for GRASS 6.0.x and GRASS 6.2.x
: for example ''releasebranch_6_0'' or ''releasebranch_6_2'' in the ''grass6'' repository for GRASS 6.0.x and GRASS 6.2.x


3. '''tag'''. a branch snapshot, technically an alias to a date stamp in a branch
# '''tag'''. a branch snapshot, technically an alias to a date stamp in a branch
: for example ''release_20071127_grass_6_2_3'' in the ''releasebranch_6_2'' branch for the GRASS 6.2.3 release
: for example ''release_20071127_grass_6_2_3'' in the ''releasebranch_6_2'' branch for the GRASS 6.2.3 release



Revision as of 18:10, 1 December 2007

A bit of planning ahead...

What are these release numbers?

  Version number scheme:
   * first number: major release number
   * secondary number: minor release number (stable/development indicator)
   * third number: revision 
 
  Using this scheme, version numbers have a very clear meaning:
   * new revision == bugs have been fixed, go grab it and install it.
   * new minor == new features are available, source compatibility _and_ binary 
         compatibility for existing applications are garanteed
   * new major == beware! Old (ugly) libraries have been dropped. Database 
         compatibility may be broken, you have to migrate your database to 
         the new formats and adjust your custom scripts (next is GRASS 7)
 
  It is important to regularly release stable versions to get them included into
  the major software distributions.
 
  Motivation: release often - try 1-2 stable releases per year

What are branches and tags?

CVS (the collaborative souce code repository and tracking system we use) is broken down into three distinct parts: repositories, branches, and tags.

  1. repository. contains all source code and history for a project. aka HEAD
for example grass (for grass 5.x), grass6 (grass 6.x), web (for the website pages)
  1. branch. at a certain date it is split off from HEAD. New developement in HEAD will not appear in the branch, changes must be backported to the branch. Usually created in advance of a stable release to separate code that is trying to be stabalized from new development.
for example releasebranch_6_0 or releasebranch_6_2 in the grass6 repository for GRASS 6.0.x and GRASS 6.2.x
  1. tag. a branch snapshot, technically an alias to a date stamp in a branch
for example release_20071127_grass_6_2_3 in the releasebranch_6_2 branch for the GRASS 6.2.3 release

Testing

GRASS 5.4.x

 Note: 5.4.x is a release branch, separated from HEAD. It's frozen.
 Only critical bugs are fixed in the 5.5-CVS repository "grass", HEAD
 (note: grass6/ is a separate repository).
  • GRASS 5.4.0 released 5 Nov 2004
  • GRASS 5.4.1 released 26 Jul 2007 (announcement) - Courtesy release containing several bug fixes for legacy users
    • supports GRASS 6 WIND files (3D region settings don't cause an error)
  • Post-5.4.1 (CVS, yet unreleased):
    • Fix definition of US survey foot
    • more precise conversions to feet, square miles and acres

GRASS 6.0.x

  Note: 6.0.x is a release branch, separated from HEAD. It's frozen and closed.
  • GRASS 6.0.0 released 10 Mar 2005
  • GRASS 6.0.1 released 22 Aug 2005
  • GRASS 6.0.2 released 22 Feb 2006
  • no longer actively maintained once 6.2.0 is published

GRASS 6.1.x

  Note: 6.1.x is a release branch (tag: "releasebranch_6_1"), separated from HEAD.
  It's frozen and closed.

GRASS 6.2.x

  Note: 6.2.x is a release branch (tag: "releasebranch_6_2"), separated from HEAD.
  It's frozen, only critical bugs will be fixed.

GRASS 6.3.x

Note: 6.3.0 "development preview" is a release branch (tag: "releasebranch_6_3"),
separated from HEAD. It's frozen, only important bugs will be fixed.
New developement is still open in 6.3-CVS, which is not a release branch.


  • 6.3.0RC1 released 24 Oct 2007
  • 6.3.0RC2 released 20 Nov 2007
  • 6.3.0RC3 released 30 Nov 2007

GRASS 6.4.x

  • once GRASS 7 development has started the 6.x line will work towards stability in advance of a final 6.4 stable branch, and new development should happen in the GRASS 7 SVN. Once work has started on preparing a 6.4 branch the GRASS 6 line will only be open to bug fixes and important enhancements.
  • open to enhancements which do not break backwards compatibility with 6.x
  • 6.4 will include the new wxPython GUI but otherwise be very similar to 6.3.x

GRASS 7.x

  • open to major enhancements which break backwards compatibility
  • work to commence as soon as SCM is moved to OSGeo's SVN
  • GRASS 7 ideas collection