Fedora CI Objective 2019
Regular community meetings: [TBD @bookwar]
In this iteration of the CI Objective, we focus on Continuous Integration for Rawhide across all Fedora packages. We still want Rawhide to be the place where changes and experiments are welcome, but we want to avoid having those changes break other contributions to the operating system.
Continuous Integration is meant to be part of the development workflow - shorter feedback loops mean that content is fresher in developers’ minds and can usually be corrected more easily in case something went wrong. We want to make Fedora trivial to develop for/on and for both packagers and upstream developers to get immediate feedback if a proposed change has negative side effects, e.g. if the system can’t boot anymore. To achieve this, we need to touch several areas in Fedora ranging from infrastructure, to testing, policy and the upstream communities.
Deliverables and scope
In order to increase the quality of rawhide and make it easier for contributors to work on Fedora we aim to:
- Implement gating of Rawhide packages [pingou, Taiga epic]
- Implement distribution-wide tests that run on every package update and dist-git pull-request [dcantrell, Taiga epic]
- Improve the documentation for the packager experience [bookwar, Taiga epic]
- Automate feedback and packaging between upstream projects and Fedora (via Packit) [ttomecek, Taiga epic]
All deliverables are targeting production by Flock 2019 (August 8th, 2019).
The work is tracked in the https://teams.fedoraproject.org/project/ci/epics space, see links above There is a video tutorial and Fedora Community blog post (with screenshots) as guides explaining the gating workflows [bookwar]
We have the CI pipelines from the previous CI object running tests, and a fair number of packages use those tests. Results can be seen in Pagure, and pull requests can be tested. There have been problems with usability when workflows weren’t as expected and developers had difficulty finding appropriate documentation.
Dominik Perpeet -- will represent product owner -- define vision, manage priorities, provide oversight and communications Objective summary page