Creating a Contributor Agreement for Your Project

Back in the MySQL days, there was a need to have a contributor agreement that made it clear under which terms code contributions to the MySQL code base could be accepted. This was a requirement due to the dual-licensing model of MySQL, under which the software was available both under the GPL and a proprietary license.

This agreement was further refined when MySQL was acquired by Sun Microsystems in 2008, which resulted in the “Sun Contributor Agreement” (SCA), which was used for all Open Source projects that were sponsored/governed by Sun Microsystems (e.g., Java, etc.).

The text of the agreement itself was licensed under a creative commons license (Creative Commons Attribution-Share Alike 3.0 Unported), and it was later used as the basis for contributor agreements of several other Open Source Projects, e.g. MariaDB or OwnCloud (even though both fail to give proper attribution to the original). In fact, the agreement still exists as the Oracle Contributor Agreement today, after Sun Microsystems was acquired by Oracle in 2010. If you would like to submit a patch to MySQL, you first need to get your name on the OCA Signatories List.

While doing some research on creating such a contributor agreement for openATTIC, I was pointed to this very useful resource:

“Contributor agreements are agreements between an open source or open content project and contributors to the project that set out what the project can do with the respective contribution: code, translation, documentation, artwork, etc. The purpose of such agreements is to make the terms under which contributions are made explicit and thereby protect the project, the users of the project’s code or content, and often the contributors themselves. Contributor agreements provide confidence that the guardian of a project’s output has the necessary rights over all contributions to allow for distribution of the product under either any license or any license that is compliant with specific principles.”

The nice part about this web site: it provides a guided Contributor License Agreement Chooser that allows you to compile a custom agreement based on the requirements (e.g. Copyright assignment, Patent clauses) that you define, similar to the Creative Commons License Chooser, where you can select the terms and conditions of your license to be guided to the appropriate choice.

So in case your project needs a contributor agreement, please don’t re-invent the wheel and consider making use of this site instead! There are way too many custom agreements floating around already…