DevHeads.net

new section for 'Join the package collection maintainers'

Dear sir or madam,

the other day I wanted to contribute a fix to an RPM package's spec file.

I struggled with uploading my changes to my fork on src.fedoraproject.org.
puiterwijk and clime from #fedora-admin IRC channel on freenode.net pointed me in the right direction:
* 'packager' status for FAS account required, else all repos, including forks, are read-only
* workaround is to use a "Remote pull-request"
* requirement of 'packager' status is being worked on.

With this information contributing the fix was easy.

I could not find the information given on IRC channel in the documentation of Fedora or Pagure.
Hence I created a pull-request to update Pagure's documentation:
<a href="https://pagure.io/pagure/pull-request/3057" title="https://pagure.io/pagure/pull-request/3057">https://pagure.io/pagure/pull-request/3057</a>

pingou would rather not include it in Pagure's documentation because, from his point of view, it is too specific to <a href="https://src.fedoraproject.org" title="https://src.fedoraproject.org">https://src.fedoraproject.org</a> for Pagure's documentation.

I will remove my proposal to modify "doc/usage/pull_requests.rst" from the pull request. Hence I write it down here as a reference:
* add at line 5:
At the moment any repos, including forks, on `src.fedoraproject.org <https://src.fedoraproject.org>` require your `FAS account <https://fedoraproject.org/wiki/Account_System>` to have 'packager' status for write access (and read access if you use the "SSH" Source GIT URL).
Either you request the status or you use the :ref:`Remote-Git-to-Pagure-pull-request` workaround.
The requirement to be a packager is being worked on.

* replace at line 23:
You can create a pull request from another git hosting platform (e.g. GitHub, GitLab).
with:
You can create a pull request from another git hosting platform (e.g. `Pagure <https://pagure.io/new>` (for src.fedoraproject.org), GitHub, GitLab).

Now I try to add the information to Fedora's documentation.
From my point of view, this would be a good website:
<a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers" title="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers">https://fedoraproject.org/wiki/Join_the_package_collection_maintainers</a>

I propose to:
add a new major point 2, so:
"2. How to join the Fedora Package Collection Maintainers?"
will be:
"3. How to join the Fedora Package Collection Maintainers?"

The new major point 2 would be something like:
---8<---
2. Notes for one-off contributors

Your contribution is welcome.

At first you must <Create a Fedora Account (<a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join#Create_a_Fedora_Account" title="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join#Create_a_Fedora_Account">https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?r...</a>)>.

Before proceeding, please sync your account by login on <a href="https://src.fedoraproject.org/" title="https://src.fedoraproject.org/">https://src.fedoraproject.org/</a> using your FAS credentials.

At the moment any repos, including forks, on <a href="https://src.fedoraproject.org" title="https://src.fedoraproject.org">https://src.fedoraproject.org</a> require your FAS account to have 'packager' status for write access (and read access if you use the "SSH" Source GIT URL).
Either you get the status or you use a <Remote pull-request (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>, f.e. with <Pagure (<a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>)>, as a workaround.
The requirement to be a packager is being worked on.
---8<---

What do you think?
I can edit the wiki.
I ask first in order to avoid an edit war.

It is OK for me if you do not want this change. Just let me know.

Comments

Re: new section for 'Join the package collection maintainers'

By Athos Ribeiro at 03/12/2018 - 20:02

On Tue, Mar 13, 2018 at 12:35:19AM +0100, René Genz wrote:
See 2.3.1 - It deals with the FAS account creation. Maybe you could link
there to avoid replication :)

I would rather see something like:

If you are not an Fedora packager, i.e., you are not in the 'packager'
FAS group, you can send pull requests to src.fedoraproject.org. To do
so, you must use a <Remote pull-request
(<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>,
f.e. with <Pagure (<a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>)>

Also, I do not understood what you meant with

"The requirement to be a packager is being worked on."

I think it is valuable information and should be added to the wiki :)
Thanks!

Can you? Note that to edit the wiki you must be in at least one extra
FAS group other the the CLA ones.

Re: new section for 'Join the package collection maintainers'

By =?UTF-8?Q?Ren=c... at 03/13/2018 - 18:30

On 13.03.2018 01:02, Athos Ribeiro wrote:
The proposed link:
<a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join#Create_a_Fedora_Account" title="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join#Create_a_Fedora_Account">https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?r...</a>
links to section 2.1.3 "Create a Fedora Account".

Or do you recommend the following link for the same target?
<a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Create_a_Fedora_Account" title="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Create_a_Fedora_Account">https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#C...</a>

Your proposal is easier to read. I will use it.
To explain why non-packager have to use remote pull-requests, instead of forking on src.fedoraproject.org, I would append something like:

Any repos on <a href="https://src.fedoraproject.org" title="https://src.fedoraproject.org">https://src.fedoraproject.org</a>, including forks, are read-only for non-packager. Only packager can write.
It is being worked on that forks will be writable for non-packager.

As far as I remember that is what puiterwijk wrote in the IRC channel.
Due to read-only forks for non-packager on src.fedoraproject.org the code must be hosted on a remote git repo and a remote pull-requests must be used.
I assume puiterwijk meant that in the future forks on src.fedoraproject.org will be writable for non-packager.

Thank you for your support and help. :)

In my FAS account one group reads "wikiedit (user)".
I requested that membership in order to fix a wrong command in a SSSD or FreeIPA testcase in the wiki during Fedora 26 branching as far as I remember.

Re: new section for 'Join the package collection maintainers'

By Jonathan Wakely at 03/13/2018 - 10:13

On 12/03/18 21:02 -0300, Athos Ribeiro wrote:
Should your new item really come first? The page is about joining the
package maintainers, so why should "how to contribute without joining"
come before "how to join"?

I don't think it's helpful to mention the SSH URL part. If you don't
have write access, just use the HTTPS URL.

This should be "for example" or "e.g." not "f.e."

And it doesn't seem like a workaround, it seems like the proper way to
do it.

Yes, I agree it's better to say "in the 'packager' FAS group" rather
than "have 'packager' status".

How about:

3. One-off contributions

Changes to existing packages can be suggested by submitting <pull
requests (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html" title="https://docs.pagure.org/pagure/usage/pull_requests.html">https://docs.pagure.org/pagure/usage/pull_requests.html</a>)>.
You must have a <Fedora account (#Create_a_Fedora_Account)> to create
a pull request. If your account is not in the 'packager' group then
you cannot create a fork on src.fedoraproject.org so must use an
external Git hosting platform (e.g. <a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>) and use a
<Remote pull-request
(<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>.

Re: new section for 'Join the package collection maintainers'

By =?UTF-8?Q?Ren=c... at 03/13/2018 - 20:02

On 13.03.2018 15:13, Jonathan Wakely wrote:
I considered my case, only a one-off contribution, it is less text to read.
I am fine with adding the new information to the end.

[snip]
The SSH URL can be used to download too, but `git clone` printed 'permission denied' as far as I remember.

OK

Other git hosting platforms support write access for users' forks.
I was surprised to find out this is not the case for src.fedoraproject.org.
Of course, with this behavior the remote pull-request is the proper way to do it.

OK

Should it not be written with a comma, like "If ... group, then"?

You can create a fork on src.fedoraproject.org if your account is not a member of the 'packager' group.
For this account and repo:
* up- and downloading with the SSH URL fails
* downloading with the HTTPS URL works
(I guess uploading with the HTTPS URL is not supported, like it is in pagure.io)

Thank you for your input. :)
Too late for me to write a new version of the proposal today. Feel free to beat me to it.

Re: new section for 'Join the package collection maintainers'

By Jonathan Wakely at 03/14/2018 - 09:40

On 14/03/18 01:02 +0100, René Genz wrote:
That's not a very good reason. The topic of the page should come

You could add a link saying something like "To make a one-off
contribution see below" to skip past the main content of the page, but
the new content should still come after the main content.

No.

Really?

That's not creating a fork on src.fedoraproject.org, it's cloning the
repo onto your local machine.

Re: new section for 'Join the package collection maintainers'

By =?UTF-8?Q?Ren=c... at 03/14/2018 - 19:54

On 14.03.2018 14:40, Jonathan Wakely wrote:
I will add it to the end of the table of contents and the end of the page. Less links that could break.

[snip]
Yes.

True, I wanted to describe the behavior of the repo for accounts without 'packager' group membership.

Taking feedback from Athos and you into account here is a new proposal:
---8<---
3. One-off contributions

Changes to existing packages can be suggested by submitting <pull requests (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html" title="https://docs.pagure.org/pagure/usage/pull_requests.html">https://docs.pagure.org/pagure/usage/pull_requests.html</a>)>.
You must have a <Fedora account (#Create_a_Fedora_Account)> to create a pull request.

If your account is not a member of the 'packager' group:
* cloning your fork works only with the HTTPS URL and
* you cannot write to your fork
That is why you must upload your changes to an external Git hosting platform (e.g. <Pagure (<a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>)>) and use a <Remote pull-request (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>.

The requirement for accounts to be a member of the 'packager' group in order to be able to write to their forks on src.fedoraproject.org is being worked on.
---8<---

Anything that should be changed?

Re: new section for 'Join the package collection maintainers'

By Jonathan Wakely at 03/15/2018 - 12:09

On 15/03/18 00:54 +0100, René Genz wrote:
Wow, that's weird.

What is "your fork"? Nothing on this page talks about having a fork.

And since you can't write to it, there is not point creating your own
fork. You might as well just create the fork somewhere else like
pagure.io

Explaining that you can't write to your fork is not necessary if you
don't encourage people to create useless forks.

So I still think my previous suggestion is better, with one small
correction:

Changes to existing packages can be suggested by submitting <pull
requests (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html" title="https://docs.pagure.org/pagure/usage/pull_requests.html">https://docs.pagure.org/pagure/usage/pull_requests.html</a>)>.
You must have a <Fedora account (#Create_a_Fedora_Account)> to create
a pull request. If your account is not in the 'packager' group then
you cannot push changes to forks on src.fedoraproject.org so must use
an external Git hosting platform (e.g. <a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>) and use
a <Remote pull-request
(<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>.

(This just changes "cannot create a fork on src.fp.org" to "cannot
push changes to forks on src.fp.o" compared to my previous suggestion.

Re: new section for 'Join the package collection maintainers'

By =?UTF-8?Q?Ren=c... at 03/15/2018 - 20:08

On 15.03.2018 17:09, Jonathan Wakely wrote:
Package maintainers do not need a fork because they can write to the repository.
One-off contributors use their copy of the project (="fork") to contribute changes to the project with the help of pull requests.
On the website of the "pull request" link the text "Create a Fork on Pagure" links to:
<a href="https://docs.pagure.org/pagure/usage/forks.html#create-fork" title="https://docs.pagure.org/pagure/usage/forks.html#create-fork">https://docs.pagure.org/pagure/usage/forks.html#create-fork</a>

I made some minor changes (add a link, add "you", add a comma (because the last sentence is a conditional sentence to me)):
---8<---
3. One-off contributions
Changes to <existing packages (<a href="https://src.fedoraproject.org/browse/projects/" title="https://src.fedoraproject.org/browse/projects/">https://src.fedoraproject.org/browse/projects/</a>)> can be suggested by submitting <pull requests (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html" title="https://docs.pagure.org/pagure/usage/pull_requests.html">https://docs.pagure.org/pagure/usage/pull_requests.html</a>)>.
You must have a <Fedora account (#Create_a_Fedora_Account)> to create a pull request.
If your account is not in the 'packager' group, then you cannot push changes to forks on src.fedoraproject.org so you must use an external Git hosting platform (e.g. <a href="https://pagure.io/new" title="https://pagure.io/new">https://pagure.io/new</a>) and use <Remote pull-requests (<a href="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request" title="https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pagure-pull-request">https://docs.pagure.org/pagure/usage/pull_requests.html#remote-git-to-pa...</a>)>.
---8<---
Is it OK?

Re: new section for 'Join the package collection maintainers'

By =?UTF-8?Q?Ren=c... at 03/17/2018 - 11:51

Thanks to Jonathan, Athos, and Tom for the discussion.
I added one of Tom's links and pushed the text:
<a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#One-off_contributions" title="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#One-off_contributions">https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#O...</a>

I am going to unsubscribe from this list due to high volume.

Re: new section for 'Join the package collection maintainers'

By Jonathan Wakely at 03/19/2018 - 14:13

On 17/03/18 16:51 +0100, René Genz wrote:
Thanks!

Re: new section for 'Join the package collection maintainers'

By Tom Hughes at 03/15/2018 - 12:24

The intention is that you should be able to. There is a ticket somewhere
where Fesco said that people should be able to push to their own forks
without being in the packager group.

It just hasn't actually been implemented yet.

Here are the relevant tickets:

<a href="https://pagure.io/fesco/issue/1770" title="https://pagure.io/fesco/issue/1770">https://pagure.io/fesco/issue/1770</a>
<a href="https://pagure.io/fedora-infrastructure/issue/6361" title="https://pagure.io/fedora-infrastructure/issue/6361">https://pagure.io/fedora-infrastructure/issue/6361</a>

Tom

Re: new section for 'Join the package collection maintainers'

By Jonathan Wakely at 03/15/2018 - 13:24

On 15/03/18 16:24 +0000, Tom Hughes wrote:
But as Athos said, when that happens the whole thing will need to be
rewritten anyway. Until then it doesn't add anything very useful to
the "here's how to make a one-off contribution" docs.

Re: new section for 'Join the package collection maintainers'

By Athos Ribeiro at 03/14/2018 - 20:26

On Thu, Mar 15, 2018 at 12:54:07AM +0100, René Genz wrote:
Looks great. I'd suggest the following substitution:
s/That is why/Hence,/

I believe this last paragraph does not add anything to the documentation
and could be ommited. Whenever the feature is implemented, the whole
section will need to be refactored anyway.

Thanks for the effort :)

Re: new section for 'Join the package collection maintainers'

By Athos Ribeiro at 03/13/2018 - 10:17

On Tue, Mar 13, 2018 at 02:13:14PM +0000, Jonathan Wakely wrote:
[snip...]
I believe this will do it. +1