Salsa CI in Debian
Team presentation: The Salsa CI team develops and maintains a continuous integration (CI) framework that is used in the Debian Gitlab instance (Salsa) and helps Debian maintainers detect regressions across roughly 27,000 Debian packages. The Salsa CI pipeline emulates the Debian build process and runs several Debian quality tests, helping to increase the probability that packages can migrate from Debian Unstable to Testing reliably, quickly, and without issue. When new source code triggers a Salsa CI pipeline, 17 different jobs run to build and test it automatically. Salsa CI checks to see whether the to-be-uploaded packages build on multiple architectures (at the moment, amd64 and i386, and optionally on Arm), runs autopkgtest test suites to try to identify potential regressions, and checks for common errors with our custom linter, lintian, among other tests.
* Additional information:
https://about.gitlab.com/blog/2023/09/19/debian-customizes-ci-tooling-with-gitlab/
https://debconf20.debconf.org/talks/47-where-is-salsa-ci-right-now/
https://debconf19.debconf.org/talks/148-salsa-ci-debian-pipeline-for-developers/
Salsa CI: Allow package maintainers to run Salsa CI locally
Description of the project: Currently Salsa CI exists only as an online GitLab CI based pipeline. Many Debian maintainers have expressed the need to be able to run Salsa CI locally for faster turnaround times and easier debugging of failing pipelines. The project is to research and develop this option. The project includes refactoring the Salsa CI code which is currently mainly in YAML files into shell files that allow more flexible execution from different execution environments, and be less coupled to GitLab CI runners specifically.
Confirmed Mentor: Otto Kekäläinen
How to contact the mentor: otto@debian.org
Confirmed co-mentors: Emmanuel Arias <eamanu@debian.org>
Difficulty level: Medium
Project size: Medium sized (175 hours). Depending on the student's availability, this project can be medium or large. The advantage of the project is it can be split into small pieces.
Deliverables of the project: Commit at Salsa CI that implements the feature and documents it
Desirable skills: Awareness of GitLab CI. Working with git. Basic knowledge of Debian packaging.
What the intern will learn: Debian Release process, Debian package building, Debian CI process, Basic QA of Debian packages.
Application tasks: Pick issues from here, discuss with the team and try to fix them.
Salsa CI: Automate building reverse dependencies
Description of the project: One recurring Debian package maintenance task that is unusually laborious and potentially hazardous is updating packages that are build dependencies for tens or hundreds of other packages. Currently Salsa CI does not offer any support for this situation. Running tools like 'ratt' locally requires a lot of effort. The project is to introduce a mechanism for building reverse dependencies so that it is easy for maintainers to check if an upload is going to break some of the reverse dependencies or not, and using this information be able to update the dependencies and re-check until everything is passing and the main package update can be uploaded to Debian archives safely.
Confirmed Mentor: Otto Kekäläinen
How to contact the mentor: otto@debian.org
Confirmed co-mentors: Emmanuel Arias <eamanu@debian.org>
Difficulty level: Medium
Project size: Medium sized (175 hours). Depending on the student's availability, this project can be medium or large. The advantage of the project is it can be split into small pieces.
Deliverables of the project: Commit at Salsa CI that implements the feature and documents it
Desirable skills: Awareness of GitLab CI. Working with git. Basic knowledge of Debian packaging.
What the intern will learn: Debian Release process, Debian package building, Debian CI process, Basic QA of Debian packages.
Application tasks: Pick issues from here, discuss with the team and try to fix them.
Salsa CI: Allow Salsa CI maintainers to see a global view of passing/failing pipelines
Description of the project: Currently no statistics or dashboard about Salsa CI exists. When Salsa CI maintainers implement and activate new features, it is all done without any visibility on what actually happens Salsa-wide. The project is to create some sort of dashboard that would show the number of public pipelines and jobs being run, and their state (passing/failing). Having a dashboard and the ability to detect which jobs are failing on a massive scale would help Salsa CI maintainers detect and address systemic failures faster, and make the Debian package maintainer experience better as there would be less of unrelated failures on visible to them.
Confirmed Mentor: Otto Kekäläinen
How to contact the mentor: otto@debian.org
Confirmed co-mentors: Emmanuel Arias <eamanu@debian.org>
Difficulty level: Medium
Project size: Medium sized (175 hours). Depending on the student's availability, this project can be medium or large. The advantage of the project is it can be split into small pieces.
Deliverables of the project: Commit at Salsa CI that implements the feature and documents it, and a new website or view where the stats are published.
Desirable skills: Awareness of GitLab CI. Working with git. Basic knowledge of Debian packaging.
What the intern will learn: Debian Release process, Debian package building, Debian CI process, Basic QA of Debian packages.
Application tasks: Pick issues from here, discuss with the team and try to fix them.
Salsa CI: Student-proposed project
Description of the project: Salsa CI is a large project currently serving over 27 000 source packages in Debian. Maintainers have expressed a wide range of feature requests that the current small Salsa CI team hasn't been able to deliver anything on. Google Summer of Code students are also encouraged to suggest their own ideas on how to improve Salsa CI, or take multiple smaller existing project ideas and issues from Salsa CI and combine it into a GSoC proposal.
* Confirmed Mentor: Otto Kekäläinen * How to contact the mentor: otto@debian.org * Confirmed co-mentors: Emmanuel Arias <eamanu@debian.org> * Difficulty level: Medium * Project size: Medium sized (175 hours). Depending on the student's availability, this project can be medium or large. The advantage of the project is it can be split into small pieces. * Deliverables of the project: Fix and discuss issues reported to Salsa CI. Specially Labels "Nice-to-have", "Accepting MRs". * Desirable skills: Awareness of GitLab CI. Working with git. Basic knowledge of Debian packaging. * What the intern will learn: Debian Release process, Debian package building, Debian CI process, Basic QA of Debian packages. * Application tasks: Pick issues from here, discuss with the team and try to fix them.