Community Specifications

Introduction

Over the past several years, open source developers have become increasingly aware of the important role played by formal standards and specifications in technical collaboration.

Some of those communities have sought to undertake standards development activities in a similarly collaborative manner. In many cases, those communities have sought to do so via the same practices used for open source collaboration. This can include, for example, publicly-available drafts and released specification documents, stored in Markdown format and evolved via Git and pull requests, and discussed via publicly visible issue threads.

This model has worked successfully for many communities seeking to develop publicly-available standards. At the same time, some stakeholders have desired to implement practices that are somewhat more formalized and targeted to addressing standards-specific intellectual property considerations, while still maintaining the velocity and ease of contribution that arises from open source development practices.

The Community Specifications process is a lightweight process that is intended to serve as a middle ground for specification development efforts, enabling collaboration with repository-based methods while aligning the contributors towards more formalized standards development practices. It can enable a standards development effort to start small and work towards an end product that can more readily be submitted to traditional international standardization bodies.

Details

As described in the Community Specifications README file:

The Community Specification allows you to start a specification development effort as easily as an open source project. The Community Specification incorporates the terms and processes required for standards and specification development, including legal terms, intellectual property issues, due process, and governance. It also provides the mechanisms to allow your project to grow and scale. For example, the Community Specification provides the basis to take your specification to other standards bodies, including international standards bodies, for formal standardization if your community desires to pursue those options.

The Community Specifications process consists of the following:

The Community-Spec-1.0 license is targeted at providing grants to copyrights as well as patents, in a manner specific to the unique needs of standards and implementations of those standards. It does so in a way that is meant to include license grants from all applicable contributors to released specification, with a withdrawal mechanism that requires public notice and visibility forexclusions. The governance policy and contribution process help to reinforce the grants of IP rights reflected in the Community-Spec-1.0 license. The governance policy also promotes the essential nature of openness and other critical “due process” elements of standards development. The governance can be tailored within appropriate bounds to reflect, for instance, maintainership and other decision-making roles specific to a particular community.

Finally, the bundling of these and other applicable documents into a single repository makes it easy for a new standardization effort to fork the repo and get started.

Examples

Many specification development efforts have adopted the Community Specification process, including as a few examples:

Resources