CHIME: Community Health Inclusively Measured


The Open Letter to Gitea and subsequent communication by maintainers brought forth a challenge that many FOSS projects struggle with: Only valueing people who are high committers to the codebase, and neglecting the work of so many others who are passionately contributing time and effort in different ways. Their work often goes unnoticed or is under-appreciated.

I understand this dynamic, and it is true that the maintainers put in most of the work in many cases. But especially when a project reaches a certain size, adoption and level of popularity the dynamics are changing and it is good for a project’s long-term sustainability to take that into account.

Not doing so leads to tech elitism with the developers on a pedestal and far removed from other people that are involved.

In a healthy community there are people in many different roles and with different skillsets that all contribute to the success of the project. The actual coding is just a single part of the development process. This is clear when looking to the Free Software Development Lifecycle (FSDL) and the many processes and activities that take place in parallel. In a well-oiled and healthy community these are all perfectly aligned and in harmony. Inclusion and diversity are important aspects that taken into account, and everyone is valued equally with regards the help they want to provide.

Contribution metrics

The above led to the idea with the realization that Github (and other code forges) also have this predominantly developer-oriented feature set. This can be seen in the contributions widget on account profiles:

Shown in the contribution quadrant diagram are only code Commits, doing Code reviews, filing Issues and making Pull requests. How about documenting the Wiki? Or being an active commenter on Issues? Or being vocal in the different communication channels of the project? Or being an advocate that promotes the project across the web, attracting contributors that way and increasing adoption and use?

Community Health Inclusively Measured

This is interesting. We can represent this more inclusive notion of community in similar kinds of metrics. Identify the contribution types that play a role across the entirety of the FSDL.

And not only that… Github shows only personal metrics… they are a reputation sheet, nothing more.

These metrics get more interesting if we could overlay personal contribution insights into aggregate views that represent aspects of the Community (or Ecosystem even) as a whole! The shape of the graphs that are the result are now indicators - a multi-dimensional view - of Community Health.

Likely different types of projects / ecosystems will be in a most healthy state with particular graph shapes. Knowing optimal state the diagrams can give a quick overview of where weaknesses are, and focus must be placed to improve. A community can then strategize accordingly.

(Image: “Gold Colored Chimes” by Ravi Kant)


I have opinions on the contributions widget. Especially the Radar Chart feels like a bad choice.

Look at Radar Chart | Chartopedia | AnyChart for a moment.

Each variable is represented on axes. All axes use one scale and are arranged radially within the same distance from each other.

I interpret this as each scale has to be the same. However, I would expect issues to outnumber Pull requests, for example.

Instead, I would go with another chart from Usage Type | Chartopedia | AnyChart

Mainly Percent Stacked Bar Chart | Chartopedia | AnyChart would be my favourite.

That being said, I feel like this is something that should not be part of the core features of a forge in the first place. Instead, the forge could provide a data source (imagine, you would feed it into a Grafana) and have dedicated applications doing the number crunching and visualisation.

This might play into Plugin Mechanism · Issue #20126 · go-gitea/gitea · GitHub

Can we quote Matrix chats here?

We learned, that Codeberg apparently does not reflect wiki edits in the contribution graph. Technical writing and triaging is something that should be displayed in some way or another.