There are some pretty exciting changes coming with regard to how we work on Joomla!.  In the near future we are going to be allowing developers to register accounts via our Joomla! Developer Network site and be given access to commit code to our subversion repositories with those accounts.  We will be keeping the trunk and release sections of our repository secured for trusted maintainers, but anyone will be able to create and work in branches so that more people can be working collaboratively on making Joomla! better.

While these changes are a fantastic step towards facilitating access to the core software, they also potentially expose the project to some problems.  Historically, gaining commit access to the core repository has come with earning the trust and favor of the existing committers.  This has kept the group relatively small, and given us all good assurances that the people who are committing code understand the ramifications, both legal and social, of having that privilege.  By opening up to self-registration we are losing some of that assurance, so we felt it was important to formalize the terms under which we accept contributions to our project repositories.  

I’ve spent quite a bit of time working with OSM, the Production Leadership Team, and obviously OSM’s attorneys to come up with what we believe to be a great solution to these challenges: the Joomla! Contributor Agreement (JCA).  The JCA is based on the Sun Contributor Agreement, version 1.5, by Sun Microsystems, but obviously reworked for our purposes.  My hope is that it will make expectations for both the contributor and the Joomla! project more clear as we move into the future.  What I am presenting here today are three draft documents, and I am asking for your feedback.

The JCA I am sharing with you today has been previously shared with everyone who currently has commit access to our repository via the email address listed in his or her JoomlaCode.org account, as well as with a considerable number of previous committers and key contributors for whom I have working email addresses.  We have collected some feedback and made a few adjustments to the draft, and now are looking for more general feedback from the broader community.

There are three editions of the JCA below for your review: general, corporate, and minor.  If you work for a company (or organization) that has any copyright claim over work you produce, the corporate edition is for you.  If you are under the age of eighteen years old, the minor edition is for you.  Otherwise, the general edition is for you.

I would greatly appreciate it if you can take a few minutes, read over the document that best applies to you, and provide feedback at: http://bit.ly/JCLA_Feedback.  The feedback that you give will help us refine any sections that might need clarification, or resolve any issues that may have been overlooked.  We will be creating a F.A.Q. list based on the feedback we get here as well.  Below are a few initial FAQ entries:

Why do we need a contributor agreement?

This is a good question.  Strictly speaking, we don't.  We could distribute Joomla! just like we always have without an agreement, and the world wouldn't end.

But there are a couple key advantages that a contributor agreement gives to the health of the project.  First, the agreement provides information and assurances that allow confidence in the copyright status of the codebase. We hope this will encourage third parties to build on top of Joomla!.

Second, the agreement allows us some license flexibility.  If, for example, we need to create a license for non-electronic documentation, the contributor agreement lets us do that.  Or if we want to LGPL a specific piece of Joomla!, the agreement gives us the ability to do that too.  This sort of flexibility lets us respond to the changing needs of a growing project while still guaranteeing that all our materials remain free software.

Who must sign the JCA before contributing?

Ideally, everybody who contributes to Joomla! or any other OSM supported project would sign the JCA.  But we are aware that some contributors will not want to take the extra effort, especially for one-time contributors of modest amounts of code.  As a compromise, the Joomla! Project requires a JCA from anybody who makes a significant contribution to Joomla! or any other OSM project.  "Significant" is, of course, a judgment call.  As a guideline, if you have more than 500 lines of code in the codebase, we need a JCA.  Additionally, to be granted commit access to our source code repository, we will need a JCA.

What rights do I give up when I sign the JCA?

The primary consequence of agreeing to the JCA is that, having granted the Joomla! Project a series of rights, you can't grant those rights to others on an exclusive basis.

Employer sign-offs make it harder for me to contribute. Why are they necessary?

We want it to be completely clear that the Joomla! codebase is not encumbered by any lurking claims from employers of our contributors. If your employer is going to claim some kind of copyright in the Joomla! codebase, we need to know that before we rely on your code and integrate it into the tree.  We appreciate that employer sign-offs are a paperwork burden for you and your employer, and we hope you understand why this is necessary.

Note: We will not be monitoring the comments thread for feedback on the JCA itself so please, if you have feedback, use the form at http://bit.ly/JCLA_Feedback.