morgand     01/04/16 16:58:31

  Modified:    .        HOWTO-RELEASE
  Log:
  reorginized some, and added information on tag library "states"
  
  Revision  Changes    Path
  1.4       +64 -16    jakarta-taglibs/HOWTO-RELEASE
  
  Index: HOWTO-RELEASE
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/HOWTO-RELEASE,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HOWTO-RELEASE     2001/04/16 15:37:25     1.3
  +++ HOWTO-RELEASE     2001/04/16 23:58:31     1.4
  @@ -1,35 +1,61 @@
   HOWTO-RELEASE
   -------------
   
  -1 RELEASES
  +1 RELEASE TYPES
   
  -1.1 RELEASE NUMBERS
  +There are four types of releases: "Major", "Minor", "Bug Fix", and "Beta".  See 
also Section 2, which describes how releases are numbered.
   
  -1.1.1 INITIAL RELEASE
  +1.1 "MAJOR" RELEASE
   
  -Initial releases are generally released as 1.0, unless there have been versioned 
beta releases.
  +Major releases signify signifant changes to a tag library.  Developers _may_ 
perform a major release if there have been substantial improvements to the tag 
library.  Developers _must_ perform a major release if there is _any_ non-backwards 
compatible change to a tag interface.
   
  -1.1.2 "MAJOR" RELEASES
  +1.2 "MINOR" RELEASE
   
  -Major releases are denoted by incrementing the first portion of the release number. 
 For example, if the current release version is 2.0.4, then the next major release 
would become 3.0.  The developers _may_ perform a major release if there have been 
substantial improvements to the tag library.  The developers _must_ perform a major 
release if there is _any_ non-backwards compatible change to a tag interface.
  +Minor releases signify enhancements to a tag library that do not necessitate a 
major release.  If the developers change the tag library interfaces in a non-backwards 
compatible way, those changes _cannot_ be bundled in a minor release; a major release 
_must be performed_.  
   
  -1.1.3 "MINOR" RELEASES
  +1.3 "BUG FIX" RELEASES
   
  -Minor releases are denoted by incrementing the second portion of the release 
number.  For example, if the current release version is 2.0.4, then the next minor 
release would become 2.1.  A minor release involves new features or improvements to a 
tag library that do not necessitate a major release.  However a major release is 
_required_ if the developers change the tag library interfaces in a non-backwards 
compatible way.
  +A bug fix release involves simple bug fixes that do not introduce new features.  
Developers are not required to perform bug fix releases if they can address the bug in 
a minor release.
   
  -1.1.4 BUG FIX RELEASES
  +Developers are _strongly encouraged_ but not required to perform bug fix releases 
on previous major releases if a bug in that release is uncovered.
   
  -Bug fix releases are denoted by incrementing the third portion of the release 
number.  For example, if the current release version is 2.0.4, then the next bug fix 
release would be 2.0.5.  A bug fix release involves simple bug fixes that do not 
introduce new features.  Developers are not required to perform bug fix releases if 
they can address the bug in a minor release.  
  +1.4 "BETA" RELEASES
   
  -Developers are _strongly encouraged_ but not required to perform bug fix releases 
on previous major releases if a bug in that release is uncovered.
  +Developers may, at their option, perform a beta preview of any major, minor or bug 
fix release.  Beta releases may be performed for a variety of purposes such as:
  +
  +  * Showcasing new, untested features
  +  * Providing early corrections of critical bugs
  +  * Generating a stable version before large-scale changes
  +
  +Developers should attempt to describe the purpose behind the beta release in the 
"News" section of the site (see section 5 for details).  While every effort should be 
made to ensure the quality of released code, "beta" releases are essentially provided 
AS-IS with no guarantees of stability or maintenance.
  +
  +2 RELEASE NUMBERS
  +
  +2.1 INITIAL RELEASE NUMBER
  +
  +A tag library's initial release number is generally 1.0, unless there have been 
versioned beta releases.
  +
  +2.2 DISCECTING THE RELEASE NUMBER
  +
  +A release number is comprised of 2-3 components: the major release number, the 
minor release number, and an optional bug fix release number.  Here is a sample 
release number:
  +
  +  2.0.4
  +  
  +and it can be broken into three parts:
  +
  +  major release #   = 2 
  +  minor release #   = 0
  +  bug fix release # = 4
  +
  +The next release of this tag library would increment the appropriate part of the 
release number, depending on the type of release (major, minor, or bug fix).  For 
example, a subsequent minor release would be version 2.1, or a subsequent major 
release would be 3.0.
   
  -1.1.5 BETA RELEASES
  +2.5 "BETA" RELEASE NUMBERS
   
  -Developers may, at their option, perform a beta preview of any major, minor or bug 
fix release by appending the phrase "beta" to the released jar.  For example, if the 
current release version is 2.0.4, and the developer wished to preview the next major 
release, the jar would be named foo-3.0-beta.jar.
  +Beta releases are denoted by adding the phrase "beta" after the release number in 
the released archive.  For example, if the current release version is 2.0.4, and the 
developer wished to preview the next major release, the jar would be named 
foo-3.0-beta.jar.
   
  -1.2 STARTING/COMPLETING MAJOR RELEASES
  +3 STARTING/COMPLETING MAJOR RELEASES
   
  -Let's assume that the current release of your tag library is 2.0.4, but you want to 
start work on 3.0.  Here are the steps you would take to start working on the new 
release:
  +(See section 1.1 for the definition of a "Major" release.)  Let's assume that the 
current release of your tag library is 2.0.4, but you want to start work on 3.0.  Here 
are the steps you would take to start working on the new release:
   
     1) Make an announcement on taglibs-dev
     2) Create a branch called rel2 in CVS for the entire tag library,
  @@ -42,7 +68,29 @@
     2) After receiving approval, build the release jar and place it on the site
   
   The version 3 release is the main trunk of the CVS tree.  However, versions 2 and 1 
will still be available on other branches (rel2 and rel1), if other releases of that 
version prove necessary.
  +
  +4 DEVELOPMENT STATE
  +
  +Each tag library also has its development state listed on the main website.  There 
are four possible states: "in development", "beta", "released", and "unsupported".
  +
  +4.1 "IN DEVELOPMENT" STATE
  +
  +When a tag library is "in development", it is new and still relatively unstable.  
Typically tag libraries in this state do not have any binary releases available beyond 
the nightly builds.  Users should be made aware that this tag library may change its 
functionality before a stable release is achieved.
  +
  +4.2 "BETA" STATE
  +
  +When a tag library has made significant progress toward release-quality code, the 
committers may vote to perform a "beta" release (see section 1.4).  At this point, the 
tag libraries state will change from "in development" to "beta".  The tag library will 
remain in this state until it is ready for its first major release.
  +
  +Note that developers may skip vote to skip the "beta" state and go directly to 
"released", if the tag library is sufficiently stable.
  +
  +4.3 "RELEASED" STATE
  +
  +When a new tag library is finally production-quality, the developers will vote to 
perform the first major release (see section 1.1).  At this point, the tag libraries 
status will be changed from "beta" to "released".  In the future this tag library will 
always be considered to be in the "released" state, even when new releases are begun 
(section 3).  The only exception is in the case of "unsupported" tags.
  +
  +4.4 "UNSUPPORTED" STATE
  +
  +Under rare circumstances, the Taglibs committers may vote to make a tag library 
"unsupported", if there are no resources to maintain the library or if it has been 
completely supplanted by a superior tag library.  Only "released" tags may become 
"unsupported"; tags in other states will simply be terminated after a brief warning 
period.
   
  -2 NEWS
  +5 NEWS
   
   There will be a "news" section of the Jakarta taglibs site.  This portion of the 
site will provide a notification of each major, minor or bug fix release of each tag 
library.  Each release notification will link to the "news" section for that tag 
library, which will contain the details of what new features were introduced, which 
bugs were fixed, etc.
  
  
  

Reply via email to