Your first contribution can be a bit intimidating, but feel free to give it a try. If you get stuck, don't hesitate to ask for help in our developer forum. This is also a good place to pitch your idea. Next up:
- I won't program it myself. Please file a GitHub issue.
- I'd like to take a shot. Read on to find out how!
Contributing to PsychoPy consists of four steps:
- Getting your own copy
- Making your changes
- Committing your changes
- Submitting a Pull Request
To be sure your improvements can easily be integrated, follow these steps:
- Make a fork of the PsychoPy repo. This provides you with your own copy of the PsychoPy source code.
- Inside your fork, make a new branch for the feature you've got in mind. If you'd like to fix a bug, base your new branch on the release branch. If you'd like to add a new feature, base it on the dev branch. We tend to name branches after the feature we're building. For example
olfactory_component
. - Clone your fork to your hard drive. Next, switch to the new branch and you're all set up!
Look here to see how the PsychoPy repo is organized.
To help you get started with modifying PsychoPy, we've got some developer guides. To try out your modified PsychoPy, do a developer's install.
Once you're happy with your changes, commit them to your GitHub repo. Please use the tags below in your commit and add an informative message.
- BF: bug fix. For fixing bugs in the release branch.
- FF: ‘feature’ fix. For fixing bugs in the dev branch.
- RF: refactoring
- NF: new feature
- ENH: enhancement (to existing code, but don't worry too much about the difference between this and NF)
- DOC: for all kinds of documentation related commits
- TEST: for adding or changing tests
Once you're done, it's time to add it to the central PsychoPy source code. File a Pull Request from your own fork and branch to the PsychoPy repo. Be sure to target the right branch in PsychoPy (release or dev). Thanks for contributing!