Once you have read Get Started as a Developer, and have set up your development environment, you can start contributing to development work.
Prerequisites
Have some basic understanding of the following topics can be beneficial to your work:
- Using Git
- JIRA
- Contributing Code Video
- Code review checklist
- Code conventions
- Unit tests
- Pull request tips
- Agile sprint
Do some code reviews
Here is the list of pull requests that are waiting for review. Reviewing other people's work is one of the great ways of learning about OpenMRS. You can even review code for someone more experienced than you.
Reviews can be as simple as checking to ensure that commits are
- adhering to our code conventions
- free of spelling mistakes
- not missing JavaDoc comments.
More details about code reviews can be found at this Code Review page.
Tutorial on How to Contribute Code
Work on an issue
The code issues ready to be assigned are listed on JIRA. The introductory issues are recommended for beginners. To work on an issue, follow these steps:
Claim an issue.
Review introductory issues, community priorities, active projects or unassigned projects below to find an issue of interest to you, claim it, and make your first contribution.Tip: If you need any clarification on the issue, use OpenMRS Talk , join IRC or Slack for real-time interaction.Tip: If you find yourself taking long time (days) without making any progress, feel free to un-assign yourself from the issue and choose another.- Include unit tests for your changes.
Make sure you always have unit tests for your code. Remember to also do an "mvn clean install" to ensure that all existing unit tests and yours pass. - Check the effects of your changes on the user interface.
If your changes affect the user interface, please run the web application with OpenMRS SDK to see the effects, and then attach a screenshot, before you send a pull request. - Make a pull request.
After your code has passed the unit test, you can make a pull request on GitHub. Remember to have a look at the Pull Request Tips.
Work on other issues and projects
There are issues and projects of various difficulty levels for you to choose from.
Try Introductory Tickets
The issues linked below are both "introductory" and also "curated", meaning that they have thorough descriptions of how to approach solving them.
If you aren't able to find an appropriate issue in the list above, you can take a look at the complete list of "introductory" issues, (not necessarily "curated").
Work on Community Priorities
You also have the option to pick an issue prioritized by the community from the community priority Kanban.
Join a Project Team
Check out our list of active projects, and the teams (or squads) who are actively looking for contributors with a variety of skills to fill different roles. Active Projects & Squads.
Tackle a Big Unassigned Projects
If you are feeling ambitious and ready to tackle a more complex problem, you can work on unassigned projects.