The Managed Operationg System Alliance applies the specification process described below for all specifications.
Announcing the new specification
If you plan on creating a new specification for a kernel service you should formally announce this on the mailing list to get other contributors interested in the topic to work with you and notice the development. If there is no negative reply to the announcement,
you can go ahead to the next step. If there are negative replies, you should carefully consider these responses. They may indicate that the specification should either be merged with another one or that it is incomplete in the point that there are additional
things to consider.
Creating a new specification
All specifications are located in the "RFC folder". In order to create a new specification you should create a new subfolder, which contains the clear name of the specification and a subfolder with the final intended version number. An example is
"Physical Memory Page Manager Version/1.0/".
The next step is to copy the "RFC Template", fill it up with your content and commit it in your folder. You should make sure that the modified template correctly points to the "RFC stylesheet" so that the specification is web accessible.
Announce updates on the mailing list
If you modify specifications in the proposal state you should work closely with other contributors working on the same specification. If you want a review of the current state of a specification, you should request this with a formal version number so that
others can chime in and review the specification.
Provide default implementations
Every specification, which standardizes a kernel services that requires code must also provide the interface definition in the
project and should provide at least one usable default implementation in the
. These code contributions must adhere to the
Interface Design Guide
and pass reviews for successful standardization. You must provide unit tests for the default implementation, as well as at least a
implementation to be able to host your interface in unit tests for other dependending components.
Standardizing a specification
A specification becomes standardized if it has reached the intended target version number, the interfaces and default implementation code has been committed and the specification as well as all code have passed all reviews.
Revoking a specification
A specification may be revoked only if it is superseded by a new specification. In that case this must be noted in the specification itself with a link to the proper new specification.