Code Formatting and Style
Please follow the projects agreed upon code standards when making contributions. We strive to be PEP-8 compliant. You can read more about linting practices and other coding-style related topics at the Code Style and Linting Practices page.
We strive to ensure that the code we release on this project works as expected. When making a contribution to the project be sure to run the test suites for the relevant components before submitting your contribution. If you follow the project's dependency installation guide you will end up with nose installed which can make running tests easier.
chmod a+x test.sh ./test.sh
Creating a Pull Request on Github
Pull Requests via Github are the primary means through which contributions are made to the codebase. We maintain an identical workflow for contributors and committers alike.
Apache Climate Project on Github: https://github.com/apache/climate
Apache Climate JIRA issue tracker: https://issues.apache.org/jira/browse/CLIMATE/
Prerequisites to Contributing
You will need to fork the project on Github and clone it to your local machine. You will need an account of Github in order to fork the project.
Fork the project
Click the "Fork" button on the top-right side of the project page on Github.
Clone the project
Find the SSH/HTTPS clone URL on the ride side of the page on your forked version of the codebase (www.github.com/<your username here>/climate)
Run the following command using the above URL in your terminal.
git clone <ssh/https clone url>
- Create/locate an issue on JIRA and save the Issue Number for later use (i.e. CLIMATE-381).
Create a Branch and name it using the JIRA Issue Number from Step 1
git checkout -b CLIMATE-381
Do your work on the branch and commit your changes. You code should be PEP-8 compliant! Please follow a reasonable set of guidelines when forming your commit message. The short first line summary should include the issue number from JIRA. Please be as consistent as possible with existing commit messages. For instance, we favor using a hyphen as a bullet point in our commit messages. Additionally, please write the messages in the imperative. It is recommended that you setup your editor of choice to handle this formatting for you.
CLIMATE-381 - Remove Incubator references in setup.py - Remove '-incubating' postfix from version number. - Remove '.incubating' from project URL. - Update author email to point to firstname.lastname@example.org
Push your branch to your repo on Github
git push origin CLIMATE-381
- Log into Github and Create Pull Request via:
Be sure to include the ticket number in the title. Ex: "CLIMATE-381 - My PR Title Here" to ensure that everything mirrors correctly to JIRA.
Submitting a Patch
While not the preferred means of receiving contributions (see above), the project also accepts patches posted on a relevant ticket. The first 3 steps from above are the same here. From the branch where you made your commits you can generate a patch with the following:
git format-patch master --stdout > CLIMATE-###-<your name/username>.patch
Post that output file onto the relevant ticket.
Committing to the Master
If you have commit karma on the project be sure to clone the ASF repo found here:
$ git clone https://git-wip-us.apache.org/repos/asf/climate.git
Add the project's Github mirror as an additional remote.
$ git remote add github https://github.com/apache/climate.git
When a pull request comes in a notification will be posted on the related JIRA ticket (assuming the user followed the above directions). This notification will tell you the pull request number. Fetch the pull request with:
$ git fetch github refs/pull/<pull request number here>/head:CLIMATE-<ticket number here>
Checkout the branch and validate the request (tests work, etc). Checkout master and merge in the changes with:
$ git merge --no-ff CLIMATE-<ticket number here>
When adding the merge commit message be sure reference the pull request number so it is closed properly. For instance, "close #<pull request number here>". Checkout Github's help pages for message formatting help. Publish the changes to the ASF repo with:
$ git push origin master
Lewis John McGibbney
Hi Cam and Mike... thank you adding this page.
We defo need to link to this from the main site.