Celebrating GNOME Newcomers’ contributions

A few weeks ago, I sat down to solve some issues related to the GNOME Engagement team. While going through the list, I found this issue created by Umang Jain, which looked forward to celebrating the contributions made by GNOME Newcomers. It was opened in late 2017 and a lot of discussions happened during this period. So, I decided to take on this issue and solve it programmatically.

Problem

There is no doubt that newcomers work hard to make their first contribution to a project they do not know about. So, it’s really important to recognize and celebrate their contributions when they make one.

With GNOME being a large project, there is a need for an automated system that recognizes the contributions made by the newcomers and help the GNOME Engagement team to seamlessly identify them.

The following points were listed on the issue which we need to solve, but I will only consider solving the relevant ones.

  • Come up with an easy way for maintainers to indicate when a newcomer has made their first contribution
  • Create/decide Twitter account and a person responsible for handling that
  • Create a way for the Engagement team to broadcast these achievements regularly on social media (e.g. monthly shout-out?)
  • Announce the new plan to key stakeholders (maintainers), and the larger GNOME community

Approach

Many GNOME people proposed their views and workarounds to tackle this problem. Taking the best cues out of each suggestion, I decided to use the Gitlab API. Gitlab API has all the features which can help us to take on this problem effectively.

Using Gitlab API, a list of all the users(with their first ten contributions) present on GNOME Gitlab Instance, is fetched. Along with this, a list of projects is also fetched using Gitlab API. The list of users is traversed which divides the users into Newcomers and Regular contributors. This is achieved by checking when the user first contributed to a GNOME project. If the contribution was made in the last 15 days, then the contributor is categorized as a Newcomer. After the newcomers are identified, they are filtered based on the type of contribution made. Currently, notable contributions are related to merging requests and issues.

After going through the above procedure, a detailed report is created as a JSON file. This JSON file can be found here.

Scheduling scan

The above process is scheduled to run once a day using Gitlab CI. It takes about 5 hours to complete. Once the scan is completed, the result of this whole process is pushed back to the project repository for future use.

Resources

You can find out the project here. You can also open issues and merge requests to make the project better.

Thanks for reading 💜


If you enjoyed my blog, follow me for more informative content like this.

I publish a monthly newsletter in which I share personal stories, things that I am working on, what is happening in the world of tech, and some interesting dev related posts which I across while surfing on the web.

Connect with me through TwitterLinkedInGithub or send me an Email.

Ravgeet, Full Stack Developer and Technical Content Writer

Did you find this article valuable?

Support Ravgeet Dhillon by becoming a sponsor. Any amount is appreciated!