based on some of the discussion so far, here's a semi-concrete, semi-fragmentary proposal for how to govern releases and project snapshots. this is my work alone, nobody asked me to do this, but it's an attempt at a vaguely constructive entry into the current discussion furball.
feel free to steal any or all of this for your own proposals. overall goals: encourage widespread release and testing of prototypes require clear labelling of the origin of all releases require community-wide rough consensus for a release attributed to the community. In the following, "Group" means a "community group", "Community" refers to the entire Opensolaris community. ---- Project Releases: Opensolaris projects are encouraged to release source and binary snapshots for testing as frequently as resources permit to ensure that people interested in a project can try its current state. Test source and binary releases should clearly identify the project or projects in control of the test release in file names, urls, etc., used for a distribution so that test releases are not mistaken for a formal production-ready release. Groups and Projects are ultimately responsible for defining their own release criteria and approval process. As a baseline, using the terms defined in section 8.4 of the the opensolaris constitution, snapshot/test builds should happen via assumed approval; transition into a period of nearly-final test releases (betas, release candidates, etc.,) should have majority approval, while "final" releases should happen by consensus. Changes from this baseline require Group consensus. Community Releases: As an operating system, OpenSolaris involves the output of many Groups and Projects. A release attributed to the Community as a whole must involve the consensus and support of the Community as a whole. The OGB has the power to charter a Project or other committee to oversee a Community release. Prototype or test builds (clearly identified as such) may be produced by the release committee as by any other project. As unanimity in a large group is nearly impossible to achieve, we instead require well-documented rough consensus. A formal Community release must be preceded by a public, non-anonymous poll of all Core Contributors. In advance of the poll, a release candidate shall be published. (note: similarity to the IETF's IESG voting procedure is intentional) Poll responses include: 1) Yes This indicates that the Core Contributor has personally tested the release candidate and believes it is ready to go. 2) No Objection This indicates that the Core Contributor has no objection to the release but has not personally tested the release candidate. 3) Not Ready: list of <bugid> (plus additional rationale). One can not simply vote "No" without further explanation; one must indicate specific defects that you believe must be fixed before the release is ready. --- After the polling period concludes, several things must happen: - There must be at least <TBD-threshold-1> responses and <TBD-threshold-2> Yes responses to the poll. - The release committee must make a public response to each Not Ready response. - There must be consensus among the release committee after review of objections that the release is ready. Decisions by the release committee may be appealed to the OGB. The release approval process shall be reviewed by the Community, and, if necessary, amended through proposals to the OGB after each release. ------- - Bill