DevHeads.net

Pagure roles at Fedora

Hi,

Pagure seems to play several roles in the Fedora community, but it's a bit
confusing. Perhaps somebody can respond (or write a Wiki article on the
topic) to clear up some confusion.

For example, I hear/read the term "dist-git" a lot, but most of the
conversation about that seems to focus on Pagure being used to host Fedora
source repos. I don't really understand how these terms relate to each
other.

Another example: all the documentation for the transition away from Pkgdb
seems to reference pagure.io. However, that doesn't appear to be where the
things have moved to. Rather, things have moved to a different instance of
Pagure hosted at src.fedoraproject.org. How are these two separate
instances of Pagure related to one another, why are they separate, and what
separate roles do they each serve for Fedora packagers and contributors?

Are there any other instances of Pagure that are relevant to Fedora
packagers?

Are there any other roles that an existing instance of Pagure should be
serving, but currently isn't? For example, I've noticed that
src.fedoraproject.org has disabled issues on repos. However, I personally
would love to use it as an issue tracker instead of Bugzilla. I understand
that Bugzilla is more integrated with other services, but having issues
enabled would be a nice option in the future, as moving issue trackers
closer to the source is one of the best things that has come out of the
various git hosting services.

So far, I like Pagure. I also like similar git hosting services, such as
GitLab and GitHub, but I don't think we're making the best use of it, if
we're customizing separate deployments of it instead of providing a generic
service and customizing the integrations to it. Perhaps somebody can help
explain, with a summary of the choices which have been made and the reasons
behind those choices, why (for better or worse) this is the direction
Fedora is headed?

Thanks,

Christopher

Comments

Re: Pagure roles at Fedora

By Kevin Fenzi at 10/11/2017 - 22:57

On 10/11/2017 07:23 PM, Christopher wrote:
I can try...

dist-git is <a href="https://github.com/release-engineering/dist-git" title="https://github.com/release-engineering/dist-git">https://github.com/release-engineering/dist-git</a>
Basically a setup of git and scripts for hosting a collection of repos +
lookaside cache. pkgs.fedoraproject.org was/is a example of this.

pagure.io is for "upstream" projects and general trackers. This is a
replacement for fedorahosted.org and similar to github or gitlab.

src.fedoraproject.org is a pagure instance + a pagure dist git extension
( <a href="https://pagure.io/pagure-dist-git" title="https://pagure.io/pagure-dist-git">https://pagure.io/pagure-dist-git</a> ). It is only for distribution
packages. It's setup differently to work with the special cases distro
packages have vs general source code. Things like no issue trackers (we
use bugzilla), groups synced from fas, ssh keys synced from fas, etc.

There is a staging instance we use to test new pagure releases:
<a href="https://stg.pagure.io" title="https://stg.pagure.io">https://stg.pagure.io</a>

We could of course do this, but yeah, there's a bunch of things we use
bugzilla for right now. Someone would have to look at all those and
propose something to fesco and get the community to buy in.

I did my best above. Feel free to ask more, or wait for better answers
from Pingou. ;)

kevin

Re: Pagure roles at Fedora

By Ed Marshall at 10/12/2017 - 01:41

On 10/11/2017 08:57 PM, Kevin Fenzi wrote:
I wish I was kidding, but this trips me up with embarrassingly high
frequency. :)

Re: Pagure roles at Fedora

By Pierre-Yves at 10/12/2017 - 02:43

On Wed, Oct 11, 2017 at 11:41:57PM -0700, Ed Marshall wrote:
The header is different but we could see to make them a little more distinct.
Could you open a ticket with the design team? They would be the better ones to
address this :)

Thanks!
Pierre

Re: Pagure roles at Fedora

By Christopher at 10/12/2017 - 00:24

Thanks, that definitely helps.

I think the hardest part of being a contributor to Fedora is trying to get
an understanding of how all the backend stuff fits together, so that you
understand where you fit as a contributor. Some tools like `fedpkg` and
`fedrepo_req` can help make certain repetitive tasks easier, but they have
the unfortunate side-effect of obscuring the infrastructure so that it can
be hard to grok.

Can you explain how the branches in Pagure (specifically,
src.fedoraproject.org) map to the new SLAs (after F27), and what backend
pieces are changing to compose a Fedora distribution from these branches
after F27? What infrastructure metadata is stored about branches, so the
right branch is used for composing a particular distribution? And how do
packagers view/track this metadata, as it pertains to the branches in their
repos in Pagure? Does src.fedoraproject.org fit in to this picture at all,
or is all that done outside of that particular Pagure instance (aside from
the git branches themselves, which obviously would exist in those repos)?

Re: Pagure roles at Fedora

By Kevin Fenzi at 10/12/2017 - 11:01

Yeah, and it doesn't help that our documentation is... not great. ;(

That sort of data is not in pagure at al, but rather in an app called
PDC ( <a href="https://pdc.fedoraproject.org/" title="https://pdc.fedoraproject.org/">https://pdc.fedoraproject.org/</a> ) Product definition center.

It keeps track of slas, branches, etc. Pagure queries PDC to tell what
branches should exist, so when you request a new branch it gets added to
PDC and then pagure knows it's acceptable.

I'll let someone from modularity side talk about how we compose post
f28, but from a high level theres module definition files that pull in
different branches to compose a module and a bunch of those are added to
compose a release. (At least my understanding, I could be wrong here)

kevin