We would like to inform you that Advanced Reconnaissance Crew (ARC) from the CPE team is currently conducting research into decoupling dist-git from its pagure-related dependencies.
Enumerate and write down a description of all the integrations we rely on in our current git forge (Pagure)
Create a list of integrations to continue after moving to different git forge
Write a recommendation plan on how we can loosely couple these integrations generically with another git forge (make it git forge agnostic as possible)
Add the list and descriptions of integrations to the right place in our documentation
This will then inform future design requirements and the next set of objectives that looks like this:
Map API calls that need to remain
Removing the Pagure from dist-git
Base git as backend
** What functionality needs to move to dist-git when git is used as base backend
The replacement would be a system chiefly consisting of three elements - Messages Handler, Dist Git Service and Compatibility Metaservice.
So, looks like a decision to drop Pagure/pagure-dist-git has already been made; in order to do so, a new system which will work as compatibility layer between other services and the new git forge must be designed from scratch and deployed; a new git forge has to be chosen, set up and the data migrated.
Isnât simpler to continue with Pagure? Who will be responsible for maintaining and running the new compatibility layer tool after itâs deployed? Whatâs the gain here on dropping Pagure?
Very interesting task youâve got here. Thanks. )
I feel like What is Dist-git? is a missing chapter.
I like how the interaction between Dist-git and each other tool is catalogued and represented by a separate page.
I miss same pages for summarizing Dist-git User eXperience stories. I am not aware of Dist-git workflow to see how it fits different forges. Explaining the workflow in a simple and friendly manner would enable people skilled in UX/UI to sketch needed workflows, and then evaluate forges with that design in mind.
The Web Interface chapter in particular gives me a feeling that something is not right:
The workflow is swamped into too many things with strange names. I feel like it is all more complicated than Homebrew, Alpine/Arch, but with my current level of understanding I canât compare.
We just investigated the possibility, the decision is not ours to make. That discussion is going on here. This solution will work even with Pagure, but give us more freedom in case we ever decide to use something else.
We just looked at the services the dist-git is directly interacting with, it would take us much longer to describe whole packager workflow and this was not in the scope of investigation. This is why the links are there for people to look at what those are.
Thatâs a very good start. Iâd move that page into top level section called Workflows, so that it is more visible. And renamed it to Fedora Packagerâs Workflow.
The current description is missing the workflow when the Packager edits specs online. It is the same as PR based workflow, but the PR is created through forking and editing in Pagure interface. As I donât know what dist-git does, I canât say if that makes sense here.
We just looked at the services the dist-git is directly interacting with, it would take us much longer to describe whole packager workflow and this was not in the scope of investigation.
It is still worth to add a Basic Workflow section that describes intended operations from a typical day of dist-git user. Especially if it is not described anywhere.
I donât even know if this is recommended way of doing that, all of this should be done through fedpkg as a packager of the project you donât need to create a fork of the repository. In our proposed solution this kind of operations will be handled by the git forge directly.
I would like to see that in packager documentation as this is not part of this investigation, but is definitely useful for Fedora packagers.
dist-git is not a product, exactly; itâs a term for the overall concept that Fedora package definitions (spec files, source lists, and patches) are stored in git repositories, and the build system (thatâs Koji) retrieves those things from git when performing a build. The name was logically derived from the predecessor system, referred to as dist-cvs, which stored all those things in CVS. It also refers to the concrete artifacts of the concept - the git repositories themselves.
âPagure Dist Gitâ is the specific Pagure instance that acts as a forge-style interface to the dist-git system, which predates it (before we had a Pagure instance, we had a cgit instance on dist-git for read-only web viewing).