Contributing to libcloud
This pages explains how you can contribute to the libcloud project.
Keep in mind that all kind of contributions are welcome (ideas, code, tests, documentation, examples, ...).
Process
- Start a discussion on the mailing list (this step is optional and only required if you want to implement big feature or a change)
- Open a new issue on the bug tracker (Jira)
- Fork libcloud github git repository* and make your changes
- Create a new branch for your changes:
git checkout -b jira_issue_id_change_name - Make your changes
- Write tests for your modifications and make sure that all the tests still pass. For more informations about running the tests refer to the Testing page.
- Create a patch with your changes
- git (format-patch):
git format-patch --no-prefix --stdout trunk > patch_name.patch - git (diff):
git diff --no-prefix trunk your_branch > patch_name.patch - svn:
svn diff > patch_name.patch - Attach patch to the ticket you have created
- Wait for your patch to be reviewed and / or accepted
Things To Keep In Mind
- Any non-trivial change must contain tests
- All the functions and methods must contain pydoc docstrings which are used to generate API documentation. You can find a lot of examples of docstrings in the existing code e.g. -
libcloud/compute/base.py
Note: If you want you can also use SVN repository, but git and github make branching and contributing a bit easier.
Style Guide
- We follow PEP8 Python Style Guide
- Use 4 spaces for a tab
- Make sure edited file doesn't contain any trailing whitespace
- Docstrings need to follow the conventions described on the Docstring Convetions page
You can verify that your modifications don't break any rules by running the pep8 script - pep8 libcloud/edited_file.py.
