[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[GSoC 2025] Final Report: Enhancing Salsa CI (new build reverse dependencies job and more)



Hi debian-devel,
 
I'd like to share a quick recap of my work during GSoC 2025 with Debian, where
I focused on enhancing Salsa CI. My work began on May 8 and officially
concluded on September 1. From May to mid-July I worked about 28 hours per
week, and from mid-July until September 1 I treated it as a full-time
commitment (~40 hours/week). In total, I spent about 530 hours on the project.
Overall, it was a very productive experience and I'm happy with the results.
 
 
Contributions
 
 
Salsa CI improvements
===================
 
Build reverse dependencies job
 
A major addition is a new job that automatically rebuilds all reverse build
dependencies of a package, powered by ratt.
 
This lets maintainers catch regressions earlier in CI and make transitions
smoother, since maintainers can proactively rebuild reverse build dependencies
and check for failures. The job is now fully functional, available in Salsa CI,
and can be enabled on demand.
 
To make this job possible, I also improved ratt ("Rebuild All The Things") in
multiple areas so it could become CI-friendly and gain new features. There's a
dedicated section below detailing those contributions.
 
This merge request was reviewed in person during DebConf25 by Bastien
Roucariès, who suggested useful features for the job. Further feedback from
Santiago Ruano Rincón and Otto Kekäläinen also helped shape the final result.
Big thanks to all of them for support and collaboration!
 
Autopkgtest on more architectures
 
Added support for optional autopkgtests on i386, arm64, armel, and armhf
 
Licenserecon job
 
Added a job that checks for mismatches between debian/copyright and upstream.
 
Debdiff job
 
Compares Salsa repo source with archive version and generates a debdiff.
 
Faketime job
 
Introduced two opt-in jobs that inject libfaketime during builds and tests,
helping identify Year 2038 issues.  
 
 
Document how to run Salsa CI locally gitlab-ci-local
 
I'm also currently looking into the possibility of running Salsa CI pipelines
locally with gitlab-runner exec. At the moment I'm waiting for some upstream
bugs to be fixed before moving forward. Once those bugs are fixed, I'll
document the steps to run the pipeline locally.
 
 
 
Ratt (rebuild-all-the-things)
======================
 
As mentioned above, the new reverse build dependencies job in Salsa CI is
powered by ratt. While working on this integration, I found several limitations
that made ratt less practical for CI use. To address this, I contributed a
series of improvements that expanded its functionality and made it more
reliable. These enhancements not only support the new job in Salsa CI but also
make ratt a more useful tool for Debian contributors in general.
 
 
I also closed two BTS bugs in ratt:
Seeing ratt evolve over the summer from a CLI-only helper to a CI-friendly tool
was one of the most rewarding parts of my work.
 
Many thanks to Michael Stapelberg for thoroughly reviewing everything along the
way.
 
 
Reviews
========
 
I also reviewed MRs from others. For instance, I helped review Santiago Ruano
Rincón's Switch to sbuild (and unshare) merge request, which has since been
merged and improved our build infrastructure.
 
Packaging contributions
====================
 
Alongside CI work, I contributed to Debian packaging:

- openvr: Fixed #1067724, library transition.  

 
Thanks to Dylan Aïssi for the sponsor and Sergio Durigan Junior for the review.
 
 
- ratt: Uploaded new upstream version to experimental, then unstable.  
 
  Co-maintaining with Otto Kekäläinen.  
 
 
 
- curl: Fixed copyright inconsistencies.  
 
 
  Thanks to Samuel Henrique.
 
 
- waymore: Packaged 6.1-1~exp1 with improvements.
 
 
  Thanks to Samuel Henrique.
 
Running these packages through Salsa CI gave me the maintainer's perspective,
confirming that the new CI jobs solve real daily packaging issues.
 
 
Team participation
===============
 
Throughout the summer I engaged actively with the community:
 
  • Weekly mentor calls with Otto for steady guidance
  • Discussions on Salsa CI Matrix chat and mailing list
  • Attended DebConf25 in Brest, meeting my mentor and Salsa CI team in person
  • Weekly Debian Brasil calls, always really helpful for debugging and sharing insights
 
This mix of async chats, weekly syncs, local calls, and in-person exchanges
made the project much richer and helped me feel integrated into Debian.
 

Reflections
=========
 
Looking back at this cycle of work, what stands out most are not only the
technical results but also the lessons learned along the way. In the Debian
ecosystem, progress does not come from isolated effort, it comes from
communication, reviews, and compromise. Learning to navigate different
perspectives, accept feedback, and refine ideas based on community input has
been as important as writing the code itself.
 
I realized that even small changes, when multiplied across Debian, make a big
difference. Improvements in Salsa CI or packaging may look minor alone, but
together they strengthen workflows and help maintainers, a reminder of the
value of collaboration and steady progress, and something I'll carry forward.
 
 
Next steps
=========
 
Even though GSoC 2025 has ended, my work continues. I plan to:
 
  • Keep contributing to Debian packaging and CI  
  • Create a new job to run autopkgtests of reverse dependencies, extending coverage beyond build-time checks
 
Acknowledgments
===============
 
I'm very grateful to my mentor Otto Kekäläinen for his steady guidance, and to
Santiago Ruano Rincón for valuable reviews. Thanks also to the Salsa CI team
for feedback, and to Aayush Raj for collaboration this summer.  
Finally, special thanks to Debian and Google for making this program possible.
 
This summer was just the beginning. I'll keep hacking on Salsa CI so Debian
contributors get stronger quality checks, users receive well tested packages,
and downstream distributions benefit from these improvements.
 
 
Best regards, 
 
Aquila
 
 
For those interested in a bit more detail, I also wrote a blog post about my
final report:
https://aquilamacedo.xyz/gsoc/debian/salsa-ci/2025/08/31/gsoc-report-final/
 
 

Reply to: