## Contributing

If you make changes to Venus, you have no obligation to share them. And unlike systems based on `CVS` or `subversion`, there is no notion of “committers” — everybody is a peer.

If you should chose to share your changes, the steps outlined below may increase your changes of your code being picked up.

### Documentation and Tests

For best results, include both documentation and tests in your contribution.

Documentation can be found in the `docs` directory. It is straight XHTML.

Test cases can be found in the tests directory, and make use of the Python Unit testing framework. To run them, simply enter:

>     python runtests.py

### Bzr

If you have done a bzr get, you have already set up a repository. The only additional step you might need to do is to introduce yourself to bzr. Type in the following, after replacing the bold text with your information:

>     bzr whoami 'Your Name <youremail@example.com>'

Then, simply make the changes you like. When you are done, type:

>     bzr st

This will tell you which files you have modified, and which ones you may have added. If you add files and you want them to be included, simply do a:

>     bzr add file1 file2...

You can also do a `bzr diff` to see if there are any changes which you made that you don't want included. I can't tell you how many debug print statements I have caught this way.

Next, type:

>     bzr commit

This will allow you to enter a comment describing your change. If your repository is already on your web server, simple let others know where they can find it. If not, you can simply ftp or scp the files to your web server — no additional software needs to be installed on that machine.

### Telling others

Once you have a change worth sharing, post a message on the mailing list.

Also, consider setting up a bzr-feed for your repository, so people who wish to do so can automatically be notified of every change.

There now is even an nascent planet being formed which combines these feeds of changes. You can subscribe to it too.