Back to blog

Expanding Open Source in Africa

Mark Waite
Mark Waite
August 04, 2022

Open source software has changed software development. Companies readily use open source as a key part of their software development and delivery. Open source operating systems dominate cloud computing operating systems. Open source JavaScript libraries and frameworks like Angular, Vue.js, and React are key components in web applications. Open source Java libraries and frameworks like Spring Framework, Spring Boot, Hibernate, and Grails provide effective and powerful foundations for development. Open source Java development tools like Apache Maven, Jenkins, and Visual Studio Code improve developer productivity.

Open source software relies on open source contributors to maintain and improve it. Unfortunately, open source contributions are not evenly distributed throughout the world. Areas with more developed software organizations also tend to contribute more to open source software. We’re working to increase open source contributions from Africa, one project at a time.

Zainab Daodu, Omotola Omotayo, and Mark Waite will present "Expanding open source in Africa" at DevOps World 2022. Join us on Thursday, September 29, 2022 in Orlando as we share our experiences and help you find ways that you can help expand open source in Africa. The presentation will share what we’ve learned while running outreach efforts to help more African contributors work in open source. We’ll include highlights from the Jenkins project involvement in She Code Africa Contributhon 2022.

She Code Africa Contributhon 2022

The She Code Africa Contributhon is a boot camp where African women are paid to work with open source organizations on selected projects with dedicated mentors. This program aims to create a more diverse, inclusive, and innovative culture within the African open source ecosystem by matching African women in technology with sponsor and mentor open source organizations. The 6 mentees joining the Jenkins project come from Nigeria, Kenya, and Ghana.

The 2022 Contributhon brought 3 different projects to the Jenkins community:

New contributors developed their skills by submitting GitHub pull requests and working with mentors to improve those pull requests.

She Code Africa also provided a project manager to oversee all the projects. This was our first experience with a project manager for a She Code Africa project.

Inclusive naming

In 2016 the Jenkins project switched to use the term "agent" to describe worker nodes. Inclusive naming changes were approved in 2020 to use the term "controller" for the central Jenkins process that orchestrates work on agents. Additional naming changes include the use of "allowlist" and "denylist" rather than their less inclusive alternatives. Those inclusive naming changes have been moving through the Jenkins plugin code base, but there is plenty of work yet to do.

Catherine Kiiru and Peace Okafor worked with the Jenkins project to identify source code locations where inclusive naming could be applied safely. The inclusive naming planning sheet guided their efforts and provides a reference for further inclusive naming improvements.

Catherine Kiiru

Catherine Kiiru

Peace Okafor

Peace Okafor

Screenshot updates

The Jenkins user interface has been significantly improved over the course of the past 18 months of development. However, the documentation screenshots had not been updated.

Somaa Chukwu worked with the Jenkins project to review the documentation screenshots and identified the outdated screenshots. She used the outdated screenshots worksheet to submit pull requests. Somaa’s screenshot updates helped the Jenkins project while she was learning more about Jenkins, git, and GitHub pull requests.

Somaa Chukwu

Somaa Chukwu

The screenshot updates project was continued by Kevin Martens. Documentation screenshots are now current with the Jenkins 2.346.x LTS line.

Pipeline help

The Jenkins Pipeline Steps Reference and Pipeline online help often receive feedback that more examples are needed, that step return values need to be described, and that arguments need more description of their purpose, allowed values, and expected results. Most plugin maintainers do not provide detailed documentation of the pipeline steps, or the arguments to those pipeline steps. The Pipeline help project improves the documentation of pipeline steps and their arguments while introducing Jenkins Pipeline, Jenkins plugin development, Jenkins documentation as code, and the concepts of GitHub forks and pull requests.

We used the project plan to guide the improvements to several plugins, including the git plugin, the http request plugin, the Pipeline build step plugin, and the input step plugin.

Afi Gbadago

Afi Gbadago

Sophia Okito

Sophia Okito

Project manager

Nafeesat was our project manager. She coordinated the work from each of the three projects. She assured that we met regularly and that we had good plans for the projects.

Nafeesat Jimoh

Nafeesat Jimoh

Mentors

We’re very grateful to the mentors from the Jenkins project that are hosting mentoring sessions, reviewing pull requests, and encouraging the mentees. Thanks to:

We also thank Zainab Daodu of She Code Africa for her efforts to facilitate the Contributhon and encourage participation.

About the author

Mark Waite

Mark Waite

Mark is a member of the Jenkins governing board, a long-time Jenkins user and contributor, a core maintainer, and maintainer of the git plugin, the git client plugin, the platform labeler plugin, the embeddable build status plugin, and several others. He is one of the authors of the "Improve a plugin" tutorial.