Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v diff -u -r1.51 -r1.52 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 27 Oct 2014 16:39:18 -0000 1.51 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 7 Aug 2017 23:47:49 -0000 1.52 @@ -1,5 +1,5 @@ -
By Ron Henderson, Revised by Joel Aufrecht
+By Ron Henderson, Revised by Joel Aufrecht
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.@@ -71,24 +71,32 @@ <maturity>1</maturity> <callbacks> ... -
- Level -1: Incompatible. This package is not supported for this platform and should not be expected to work. -
- Level 0: New Submission. This is the default for packages that do not have maturity explicitly set, - and for new contributions. The only criterion for level 0 is that at least one person asserts that it works on a given platform. -
- Level 1: Immature. Has no open priority 1 or priority 2 bugs. Has been installed by at least - 10? different people, including 1 core developer. Has been available in a stable release for at least 1 month. Has API documentation. -
- Level 2: Mature. Same as Level 1, plus has install guide and user documentation; - no serious deviations from general coding practices; no namespace conflicts with existing level 2 packages. -
- Level 3: Mature and Standard. Same as level 2, plus meets published coding standards; - is fully internationalized; available on both supported databases. +
Level -1: + Incompatible. This package is not supported for this + platform and should not be expected to work.
Level 0: New + Submission. This is the default for packages that do + not have maturity explicitly set, and for new contributions. The + only criterion for level 0 is that at least one person asserts + that it works on a given platform.
Level 1: + Immature. Has no open priority 1 or priority 2 + bugs. Has been installed by at least 10? different people, + including 1 core developer. Has been available in a stable + release for at least 1 month. Has API documentation. +
Level 2: + Mature. Same as Level 1, plus has install guide and + user documentation; no serious deviations from general coding + practices; no namespace conflicts with existing level 2 + packages.
Level 3: Mature and + Standard. Same as level 2, plus meets published + coding standards; is fully internationalized; available on both + supported databases.
Level 4: + Deprecated. The package was in some earlier version + is use, but was probably replaced by a another package. The + package description should point to a preferred version.
Database upgrade scripts must be named very precisely in order for the Package Manager to run the correct script at the correct time.
Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql
If the version you are working on is a later version than the current released version, OLDVERSION should be the current version. The current version is package version in the APM and in /packages/myfirstpackage/myfirstpackage.info
. So if forums is at 2.0.1, OLDVERSION should be 2.0.1d1. Note that this means that new version development that includes an upgrade must start at d2, not d1.
If you are working on a pre-release version of a package, use the current package version as OLDVERSION. Increment the package version as appropriate (see above) and use the new version as NEWVERSION. For example, if you are working on 2.0.1d3, make it 2.0.1d4 and use upgrade-2.0.1d3-2.0.1d4.sql
.
Database upgrades should be confined to development releases, not alpha or beta releases.
Never use a final release number as a NEWVERSION. If you do, then it is impossible to add any more database upgrades without incrementing the overall package version.
Use only the d, a, and b letters in OLDVERSION and NEWVERSION. rc is not supported by OpenACS APM.
The distance from OLDVERSION to NEWVERSION should never span a release. For example if we had a bug fix in
acs-kernel on 5.1.0 you wouldn't want a file upgrade-5.0.4-5.1.0d1.sql since if you subsequently need to provide a 5.0.4-5.0.5 upgrade you will have to rename the 5.0.4-5.1.0 upgrade since you can't have upgrades which overlap like that. Instead, use upgrade-5.1.0d1-5.1.0d2.sql