Index: openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml 4 Jun 2005 23:00:40 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml 14 Jun 2005 16:45:04 -0000 1.5 @@ -420,6 +420,9 @@ continue working on oacs-5-1 until OpenACS 5.2.0 is actually released. + + + Reason: First, this ensures that developers are working against stable core code. Second, it ensures that new package releases are available to OpenACS users immediately. @@ -455,10 +458,7 @@ - - Code should only be reformatted when functionality is - changed, e.g. when you change control flow and reindent to reflect - it. + Do not mix formatting changes with code changes. Instead, make a formatting-only change which does not affect the logic, and say so in the commit comment. Then, make the logic change in a separate commit. Reason: This makes auditing and merging code much easier. @@ -470,6 +470,17 @@ . + + Reason: If an upgrade script ends with the final release + number, then if a problem is found in a release candidate it cannot + be addressed with another upgrade script. E.g., the last planned + upgrade script for a package previously in dev 1 would be + upgrade-2.0.0d1-2.0.0b1.sql, not upgrade-2.0.0d1-2.0.0.sql. Note + that using rc1 instead of b1 would be nice, because that's the + convention with release codes in cvs, but the package manager + doesn't support rc tags. + + @@ -586,48 +597,8 @@ compatible with several different core versions, several compat tags should be applied. - - - - When OpenACS core is released, the openacs-x-y-z-final - tag shall be applied to all compat packages. - - - - - For example, adding a new API function wouldn't require a - TIP. Changing an existing API function by adding an optional new - flag which defaults to no-effect wouldn't require a TIP. Added a - new mandatory flag to an existing function would require a - TIP. - - - - - - Reasons - - We don't currently have clear standards for committing - code. - - - Rule 1.3: First, this ensures that developers are working - against stable core code. Second, it ensures that new package - releases are available to OpenACS users immediately. - - - Rule 3.4: If an upgrade script ends with the final release - number, then if a problem is found in a release candidate it cannot - be addressed with another upgrade script. E.g., the last planned - upgrade script for a package previously in dev 1 would be - upgrade-2.0.0d1-2.0.0b1.sql, not upgrade-2.0.0d1-2.0.0.sql. Note - that using rc1 instead of b1 would be nice, because that's the - convention with release codes in cvs, but the package manager - doesn't support rc tags. - - - Rule 5.1: Reason 1: The packagename tag is a permanent, + Reason 1: The packagename tag is a permanent, static tag that allows for future comparison. The compat tag is a floating tag which is used by the repository generator to determine the most recent released version of each package for each core @@ -636,17 +607,35 @@ OpenACS release team.Reason 2: The compat tags allows CVS users to identify packages which have been released since the last core release.Reason 3: The compat tag or something similar is required - to make Rule 6 possible. + to make Rule 6 possible. + + + + When OpenACS core is released, the openacs-x-y-z-final + tag shall be applied to all compat packages. + - Rule 5.2: This allows OpenACS developers who are creating + + Reason: This allows OpenACS developers who are creating extensively customized sites to branch from a tag which is stable, corresponds to released code instead of development code, and applies to all packages. This tag can be used to fork packages as needed, and provides a common ancestor between the fork and the OpenACS code so that patches can be generated. + - + + + + For example, adding a new API function wouldn't require a + TIP. Changing an existing API function by adding an optional new + flag which defaults to no-effect wouldn't require a TIP. Added a + new mandatory flag to an existing function would require a + TIP. + + +