PhenoTips » Developer Guide » Contributing

Contributing

We're always looking for contributions! Here are some ways to participate in the continuous improvement of PhenoTips:

  1. Fixing bugs or new Features/Improvements
    1. Code acceptance criteria
    2. Code Submission Steps
  2. Give us your Feedback
  3. Spread the word
  4. Help other users
  5. Testing

Fixing bugs or new Features/Improvements

Have you fixed a boring bug or added a new feature or improved an existing one? Let us know by adding a pull request to our GitHub repository.

Are you looking for a place to start? Look at our open issues in our Issue Tracker.

Code acceptance criteria

There are a number of criteria that your code will be judged on:

  • Whether it works and does what is intended. This one is probably obvious!
  • Whether it fits with the spirit of the project. Some code may be rejected as they take the project in a different direction from that which the current development community has chosen. This is usually discussed on an issue well before the code is contributed. So if you are unsure about submitting some code please discuss it there or on the mailing lists first. Feel free to continue discussing it (with new justification) if you disagree, or appeal to a wider audience on the mailing lists.
  • Whether it contains tests. It is expected that code relating to functionality will be accompanied by unit tests and/or integration tests. It is strongly desired (and will be requested) for bug fixes too, but will not be the basis for not applying it. At a bare minimum, the change should not decrease the amount of automated test coverage. As a community, we are focusing on increasing the current coverage, as there are several areas that do not receive automated testing.
  • Whether it contains documentation. All new functionality needs to be documented for users, even if it is very rough for someone to expand on later. While rough is acceptable, incomplete is not. As with automated testing, as a community we are striving to increase the current coverage of documentation.

Above all, don't be discouraged. These are the same requirements the current committers should hold each other to as well. And remember: your contributions are always welcome!

Code Submission Steps

If you submit code you need to follow these rules:

  • Put the correct Copyright in the files.
  • Ensure that your code passes the build. The build contains some Checkstyle checks that your code must pass.
  • Ensure that you have unit tests and/or integration tests.
  • Use the same code formatting as the existing code.
  • Create a Pull Request.
  • Name two PhenoTips developers in a comment on your pull request. They will review your code.
  • Create documentation for what you have added.

If you plan to contribute large amount of code that impact existing code, we recommend discussing it on the mailing list first.

Give us your Feedback

Do you have a great idea? Just tell us! Send your feedback to the users mailing list. The feedback could be also about something that does not work, something that could be improved, a feature you'd like to see, etc. Or simply it could be that you're a happy user. Letting us know that helps a lot!

Spread the word

Do you like PhenoTips? Spread the word about it! In any way you would prefer, like tweets, blogs, articles, talks at conferences, discussion with colleagues, etc.

Help other users

Have you gained some experience with PhenoTIps? How about sharing your experience with others? Answer emails on the user mailing list.

Testing

Test new PhenoTips versions and report bugs on GitHub.