How to contribute code

cfreeman edited this page Jun 14, 2012 · 2 revisions

Steps for the impatient

  • Assumes that you configured your development environment.
  • Fork the project on github
  • Fix things, create awesome enhancements.
  • Use github to send a pull request to have your changes included in the main OpenSHAPA code base.
  • After a few successful additions to the OpenSHAPA code base, you can be given full write privileges to the main repository.

Finding a task to work on

Perhaps you already have a great idea for a feature or fix, but if you are not sure what needs to be done, the tips below should give you a fountain of inspiration:

Read through the OpenSHAPA bug list, and find a bug that you think you can fix. You will be looking for a bug that has not been started by someone else.

Forking OpenSHAPA

First you will need to use github to 'fork' the OpenSHAPA project. This will create a copy (sandpit) of the OpenSHAPA source code and provide you with complete freedom to play around and do what ever you wish with the OpenSHAPA source code.

Implementing improvements

The hard part: Fix the bug or implement the new feature! Write code in a style that is consistent with the rest of OpenSHAPA and don't be afraid to ask questions if you get stuck. Others will be able to help you out and provide tips on the path forward. You should commit fixes and changes to your copy of the OpenSHAPA source code using the following format

git commit –a –m “[#<bug id>] - meaningful log message of change”

git push


In order to have your awesome additions included in an official OpenSHAPA release, you will need to use github to issue a 'pull request' - this will notify the core OpenSHAPA development team that you have some changes that you want included in the main OpenSHAPA source tree.

Often the pull request will be reviewed by the core OpenSHAPA development team, and they may offer suggestions about otherways you could implement your fix, this reviewing phase is an easy way you can learn more about the OpenSHAPA codebase. When the pull request is accepted, it will be merged in with the main OpenSHAPA source tree, and your fix will turn up in the next official OpenSHAPA snapshot build.

If you fixed an existing bug, you will need to mark the bug in the OpenSHAPA bug list as 'finished' and the person who logged the bug will be notified that a fix is ready.

The person who logged the bug will test to make sure that the bug is fixed for them as well and if all goes well, the bug will be marked as closed.

Thanks! You just completed your first code contribution to OpenSHAPA, and helped make research a little bit easier.