Difference between revisions of "Library Component Versions"

From ADF Docs
Jump to: navigation, search
Line 13: Line 13:
 
The major number is increased when there are significant jumps in functionality, the minor number is incremented when only minor features or significant fixes have been added, and the revision number is incremented when minor bugs are fixed.  A typical component might use the numbers 0.9 (for beta software), 0.9.1, 0.9.2, 0.9.3, 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, etc.  Developers have at times jumped (for example) from version 5.0 to 5.5 to indicate that significant features have been added, but not enough to warrant incrementing the major version number, though this is improper.
 
The major number is increased when there are significant jumps in functionality, the minor number is incremented when only minor features or significant fixes have been added, and the revision number is incremented when minor bugs are fixed.  A typical component might use the numbers 0.9 (for beta software), 0.9.1, 0.9.2, 0.9.3, 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, etc.  Developers have at times jumped (for example) from version 5.0 to 5.5 to indicate that significant features have been added, but not enough to warrant incrementing the major version number, though this is improper.
  
 +
== Example of a major revision ==
 +
Here are a few examples of major revisions of ADF Library Components
  
[[File:adf_versions.png]]
+
=== Overhaul of internal methods ===
 +
scripts_1_0.cfc is the ADF Library Component that is used to load external 3rd party JavaScript libraries (e.g. jQuery).  It is coded to work with scriptService_1_0.cfc to manage which scripts are loaded into a page.  scriptService_1_0.cfc uses a request scope variable "request.scriptsExecuted".  If you were to make a modification to scripts_1_0.cfc to do internal script management (e.g. not to use scriptService_1_0) and modified each of the methods to use the new script management framework.
 +
 
 +
=== Culmination of many minor revisions ===
 +
Eventually, when many minor revisions are made (e.g. scripts_1_22) it makes more sense to "reset" the component (e.g scripts_2_0).
  
 
[[Category:Library]]
 
[[Category:Library]]

Revision as of 22:03, 7 March 2010

Overview

In the ADF library versioning schema, sequence-based identifiers are used to convey the significance of changes between releases: changes are classified by significance level, and the decision of which sequence to change between releases is based on the significance of the changes from the previous release, whereby the first sequence is changed for the most significant changes, and changes to sequences after the first represent changes of decreasing significance.


The ADF library components follows this version schema:

major_minor_revisions


In this schema, the ADF uses a three-sequence identifier, the first sequence may be incremented only when the code is completely rewritten, while a change to the function or the documentation may only warrant a change to the thrid sequence.


The major number is increased when there are significant jumps in functionality, the minor number is incremented when only minor features or significant fixes have been added, and the revision number is incremented when minor bugs are fixed. A typical component might use the numbers 0.9 (for beta software), 0.9.1, 0.9.2, 0.9.3, 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, etc. Developers have at times jumped (for example) from version 5.0 to 5.5 to indicate that significant features have been added, but not enough to warrant incrementing the major version number, though this is improper.

Example of a major revision

Here are a few examples of major revisions of ADF Library Components

Overhaul of internal methods

scripts_1_0.cfc is the ADF Library Component that is used to load external 3rd party JavaScript libraries (e.g. jQuery). It is coded to work with scriptService_1_0.cfc to manage which scripts are loaded into a page. scriptService_1_0.cfc uses a request scope variable "request.scriptsExecuted". If you were to make a modification to scripts_1_0.cfc to do internal script management (e.g. not to use scriptService_1_0) and modified each of the methods to use the new script management framework.

Culmination of many minor revisions

Eventually, when many minor revisions are made (e.g. scripts_1_22) it makes more sense to "reset" the component (e.g scripts_2_0).