- 1 Summary
- 2 Owner
- 3 Resources
- 4 Current status
- 5 Detailed Description
- 6 Why it would be good for Mageia to use it
- 7 Test case
- 8 Tasks
- 9 Software / Packages Dependencies
- 10 What could disrupt development of this new feature
- 11 Planning
- 12 Contingency
- 13 Release Notes
- 14 Documentation
- 15 Packager comments
Migrate our build system to Koji.
- Name: Neal Gompa
- Email: firstname.lastname@example.org
This will require efforts by the Mageia sysadmins to deploy Koji and configure it to work with our VCS. In addition,
mgarepo needs to be adapted to work with Koji.
- Targeted release: Mageia 7
- Last updated: 2017/09/18
- Percentage of completion: 0%
Koji is a build system developed by the Fedora Project to support building a distribution.
The main distinguishing features:
- Every build is captured
- Build roots are easily changed by tagging/untagging builds
- All historical and current packages are recorded
Why it would be good for Mageia to use it
Mageia's current build system has had issues as we've grown to support more architectures, and it is troublesome to move packages around across different targets, and can't handle packages with new RPM features.
Moving to Koji will make it much easier for packagers to build packages and sysadmins to manipulate the build roots used for builds without losing builds. Koji can also be extended to do things like build ISOs and install trees. Among other things, moving to Koji will make it possible for us to package Rust-based applications, following the practices set by Mageia and Fedora jointly under the Fedora Rust SIG, as Rust packaging uses the new RPM features introduced in RPM 4.14, and requires DNF to resolve rich build-dependencies (which Koji will use through the Mock build tool).
Koji also affords us a better way to control what goes into the build root, and makes it easy to move things from target to target without rebuilding multiple times. And packagers get live build logs as it is building!
To be determined...
- Deploy Koji
- Configure for building Cauldron
- Adjust packager tooling to interface with Koji
- Switch off YOURI for building packages for Cauldron/Mageia 7
Software / Packages Dependencies
- While this is in Mageia 6 now, it'll need to be updated to a newer version to offer the Python 3 client library for mgarepo
What could disrupt development of this new feature
If the Koji deployment cannot be completed and mgarepo can't be modified to target Koji, then this feature cannot be fully implemented.
Early inclusion into Mageia 7 would allow for good appropriation of administrator resources to roll this out and make sure everything works.
If this fails to be ready for Mageia 7, then we fall back to our current infrastructure.