.. _contribute:

Contributing to the project
=====================================

PsychoPy is an open-source project. It was originally written by `Jon Peirce`_ to run vision science experiments in his lab. He felt that others might find it useful and made it available by releasing it for free on the web.

Why make it free?
---------------------
It has taken thousands of hours of programming to get PsychoPy where it is today and it is provided absolutely for free. If he had chosen to make people pay for PsychoPy then he could have spent all his time working on the code and fixing bugs. Because he made it free he has to work for a living and do this in odd spare moments. The reason to make it free, the reason that open source projects can be successful, is that more people  are likely to use them, and that those people are able to contribute back to the project, because they also have all the source code.

**Please, please, please** make the effort to give a little back to this project. If you found the documentation hard to understand then think about how you would have preferred it to be written and contribute it.

.. _svn:

Accessing the svn repository
-----------------------------
The central location for the PsychoPy source code is the subversion (svn) repository at google code Generally you want to be looking at the files under 'trunk':
    http://code.google.com/p/psychopy/source
    
Googlecode actually has a very nice viewer that allows you to browse the source code directly and this is probably be sufficient for many people to look at the code. You can also see the diffs between 'commits' to the repository.

If you know about such things, you can fetch a copy anonymously to see the latest version of PsychoPy, including the latest unreleased bug-fixes (but also the latest, unreleased bugs). Details for checking out a copy are given at the google website above.

Documentation
--------------
The documentation is all written using `Sphinx`_ and the source for this is also stored in the svn repository, under trunk/docs/source

How do I contribute changes?
-----------------------------
For simple changes, and for users that aren't so confident with things like version control systems then just email your suggested changes to the mailing list. If you want to make more substantial changes then contact Jon off-list to talk about them and if you want to make changes more frequently then he can grant you direct access to commit them back into the svn repository.

.. _Jon Peirce: http://www.peirce.org.uk
.. _Sphinx: http://sphinx.pocoo.org