The CDK is an open source project open to contribution from anyone who chooses to do so. Anyone may contribute anything to the project they wish. This includes, but is not limited to: code, build system enhancements, documentation, examples, and supporting tools. There are, however, a few guidelines, as well as even fewer hard rules we ask you to follow.
In order to accept any contribution, the contributor must complete and return a Contributor License Agreement, or CLA. Separate CLAs exist for individuals (an individual contributor license agreement, or ICLA) and corporations (a CCLA). The CLA grants a copyright and patent license to Cloudera, and users of the software, states that you are legally entitled to grant such a license, as well as other important stuff. See the Cloudera ICLA and Cloudera CCLA files included with this software for all of the details.
Completed CLAs may be emailed to cla@cloudera.com, faxed, or snail mailed to Cloudera.
This project uses Github. Pull requests are the easiest form of contribution to accept and preferred. If this sounds like Klingon to you, Github has an excellent description of using pull requests. We follow the Fork & Pull model described in the Github documentation.
Contributions are strongly encouraged. It’s the easiest way to get the features you want into the code, and fast. However, the project maintainers are tasked with developing software for many people with diverse requirements and, as a result, may not accept all contributions. Here are some tips for ensuring a contribution is accepted.
It’s really important to remember that many people use this software. Features, improvements, or changes that do not apply to a wide audience may not make sense to include in the project. Put yourself in other people’s shoes and ask if this is something that is useful to them.
It’s critical that the code base, docs, and examples behave and look the same. If some parts of the code use different libraries to do the same thing, have slightly different semantics or guarantees, use different naming conventions, or track different standards, it’s very likely your contribution can’t be accepted. Put yourself in the shoes of a new contributor; they should only have to learn a single way of doing things.
It’s likely that you’ll receive feedback on your contribution, especially those who are new to contributing to open source projects. Don’t panic! We’re all very nice people. Keep a few things in mind:
Disagree and commit
Sometimes, there’s no compromise, no middle ground. Sometimes, people are just going to see things differently. Some people like baseball; not everything in life makes sense. When this happens, please understand we’re all just trying to do what we think is right. If a contribution is rejected, or something doesn’t make sense, tell us, accept the decision, and move on.
Watch this: http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1642
Now watch it again: http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1642