Title: Contributing ## 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

1. Start a discussion on the [mailing list](devinfo.html) (this step is optional and only required if you want to implement big feature or a change) 1. Open a new issue on the [bug tracker](https://issues.apache.org/jira/browse/LIBCLOUD) (Jira) 2. Fork libcloud [github git repository](https://github.com/apache/libcloud)* and make your changes 1. Create a new branch for your changes:`git checkout -b jira_issue_id_change_name` 2. Make your changes 3. 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](/testing.html) page. 3. Create a patch with your changes 1. git (format-patch): `git format-patch --no-prefix --stdout trunk > patch_name.patch` 2. git (diff): `git diff --no-prefix trunk your_branch > patch_name.patch` 3. svn: `svn diff > patch_name.patch` 4. Attach patch to the ticket you have created 5. 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](http://codespeak.net/~mwh/pydoctor/) 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

1. We follow [PEP8 Python Style Guide](http://www.python.org/dev/peps/pep-0008/) 2. Use 4 spaces for a tab 3. Make sure edited file doesn't contain any trailing whitespace You can verify that your modifications don't break any rules by running the `pep8` script - `pep8 libcloud/edited_file.py`.