Hi there, I'm Heptapod main maintainer.

On 2/6/20 7:23 AM, Matti Picus wrote:
>>
>>>     - disallows personal forks on the instance
>> -1  (any reason why?)
>
>
> This is a Octobus decision, so maybe Georges can chime in.
Yes, I've just subscribed to that effect. I'll try and answer the
different concerns separately.
> My understanding is that because the heptapod offering is on a trial
> basis, they do not want to open up the possibility for random
> individuals to open "groups" on the instance. In order to fork a repo,
> you need a personal "group" as the target. This means that all
> contributions must be done on the pypy/pypy repo. 

This is not completely exact. There are two different aspects to it

- Personal forks are just not implemented in Heptapod (the software) yet
[1]. I've also written a bit in the FAQ [2] about that. As a side note,
it's more complicated to implement properly forks and merge requests
from them than other lacking features.

- It is true that we don't want to make foss.heptapod.net a space where
anybody can create repositories, because we don't have infinite capacity
(but we hope we can grow) nor enough work force to watch for illegal
content at the scale that implies. But that shouldn't apply to personal
forks once we have them.

> Their workflow for drive-by contributions is to allow any random user
> (who logs in via atlassian, github, or heptapos) to push a branch (or
> topic branch) to the pypy/pypy repo, but only authorized users (they
> call them "project masters" can merge ("publish") from those branches
> to the main development branches. We could override this, as explained
> on the workflow page. 

First I should say that "Master" is standard GitLab terminology in the
version we're based upon, but has been renamed to "Maintainer" in later
versions. It means you have all rights on the repository, except for the
like of removal and transfer [3]

We also plan to introduce an intermediate role, that could be labelled
"Publisher". All of this is indeed backed by the "phases" concept in
Mercurial, in which changesets can be "draft" (amendable) or "public"
(set in stone) and the fact that topics are additional metadata for
draft changesets only. In Heptapod, by default, we enforce that
conversely all drafts must have topics.

So, the default Heptapod workflow is to grant the Contributor role to
people that wish to contribute – they can push topics and submit merge
requests – whereas full commit rights translate in the Master role. This
is explained and motivated in more detail in the FAQ [4] and in the
Octobus blog post [5].

An important implication of all this is that it makes activating the
evolve extension [6] almost necessary in practice. It's not meant to be
mandatory by itself, see "Mutability and Evolution"  in [5], but once a
draft changeset has been amended you'd get surprising warnings if you
don't have evolve. Note also that open Bitbucket pull requests are
imported as topics [7], and that involves amendments.

To conclude, we know that the picture is not perfect and that we could
make the transition easier and clearer. We're working on improving all
of that, but we have lots of things to do, and we need actual user
feedback - such as yours - to prioritize them properly. We're listening.

Best,

PS: I'm considering coming to the next PyPy sprint in Switzerland.

[1] https://foss.heptapod.net/heptapod/heptapod/issues/24

[2] https://heptapod.net/pages/faq.html#forks

[3] https://docs.gitlab.com/ce/user/permissions.html

[4] https://heptapod.net/pages/faq.html#workflow

[5] https://octobus.net/blog/2019-09-04-heptapod-workflow.html

[6] https://pypi.org/project/hg-evolve/ and
https://www.mercurial-scm.org/doc/evolution/user-guide.html

[7] https://foss.heptapod.net/heptapod/heptapod/issues/106

-- 
Georges Racinet
https://octobus.net, https://heptapod.net
GPG: BF5456F4DC625443849B6E58EE20CA44EF691D39, sur serveurs publics

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to