This page describes plans for CentOS Stream and source-git.
There is an extensive coverage of the source-git technology in the documentation of the packit project: https://packit.dev/docs/source-git/
Please note that many of the pieces are still being researched and developed: this page is going to be continuously updated. If you have any questions, please reach out to the packit team: https://packit.dev/#contact
Last update: January 2021
CentOS Stream 8
Source-git repos for the current version of CentOS Stream are available in the staging instance of CentOS Pagure: https://git.stg.centos.org/projects/source-git/%2A. Once the CentOS GitLab is available to the public, we are going to move those repositories to GitLab.
The source-git repositories can be described as follows:
- Every repository contains unpacked sources of the selected component which you can easily browse through the pagure web interface.
- The repositories are created from the dist-git counterparts.
- Unpacked upstream release archive represents a single commit.
- Downstream packaging files are spread into multiple commits.
- Top commits contain downstream patches, every patch representing a single commit with additional metadata (e.g. patch name).
- It may easily happen that changes to packages in dist-git prevent the conversion process from working. If such a thing happens, the repository won’t receive updates until the problem is resolved.
- There is also a very simplified version of a source-git repo: a “single-commit” source-git with all the sources unpacked and downstream patches copied as files - repositories use this format when the standard conversion doesn’t work.
- Repositories may contain two distinct branches:
- c8 - tracking CentOS Linux 8
- c8s - for CentOS Stream 8
- These repositories are continuously updated as dist-git repositories receive new changes. The updates may not happen immediately.
- You can contribute by opening a merge request.
- The MRs are never merged - once an MR is accepted, a corresponding Bugzilla is created with the patch being attached and the change follows an internal Red Hat process in order to be included into RHEL 8.
- MRs are being checked by continuous integration - e.g. RPM builds are initiated.
CentOS Stream 9
For CentOS Stream 9, the repositories are going to be improved, most notably by containing upstream git history.
The repositories for CentOS Stream 9 are the way forward, here’s the definition:
- Every repository contains unpacked sources of the selected component which you can easily browse through the pagure web interface.
- The repositories contain upstream git history representing a matching git tag for a particular release. You can find downstream content on top of this git history in a similar manner as the repositories created by converting dist-git.
- You can open merge requests and those which are accepted are directly merged to the codebase.
- Production builds are initiated from dist-git by using packit automation to get source-git changes to dist-git and creating a build using the standard fedpkg/centpkg tooling.
Tests can be added and run during the CI process.