The Packit team started to develop a common process and tooling for source-git to be shared across the RHEL ecosystem in 2020. In this session we share the progress made in tooling and automation, and invite you to use the source-git workflow to maintain your packages.
A dist-git (a.k.a. “distribution git”) repository is a Git repository used during distribution development in the RHEL ecosystem, tracking the downstream changes of a package as patch files and referencing the corresponding upstream source archive(s) stored in a place called “the lookaside cache”.
Source-git is a thin layer on top of dist-git, aiming to simplify packaging work especially when it comes to collaboration and maintaining long running distribution branches with a large number of patches.
Source-git repositories are forks of the upstream projects, with a few select branches tracking downstream (distribution) patches and packaging paraphernalia as Git commits.
This format allows packagers to tweak code during packaging activities using the same format as upstream projects do and get rid of the friction of handling upstream code and downstream patches as separate entities, as it is done in the canonical dist-git format.
At the beginning of the session we give a walk-through of what source-git is, how it relates to dist-git and how source-git offers a better environment for downstream distribution work, especially when it comes to collaboration.
Next we give a demo to show how to set up a source-git repo for a package, how to perform the main packaging activities in this repository, and how to translate the result to dist-git.
At the end of the session we share the roadmap for the future development of the source-git tooling and automation, and plans to encourage a wider adoption in Fedora Linux and CentOS Stream development.