WARNING: This is the _old_ Lustre wiki, and it is in the process of being retired. The information found here is all likely to be out of date. Please search the new wiki for more up to date information.

Contribution Policy: Difference between revisions

From Obsolete Lustre Wiki
Jump to navigationJump to search
No edit summary
 
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Getting Started ==
<small>''(Modified: July 2013, FURTHER CHANGES PENDING)''</small>


We are very excited to receive outside contributions -- many of our employees first became involved with Lustre® by making patches and demonstrating their expertise as outsiders.
Before you contribute code to Lustre® or obtain write access to the Git repository, you must sign a Contributor Agreement] and return it to [mailto:lustre@xyratex.com lustre@xyratex.com]. We require this step for several reasons:


Learning enough about Lustre to make serious changes is a fairly daunting task: Lustre solves a lot of very challenging problems, and doing so inevitably requires complexity. Unfortunately, as is the case with too much software, there is not a lot of detailed documentation about the internals of Lustre. In many places the APIs are decent and the functions self-explanatory; in many places they are not.
* We need to make sure that you only contribute code that you own. By certifying that you wrote the code (and that you control the rights), you take legal responsibility for your contribution.


The [http://wiki.lustre.org/index.php?title=Front_Page#Developer_Resources Developer Resources section]  includes basic information about how to check out code, patch your kernel, build a tree, and run simple tests. If you run into difficulties you may be able to get help from the [http://wiki.lustre.org/index.php?title=Mailing_Lists lustre-discuss mailing list].
* By agreeing to joint ownership of the copyright, you make it easier for us to protect the project and company from license violations, as only the copyright holder is empowered to act against violations (see the [http://www.gnu.org/licenses/why-assign.html Free Software Foundations's comments] about this topic).


== One Legal Hurdle ==
* By signing the agreement, you also make it possible for us to continue to sell and distribute Lustre under other licenses, including non-free licenses. This business model is what pays the bills, allowing us to maintain and improve Lustre, release the code under an open source license, and participate in open development.


Before you can contribute code to Lustre, or get write access to the CVS repository, you need to sign and return our [http://wiki.lustre.org/images/3/38/Lustre-contributor-agreement.pdf Joint Copyright Agreement]. We require this step for several reasons:
Because you remain a copyright holder of the code you contribute, you can use the code in almost any fashion. Of course, this only applies to the software that you contribute, not software written by others.


* We need to make sure that you're only contributing code that you own. By certifying that you wrote the code (and that you control the rights), you take legal responsibility for your contribution.
We will gladly acknowledge your authorship in the source code. If you make a substantial contribution, please update the boilerplate at the top of the source file as part of your patch.


* By agreeing to Joint Copyright, you make it easier for us to protect the project and company from license violations -- only the copyright holder is empowered to act against violations (see the [http://www.gnu.org/licenses/why-assign.html FSF's comments] about this topic).
Finally, if you write software for a living (or attend a university),  your organization may own all of the software that you create. In this case, you have three options:


* You also make it possible to continue to sell and distribute Lustre under other licenses, including non-free licenses. This business model is what pays the bills, allowing us to maintain and improve Lustre, release the code under an open source license, and participate in open development (which, generally speaking, pays few of the bills).
* Have an officer or authorized representative of the organization contribute the software.
 
* Get an officer or authorized representative of the organization to waive its rights to your software so that you can contribute it yourself. In this case, please enclose a short waiver signed by the officer.
Because you remain a copyright holder of what you wrote, you can use the code you contributed in almost any fashion. Of course, this only applies to the software that you contribute, not software written by others.
 
We will gladly acknowledge your authorship in the source code -- our point is not to try to take credit for your work. If you make a substantial contribution, please update the boilerplate at the top of the source file as part of your patch.
 
Finally, if you write software for a living (or attend a university), there is a good chance that your organization owns all of the software that you create. In this case, you have three options:
 
* Get an officer or authorized representative of the organization to contribute the software.
* Get an officer or authorized representative of the organization to waive its rights to your software, so that you can contribute it yourself. In this case, please enclose a short waiver signed by the officer.
* Do not contribute the software.
* Do not contribute the software.


You are responsible for making sure that you control the rights to the software before you contribute it -- if there is any doubt, please consult the organization or an attorney. If you ever find that you contributed software that you shouldn't have, for any reason, please notify us right away.
You are responsible for making sure that you control the rights to the software before you contribute it. If in doubt, please consult your organization or an attorney. If you ever find that you have contributed software that you shouldn't have for any reason, please notify us right away.
 
== Making a Contribution ==
 
When you're ready to have your patch reviewed and committed, please do so via Bugzilla. Learn the following process.
 
=== Submitting Patches for Review ===
 
To have your changes accepted into a mainline Lustre branch, you must have your code reviewed and approved. The following steps will speed up your review and increase the likelihood of success:
 
1. Read, complete, and return the form found at http://www.lustre.org/contribute.html  We can't accept your contributions without it.
 
2. Generate a patch with the "-upN" flags to diff or cvs diff. Please don't send other kinds of patches unless your reviewer requests them.
 
3. Find or file a bug for your issue at http://bugzilla.lustre.org/ . Read the Bugzilla user guide for more information.
 
4. Attach your patch as an Attachment (not a comment):
* Provide the patch as an Attachment, and select the Patch box.
* Edit the new attachment. Under "Flags" select "Review" and the question mark.
* Enter the email address of the person who should review.  If you haven't been collaborating with someone, and don't know who should review your work, try [mailto:bugs@clusterfs.com bugs@clusterfs.com]
* Submit the attachment update.
 
5. One or more reviewers will submit comments regarding your patch. Iterate until you receive approval on the patch or the bug is closed.
 
6. Once you have approval, commit the patch (or ask for it to be committed for you, if you don't have CVS access). Note the bug number and reviewer in the commit message, along with a concise description of the change.
 
This applies even if you have write access to the CVS tree -- if you don't follow these steps, expect your changes to be backed out of the tree without warning.  We have to be strict, or the chaos becomes unbearable.
 
=== Branches ===
 
Our current policy is that anyone may create and maintain a private branch in CVS. We ask, however, that you observe the best practices outlined in this document. It will save you a lot of effort, I promise.
 
If you've demonstrated a history of good work by submitting several non-trivial and correct patches, you may want to have write access to the CVS tree (or a [http://www.clusterfs.com/jobs.html job at CFS]). [http://www.clusterfs.com/contact.html Let us know!]

Latest revision as of 09:50, 24 July 2013

(Modified: July 2013, FURTHER CHANGES PENDING)

Before you contribute code to Lustre® or obtain write access to the Git repository, you must sign a Contributor Agreement] and return it to lustre@xyratex.com. We require this step for several reasons:

  • We need to make sure that you only contribute code that you own. By certifying that you wrote the code (and that you control the rights), you take legal responsibility for your contribution.
  • By agreeing to joint ownership of the copyright, you make it easier for us to protect the project and company from license violations, as only the copyright holder is empowered to act against violations (see the Free Software Foundations's comments about this topic).
  • By signing the agreement, you also make it possible for us to continue to sell and distribute Lustre under other licenses, including non-free licenses. This business model is what pays the bills, allowing us to maintain and improve Lustre, release the code under an open source license, and participate in open development.

Because you remain a copyright holder of the code you contribute, you can use the code in almost any fashion. Of course, this only applies to the software that you contribute, not software written by others.

We will gladly acknowledge your authorship in the source code. If you make a substantial contribution, please update the boilerplate at the top of the source file as part of your patch.

Finally, if you write software for a living (or attend a university), your organization may own all of the software that you create. In this case, you have three options:

  • Have an officer or authorized representative of the organization contribute the software.
  • Get an officer or authorized representative of the organization to waive its rights to your software so that you can contribute it yourself. In this case, please enclose a short waiver signed by the officer.
  • Do not contribute the software.

You are responsible for making sure that you control the rights to the software before you contribute it. If in doubt, please consult your organization or an attorney. If you ever find that you have contributed software that you shouldn't have for any reason, please notify us right away.