Skip to end of metadata
Go to start of metadata



We're glad you want to contribute to an Opscode Open Source project!

The process in a nutshell

  1. Sign up for an account on the Open Source Ticket Tracking System.
    1. This will, at the same time, create an identical account for you on the Wiki.
    2. We match the email address from your CLA to this account when giving additional privileges, so create this account first.
  2. Fill out a Contributor License Agreement. If your contribution is happening on behalf of a company, they should sign a Corporate Contributor License Agreement
    1. If you are covered by a Corporate Contributor License Agreement, you may not need an individual CLA, as long as your contributions flow through the corporation.
    2. We use Echosign to manage these agreements.
      After clicking on either agreement linked above, please fill out each required field and digitally sign by simply typing your name in the signature box.
    3. You'll know we've received it when a copy ends up in your email inbox.
    4. We will then process it and send you an introduction email. At this time you will appear on the Approved Contributors list, and are upgraded to a Developer on the Ticket Tracking System, which allows you to modify tickets and resolve them.
  3. Fork the project you would like to contribute to on GitHub.
  4. If you are actively working on an existing Ticket then assign that ticket to yourself.
  5. When you are through, provide instructions on the ticket as to what GitHub repository and branch to pull from, such as 'https://github.com/my_user/chef/tree/CHEF-xxxx', and set the ticket status to Resolved.
  6. The ticket will be closed once your changes have been tested, verified, and merged.

Opscode Sponsored Chef Projects

There are a number of other smaller projects, such as the mixlib libraries, that we sponsor as dependencies of Chef. You can find this in the Opscode Github account.

FAQ

Licensing and copyright


Why is your software Apache Licensed?

Opscode uses the Apache License Version 2 for its Open Source projects because it provides the same level of freedom for our users that we desire for ourselves. We've written extensively about why we chose the Apache License on our blog.

The following is an attempt to explain in plain english what the license means - it is tweaked from the Apache Licensing FAQ. This is not legally binding - the only authoritative source for the License is the License itself:

It allows you to:

  • freely download and use Opscode software, in whole or in part, for personal, company internal, or commercial purposes;
  • use Opscode software in packages or distributions that you create.

It forbids you to:

  • redistribute any piece of Opscode-originated software without proper attribution;
  • use any marks owned by Opscode in any way that might state or imply that Opscode endorses your distribution;
  • use any marks owned by Opscode in any way that might state or imply that you created the Opscode software in question.

It requires you to:

  • include a copy of the license in any redistribution you may make that includes Opscode software;
  • provide clear attribution to Opscode for any distributions that include Opscode software.

It does not require you to:

  • include the source of the Opscode software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it;
  • submit changes that you make to the software back to Opscode (though such feedback is encouraged).

It is our goal to run a successful, truly open source business. To that end, we are protecting our own rights by making them explicit in our choice of licensing - you have the same rights to our open source software that we do.

How should I update the header file of my contribution to properly credit earlier contributors and recognize copyrights?

You need to put attribution about the origins of some of the code in the NOTICE file for your app. On an individual header, you can add yourself as an author/copyright holder, placing text in the header file saying that your new work is based on previous work, and referencing the original header below.

If the original file is lacking the license header, please let us know, so we can add one. Even in their absence, they are covered by the Apache 2 license.

Do I need the agreement of anyone else whose authorship/copyright I come across?

You can re-use the work without having to get the agreement of the original authors, as long as

  1. you're not going to be changing the licensing terms at all (ie: you maintain and fulfill Apache 2 licensing requirements) and
  2. you don't modify the fact that the code you are incorporating remains copyrighted by the original authors.

The Apache License grants these rights to those who receive a copy of the software.


CLAs and CCLAs


Why do I need to fill out a CLA?

The CLA (and CCLA) makes everyone's rights clear. It states:

  • You grant copyright license for your contributions to Opscode
  • You grant patent license for your contributions to Opscode
  • Your contribution is entirely voluntary
  • Your work is your original creation
  • You are not required to provide support for your contributions

You should read and understand the entire CLA before signing it. This description is not legally binding - please understand the CLA by reading the CLA.

The CLA is beneficial to our contributors and users because:

  • It ensures that we will always be able to release our projects, free from any individual contributor revoking our rights to distribute their contribution.
    This also means that, if you fork an Opscode project, or utilize it in a commercial product, you know that you are clear of patent and copyright issues.
  • It makes clear what is required of our contributors.

The most important thing about the CLA is that it doesn't give Opscode any special rights - it just makes things more explicit.

Can you accept my contribution without a CLA (I'll sign it later, I promise!)?

No. We must have a signed CLA before we can merge your changes to any of our projects - no exceptions.

When do I need to have my company sign a CCLA?

If you are contributing to an Opscode project while doing work on company time, or utilizing company resources, you should have your company sign a CCLA.

How do I add additional employees to my existing CCLA?

The point of contact from your CCLA should email legal@opscode.com with the full name and email address of the individuals account on tickets.opscode.com that they would like added.

How do I change the point of contact on my existing CCLA?

If you need to update the point of contact for the CCLA, the current contact should email legal@opscode.com with the full name and email address of the new contact. If the existing contact is no longer available, please contact us and we will help you out.


Contribution Process


Do I have to use GitHub for my fork of the repository?

Nope - but it makes everyone's lives easier if you do. We'll be happy to pull from any repository you like, though.

Why do I need to have a ticket associated with my patch?

Because it helps us coordinate the changelog for future releases, and because it gives us a way to remember who to give credit to.

You use GitHub, why don't you use GitHub Pull Requests?

We use JIRA extensively for both our open source projects and for our own internal projects. As such, we don't interact around the GitHub issues/pull request system very often, as it doesn't integrate. You are welcome to open a pull request, and link to that when updating a ticket for a contribution as it does make it easy to track branches and commits.

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.