How can we contribute developing new features?

@nicolopez Thank you for asking these great questions! And because they are great questions, I wanted to take time to give you a detailed answer.

ODK transition status

ODK is going through a transition where the project is moving out of University of Washington and standing on its own as community-owned open-source project.

The transition was announced a year ago in the future of Open Data Kit blog post and the most current update of status is in ODK Convening summary. The takeaway is that for ODK 1 (Collect/Build/Aggregate/Briefcase/JavaRosa), UW's support ends in September 2017.

Nafundi, a company I run, is committed to facilitating community building, software development, documentation, and support for ODK 1 over the next 2-3 years. Our goal is to put the structures in place so others can step into the various leadership roles.

Current and future governance

The governance for ODK is here. The summary is that we are a meritocratic community that's led by a project management committee. That committee is myself, Waylon Brunette, Richard Anderson, and Carl Hartung.

This governance will likely change in the next few months as the project moves to a pair of Technical Steering Committees (one for ODK 1, one for ODK 2) that's overseen by a Transition Board. We recently had a thread and survey about this new governance structure.

How to contribute today

As far as what you can do to contribute to designing and developing these features, here is the practical guide.

  1. File a detailed feature request in the forum. We'll discuss it within the community to see if we can get rough consensus (or no major objections).

    • If it's a feature that doesn't disrupt current users and you are willing to send in a PR, it's very likely it'll get merged.
    • If you can't send in a PR, then no guarantees on a timeline.
  2. Once the feature gets to a series of tasks we can close, we move to GitHub and file them as issues in the appropriate repos. If we need to talk real-time, we use Slack.

    • Each repo has a contributing guide that describes our expectations.
    • Once we get a pull request, it's generally reviewed by a contributor and merged.
    • We try to ship monthly releases and can sometimes ship earlier if it helps a contributor.
  3. As of today, most of the active code contributors are affiliated with Nafundi. This is something we want to change because it's not healthy for the project's long-term future. To diversify the contributor base we are:

    • Listing ODK on all manner of open-source sites to get new contributors.
    • Recruiting a diverse technical steering committee. The ongoing monthly dev calls are a good way to join in.
    • Doing most things out in the open so we can build out the contributor community.
    • Starting a technical road mapping process really soon.

A caveat about Aggregate

Your feature requests touch Aggregate. That's important to note because Aggregate just recently transitioned from UW to the community. We are still working to make it easy to build and contribute to Aggregate and here is the thread that discusses that transition.

That thread also discusses one of features you requested: multi-tenancy (and so does this group specific permissions in Aggregate thread). The other feature of being able to push configuration to the device is also known to me and there have been a few forays in this direction (e.g., load settings from json and configure settings from QR code and push notifications).

All this to say, before we can take on specific features, we get Aggregate easily buildable and hooked up to continuous integration. We need help with this effort and until it happens, we can't really take on PRs.

4 Likes