Expanding Open Source in Africa
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.
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.
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.
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.
The screenshot updates project was continued by Kevin Martens. Documentation screenshots are now current with the Jenkins 2.346.x LTS line.
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.
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.
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.