The CommonJS group has, to date, operated in an informal manner. Our goal is to make meaningful progress toward these goals:
- Design reasonable APIs for common application needs
- Document those designs
- Implement those designs in different interpreters and environments
The process followed through the development of CommonJS 0.5 has been:
- Discussion of an API area is started on the mailing list
- A page is created on the wiki to collect proposals and prior art
- Further discussion and iteration on the proposals
- A rough consensus is reached
- The proposal graduates from the wiki to this website
So far, achieving rough consensus among the group has been a successful route to meeting these goals. Everyone involved has interoperability on their mind and interop necessarily involves compromise and minimal bikeshedding.
As applications built upon the CommonJS APIs start appearing, we will likely need more process to handle changes to the API.
For an interesting take on API design from a highly regarded master, take a look at this tech talk by Josh Bloch.