Forum OpenACS Q&A: Re: Package Maturity Standards
Each package has a maturity level. Maturity level is recorded in the .info file for each major-minor release of OpenACS, and is the appropriate value for that release of the package.
<maturity> <platform id="openacs-core" version="5.0">-1 - Incompatible</platform> <platform id="openacs-core" version="5.1">2 - Mature</platform> </maturity>
Maturity level is visible in the Installer and when browsing the repository.
- 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 don't have it set explicitly, 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, include 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.
Could you give your estimation of the maturity of some example non-core packages ?
I like the idea but would change the implementation slightly so that the level # and description are encoded in different XML tags (or attributes). E.g.
<platform id="openacs-core" version="5.1"> <level descr="Mature">2</level> </platform>
This encoding style removes the need for parsing the maturity level string in your example and de-couples the description from the level #.