OpenSocial Specification Definition Process Background
OpenSocial is a community product, which isn’t
owned by any one company or individual, and it is important that the technical
specification is driven by that community. This document outlines the steps by
which that community operates to make changes to the OpenSocial specification
(including the gadgets sub-component).
The discussion forum for new contributions and archive of past discussions is
located at: http://groups.google.com/group/opensocial-and-gadgets-spec/topics Borrowing from the IETF, the model of "(rough) consensus and running code" fits reasonably well for the OpenSocial specification community process. That is, prior to a proposal making its way into an official specification, it must gather community support for the idea as well as prove the concept through a running prototype. To that end, the process is laid out to require positive agreement from at least 5 members of the community. In addition, if any negative “vote(s)” are cast, then a given proposal will not be included unless the negative vote(s) are rescinded. Producing a new version of the specification is a large undertaking, requiring work by a lot of people, and thus it is not desirable to iterate too quickly. However, since OpenSocial is still evolving, it is important to enable the specification to be responsive to needs of the community. It is expected that a new version will be produced every 3 or 4 months (typically 3 months for the specification definition and prototyping and then a 1 month gap before the next version begins). Contributions & Intellectual Property Since participation is open to anyone, to help ensure OpenSocial remains freely impelementable by all, the OpenSocial Foundation has created an intellectual property rights management structure to enable a broad range of contributions while still helping protect implementers of the spec. This means that, prior to contributing to the specification, individuals must submit the OpenSocial Foundation’s Contribution Licensing Agreement (THIS FORM WILL BE AVAILABLE IN THE COMING WEEKS). Additionally, prior to finalizing the specification, all contributors must submit the OpenSocial Foundation non-assert agreement (THIS FORM WILL BE AVAILABLE IN THE COMING WEEKS).
Note: the version cycles are typically not run back to back -- and there is typically a month in between each cycle -- to allow for more experience/feedback about the prior version.
During this phase, contributors may submit proposals, and discuss on the list to get agreement on what features will be in scope for development in this version. Following the details below, anyone may contribute a proposal to the discussion. For a proposal to be officially recognized: 1) The contributor/author must have already submitted the OpenSocial Foundation Contributor Licensing Agreement (CLA) indicating the intent to non-assert and license his/her contributions. 2) The proposal must be listed on the “current proposals” page of wiki.opensocial.org and have a corresponding page on the wiki with the proposal details. 3) For clarity, the subject line for the forum thread should clearly indicate the area of the specification impacted as well as the type of change being proposed. Areas of the specification: OpenSocial JavaScript, gadget JavaScript, gadget XSD, markup, templates, REST, etc. NOTE: Given the issues associated with introducing breaking changes, any proposals that involve a breaking change to an API that existed in the prior version MUST indicate “Breaking Change” in the subject as well.
Proposals that do not gain enough traction to be included in the
specification version under discussion may be listed on the v.NEXT wiki page,
for discussion at a later time.
During this phase, a given idea should be prototyped and fully specified for a vote. A prototype implementation is an important milestone to help ensure the specification can be well-defined, and allows more testing against expected use cases. Please note that all official specification proposals must be submitted as patches (to the JS, HTML, etc) against the canonical copy in subversion. Certainly, discussions leading to a proposal on the list are very appropriate, but, to ensure concise and comprehensive proposals, a change cannot be included until after it has been specified (like in a .patch file). It is also helpful to consider patching the OpenSocial compliance testing suite. Phase 4: Review full specification draft This phase allows for the near-final review of all specification changes that have been accepted for this version. For any discrepancies, the typical 5 votes (and no negative votes) will be required to resolve any differences. At the end of phase, a vote to make this an official specification will be taken (it will become official with the typical 5 +1's with no negative votes). Phase 5: Final publication Once the group has voted to make a specification official, all contributors to that specification must now submit the OpenSocial Foundation patent non-assert document (THIS FORM WILL BE AVAILABLE IN THE COMING WEEKS). Upon receiving the appropriate signatures, the new version is ready for official publication on OpenSocial.org.
Roles definition There are a few different roles of people involved with the OpenSocial specification evolution.
Changes to this process Proposals to change this process should be proposed and discussed on the list. For a given change to come into effect, it will need to gather 5 +1's and no negative votes over at least a 5 day period. Depending upon the severity of the change, the group may decide to introduce the change in a future version (especially if it comes up in the middle of a version cycle). Withdrawal from this process If a contributor wants to stop participating in work on a particular specification version, the contributor must notify the Specification Editor and the Version Shepherd at their respective email addresses. Before withdrawing, the contributor should contact the Specification Editor to discuss the status of any proposals submitted by the contributor and whether the contributor still intends to submit a patent non-assert with respect to the specification. The Specification Editor can then decide whether modifications to the specification will be necessary. Upon withdrawal, the contributor will not be permitted to submit any further contributions to the specification. Note that any legal rights a contributor has granted prior to withdrawal will survive, such as any copyright grants or patent non-asserts. |