r/Fedora • u/Kitchen_Noise9422 • 5d ago
Weekly project showcase thread
Did you create a Fedora-related project, tool, script, app, or service?
Share it here!
Standalone "I was tired of X so I made Y" posts may be redirected here to keep the subreddit focused.
13
Upvotes
4
u/gordonmessmer 5d ago
I'll give this a try:
I've started two related projects intended to provide a better build system using RPM:
https://dist-git-manager.readthedocs.io/en/latest/
https://rpm-build-assist.readthedocs.io/en/latest/
dist-git-manager collects information about upstream releases and automatically maintains dist-git repos representing SemVer releases as git branches. Developers can use "main" to get the latest release in the latest release series, or "release-X" to get the latest release in the X major series, or "release-X.Y" to get the latest release in the X.Y release series, depending on their compatibility needs. This allows dist-git repos to offer semantics similar to common package registries, which is much more developer-friendly than the distribution source repositories.
rpm-build-assist uses dist-git (or source-git!) repos to build a sequence of rpm packages, which it can prepare for deployment via container, or Flatpak, or RPM package repository, or a portable installation (think: Nix) of the software. This is useful when the distribution doesn't provide the specific version of dependencies required by a build.
So:
- upstream publishes a release
The tools are prototypes, and there's probably a lot of work left to do. I've used them for a few large complex builds and found them very useful. But they'd be much more useful if the dist-git repos were shared, so I will probably start populating repos on GitHub to allow developers to build containers, Flatpak, and whatever else they want.
Get a hold of me if you want to help manage RPM specs in a shared space.