# Contributing

This covers the basics you need to know for contributing to PyBlosxom.

## How to clone the project

PyBlosxom is on GitHub.

### If you have a GitHub account [Recommended]

This is the ideal way to contribute because GitHub makes things simple and convenient .

Go to the project page (https://github.com/pyblosxom/pyblosxom) and click on “Fork” at the top right on the screen. GitHub will create a copy of the PyBlosxom repository in your account for you to work on.

Create a new branch off of master for any new work that you do.

When you want to send it upstream, create a pull request.

If you need help with this process, see the GitHub documentation.

### If you don’t have a GitHub account

Clone the project using git:

    git clone https://github.com/pyblosxom/pyblosxom.git

Set `user.name` and `user.email` git configuration:

    git config user.name "your name"
    git config user.email "your@email.address"

Create a new branch off of master for any new work that you do.

When you want to send it upstream, do:

    git format-patch --stdout origin/master > NAME_OF_PATCH_FILE.patch

where `NAME_OF_PATCH_FILE` is a nice name that’s short and descriptive of what the patch holds and master should be replaced with your branch name

Then attach that `.patch` file and send it to pyblosxom-devel mailing list.

## Code conventions

Follow PEP-8.

## Tests

Please add tests for changes you make. In general, it’s best to write a test, verify that it fails, then fix the code which should make the test pass.

Tests go in `Pyblosxom/tests/`.

## Documentation

New features should come with appropriate changes to the documentation.

Documentation is in the `docs/` directory, written using restructured text, and built with Sphinx.