How to Create the Release Contribution Charts
In OpenMRS community releases (both EMR and Platform), it is important to make it clear which organizations are contributing, and how much.
Our simplest way of doing this is with a pie chart: by counting the number of PRs contributed by each organization in each release, and showing this in a pie/donut chart.
This simple chart is a key sustainability indicator for our OSS Product & Community.
Why Tracking the Chart Each Release is Important
The number of orgs contributing is an important metric because it gives us a sense of how sustainable our approach to development is. For any OSS, it is dangerous to our product & community’s long-term survival to depend on one single team.
Support Team Balance: we generally hope to see that < 30% of contributions have come from the Global Support Team. More than that indicates we may have a sustainability problem and need to find ways to engage more diversity of orgs/members.
Org Trends: it’s important to easily see if there is an upwards or downwards trend in the number of contributions from organizations.
If we see that fewer organizations are involved, this is a sign that we need to improve our community involvement in development.
If more and more orgs are involved, this is a good sign of the health and diversity of our community.
If a single organization becomes less and less noticeable in the contribution chart, this is a red flag telling the community manager(s) to check-in with that team and find out ways to increase support or improve their community contribution experience.
If an organization is increasingly involved, this is a sign to congratulate them, celebrate them publicly, and further encourage their efforts in the community.
How to Create the Chart
GitHub Releases: You need to open the GitHub releases for each module or component of the release.
For example, in an EMR (RefApp) release, you will need to open the GitHub release notes for the core/main repos (like esm-core) as well as any additional apps that received contributions for that release (e.g. a specific one like this).
For EMR releases: Remember to consider any backend modules that received updates in order to make the release successful! Example here.
Use the Spreadsheet: Open this Contribution Spreadsheet, and create a new tab named with your release version number: https://docs.google.com/spreadsheets/d/1YR6eOCFRmgox4kx7d80RfAVKpevZE410eYVFMMbJozM/edit?gid=725042048#gid=725042048
Copy-Paste: Copy the content from each GitHub Release note into your spreadsheet. Yes, this is a manual process!
- Example of copy-pasted release notes content
Label each contribution with the Organization Name. In a new column, add the name of the organization that the person was contributing on-behalf-of. Yes, this is also very manual, and requires that you figure out which organization each person was working for when they made that contribution.
How to do this: You can message the person, or even easier, you can click their GitHub account name and look through the repos they have been contributing to. Sometimes this makes it obvious because you can see they have been working in “Organization ABC”'s repo. You can also look at their Talk activity to see how they have introduced themselves - they may mention they are a volunteer or working for a specific group.
Example: If you look at mseaton’s GitHub profile, you’d quickly see PIH-specific org/repo contributions. This means you can safely use “PIH” as the organization label for his contributions.
Tricky situations: Rarely, there are some individuals who contract for multiple organizations in a single release. Contact them directly to understand which org they were working for on different topics.
- Example of contributions labelled with the contributor’s organization.
Sort the list: Select the entire spreadsheet and click the “Filter” button. (If you are not careful to select the entire spreadsheet, you may mess up your rows/columns.) Then, click on the filter for “Org” and “Sort Z-to-A” to see the list organized by Org.
This step matters because it will better organize your pie chart, so that the pieces get gradually smaller instead of being randomly sized.
Generate the chart: Select the “Org” column. Then, click “Insert” and then “Chart”.
Configure the Chart: Choose the “Donut” style of Pie chart. Add a title and make the Labels bolded if you want. In general, we just want the charts to look consistent from one release to another (same colors/styles).
Example Result
Finally: Copy-paste your chart (e.g. a screenshot of it) into the Release Notes wiki page!