On Fri, Mar 9, 2018 at 12:00 AM, Nathaniel Smith <njs@pobox.com> wrote:
On Thu, Mar 8, 2018 at 10:26 PM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
> On Thu, Mar 8, 2018 at 8:22 PM, Nathaniel Smith <njs@pobox.com> wrote:
>> On Thu, Mar 8, 2018 at 7:06 AM, Marten van Kerkwijk
>> <m.h.vankerkwijk@gmail.com> wrote:
>> > Hi Nathaniel,
>> >
>> > Overall, hugely in favour!  For detailed comments, it would be good to
>> > have a link to a PR; could you put that up?
>> Well, there's a PR here: https://github.com/numpy/numpy/pull/10706
>> But, this raises a question :-). (One which also came up here:
>> https://github.com/numpy/numpy/pull/10704#issuecomment-371684170)
>> There are sensible two workflows we could use (or at least, two that I
>> can think of):
>> 1. We merge updates to the NEPs as we go, so that whatever's in the
>> repo is the current draft. Anyone can go to the NEP webpage at
>> http://numpy.org/neps (WIP, see #10702) to see the latest version of
>> all NEPs, whether accepted, rejected, or in progress. Discussion
>> happens on the mailing list, and line-by-line feedback can be done by
>> quote-replying and commenting on individual lines. From time to time,
>> the NEP author takes all the accumulated feedback, updates the
>> document, and makes a new post to the list to let people know about
>> the updated version.
>> This is how python-dev handles PEPs.
>> 2. We use Github itself to manage the review. The repo only contains
>> "accepted" NEPs; draft NEPs are represented by open PRs, and rejected
>> NEPs are represented by PRs that were closed-without-merging.
>> Discussion uses Github's commenting/review tools, and happens in the
>> PR itself.
>> This is roughly how Rust handles their RFC process, for example:
>> https://github.com/rust-lang/rfcs
>> Trying to do some hybrid version of these seems like it would be
>> pretty painful, so we should pick one.
>> Given that historically we've tried to use the mailing list for
>> substantive features/planning discussions, and that our NEP process
>> has been much closer to workflow 1 than workflow 2 (e.g., there are
>> already a bunch of old NEPs already in the repo that are effectively
>> rejected/withdrawn), I think we should maybe continue that way, and
>> keep discussions here?
>> So my suggestion is discussion should happen on the list, and NEP
>> updates should be merged promptly, or just self-merged. Sound good?
> Agreed that overall (1) is better than (2), rejected NEPs should be visible.
> However there's no need for super-quick self-merge, and I think it would be
> counter-productive.
> Instead, just send a PR, leave it open for some discussion, and update for
> detailed comments (as well as long in-depth discussions that only a couple
> of people care about) in the Github UI and major ones on the list. Once it's
> stabilized a bit, then merge with status "Draft" and update once in a while.
> I think this is also much more in like with what python-dev does, I have
> seen substantial discussion on Github and have not seen quick self-merges.

Not sure what you mean about python-dev. Are you looking at the peps
repository? https://github.com/python/peps

I was mostly thinking about packaging PEPs that are now also there, but were separate. Stuff like https://github.com/pypa/interoperability-peps/pull/54. There seems to be significantly more comments on packaging things than on other PEPs.

>From a quick skim, it looks like of the last 37 commits, only 8 came
in through PRs and the other 29 were pushed directly by committers
without any review. 3 of the 8 PRs were self-merged immediately after
submission, and of the remaining 5 PRs, 4 of them were from external
contributors who didn't have commit rights, and the 1 other was a fix
to the repo README, rather than an actual PEP change. I don't think
I've ever seen any kind of substantive discussion in that repo -- any
discussion is mostly restricted to helping new contributors with
procedural stuff, maybe formatting issues or fixes to the PEP tooling.

Anyway, just because python-dev does it that way doesn't mean that we
have to too.

But if we split discussions between GH and the mailing list, then
we're definitely going to end up discussing substantive issues there
(how do we know which discussions only a couple of people care
about?), and trying to juggle that seems confusing to me, plus makes
it harder to track down what happened later, after we've had multiple
PRs each with their own comments...

It's not imho, because it's what we already do on this list. Github is a superior review interface over mailing list, so my vote goes to using that interface, while keeping this list in the loop on critical stuff and decisions about to be made.