Outreachy-And it's a wrap!
Outreachy Wrap-up
Project Improve Debian Continuous Integration UX
Project Link: https://www.outreachy.org/outreachy-december-2021-internship-round/communities/debian/#improve-debian-continuous-integration-ux
Code Repository: https://salsa.debian.org/ci-team/debci
Mentors: Antonio Terceiro, Paul Gevers and Pavit Kaur
About the project
Debci exist to make sure packages work currently after an update, How it does this is by testing all of the packages that have tests written in them to make sure it works and nothing is broken This project entails making improvements to the platform to make it easier to use and maintain.
Deliverables of the project:
- Package landing page displaying pending jobs
- web frontend: centralize job listings in a single template
- self-service: request test form forgets values when validation fails
- Improvement to status
Work done
Package landing page displaying pending jobs
Previously, Jobs that were pending were not displayed on the package page. Working on this added a feature to display pending jobs on package landing. Working on this task made it known that the same block of codes was repeated in different files which led to the next task
web frontend: centralize job listings in a single template
Jobs are listed in various landings such as status packages, Status alerts, status failing, History, and so on. The same Code was repeated in these pages to list the jobs, I worked on refactoring it and created a single template for job listing so it can be used anywhere it’s needed.
I also wrote a test for the feature I added.
Merge request
self service: request test form forgets values when validation fails
When one tries to request for a test and it fails with an error, originally the form does not remember the values that were typed in the package name, suite field et. c. This fix ensures the form remembers the values inputted even when it throws an error.
N/B: The form checks all architecture on the load of the page
merge request
Improvement to status
Originally the Status pages were rendered as static HTML pages but I converted these pages to be generated dynamically, I wrote endpoints for each page.
Since most of the status pages have a list of jobs I modified it to use the template I created for job-listing.
Previously, the status pages had a mechanism to filter such as All
, Latest 50
et.c which wasn’t paginated. I removed this mechanism added a filter by architecture and suites to these pages and also add pagination.
Last but not the least, I wrote tests for these implementations carried out on the status page.
merge request:
first task
second task
Major take-aways
I learnt a lot during my internship but most importantly I learnt how to:
- write Tests in Ruby and how writing tests is an important aspect of software development
- maintain good coding practice, Paying attending to commit messages, Indentation et.c are good areas I developed in writing code.
- make contributions in Ruby Programming Language.
Acknowledgement
I can not end this without saying thank you to my mentors Antonio Terceiro, Paul Gevers, and Pavit Kaur for their constant support and guidance throughout the entire duration of this Internship. It has been a pleasure Interacting and learning from everyone.
Review
Outreachy has helped me feel more confident about open-source, especially during the application phase. I had to reach out to the community I was interested in and ask questions on how to get started.
The informal chats week was awesome I was able to build my network and have interesting conversations with amazing individuals in open-source.
To round up, Always ask questions and do not be afraid of making a mistake, as one of the outreachy blog post topics says Everyone struggles!
, but never give up!