--- layout: default title: CommonJS Process --- CommonJS Process ================ The CommonJS group has, to date, operated in an informal manner. Our goal is to make meaningful progress toward these goals: 1. Design reasonable APIs for common application needs 2. Document those designs 3. Implement those designs in different interpreters and environments The process followed through the development of CommonJS 0.5 has been: 1. Discussion of an API area is started on the mailing list 2. A page is created [on the wiki][wiki] to collect proposals and prior art 3. Further discussion and iteration on the proposals 4. A rough consensus is reached 5. 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. Further reading --------------- For an interesting take on API design from a highly regarded master, take a look at [this tech talk by Josh Bloch][bloch]. [wiki]: http://wiki.commonjs.org/ "CommonJS Wiki" [bikeshedding]: http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality "Parkinson's Law of Triviality" [bloch]: http://www.youtube.com/watch?v=aAb7hSCtvGw "Josh Bloch on API design"