Development

Want to help us develop MOTECH? The step by step guide below will help you get started. The instructions may be incomplete, or may contain some errors, so please just let us know if something is missing or incorrect. Our mailing list is populated with helpful people who will help you get going - and will get this documentation up to date with any issues you encounter.

Here is how to get started:

Mailing Lists and Accounts

  1. Sign up for the MOTECH Developer mailing list - this is the best place to get help with any questions about MOTECH development.
  2. Create an account on Gerrit, our code review system.
  3. Get a Jira account if you’ll need to report/track issues - there is no self-serve way to request a Jira account yet, so please just email the MOTECH Developer list and we’ll get you set up.

Dev Environment & Tools

  1. Configure your dev machine.
  2. Configure your Git client to submit changes via Gerrit.
  3. Familiarize yourself with our CI.

Finding Something to Work On

  1. Some MOTECH devs have found that reviewing code written by others before they jump in and develop their own is a good way to get their feet wet. If that sounds like your style, feel free to jump into any code review on Gerrit and add your comments.
  2. If you’d rather dive right in, we’d recommend that you find a “community” issue from our issue tracker - these are bugs and user stories that we think are good introductory items for MOTECH newbies. See a list of all current “community” issues here.
  3. If you’re already building your own system on top of MOTECH and you’d like us to incorporate your changes for an issue you’ve found and fixed, please first check whether the issue already exists in our issue tracker. If you are not sure, please email the mailing list and we’ll help you determine whether the issue is already known. Please track your work with a new issue so that we can evaluate it for inclusion in the Platform.

Developing and Submitting Your Code

  1. If your fix will be nontrivial, please leverage the mailing list for feedback on your design before you get too far - we are a friendly bunch and can help ensure you are headed in the right direction.
  2. When you’re ready to push your changes, please squash your commits to keep the change history concise, and write a commit message that conforms to our guidelines.
  3. Submit your code using git push origin - if you configured your environment correctly, this sends your changes to Gerrit, our code review system.
  4. Please incorporate code review feedback and update your patch as needed - once your change has passed code review, one of the project maintainers will merge your change to the repo.
  5. Resolve the relevant issue(s) in Jira.