capi-workgroup / decisions

Discussion and voting on specific issues
4 stars 1 forks source link

Overwhelmed by requests to choose #17

Closed gvanrossum closed 1 month ago

gvanrossum commented 3 months ago

I received two separate requests for decisions today in this repo, each with the task to choose between a number of incompatible choices. Clicking on the discussion links revealed very long contentious discussions that I had not been following before.

I would like to request that in such cases, the participants in the discussion get together (somehow) before kicking the decision up to the full C API WG and prepare a self-contained proposal that shows the minimal number of choices that the participants cannot agree on, and for each shows the pros and cons.

I propose that if the participants cannot even produce such a document, the full WG cannot possibly help and you cannot request a decision. Asking each WG member to read the entire past discussion and form an opinion based on that is too costly in terms of time investment for the WG members.

Note that this is similar to the PEP process: While a PEP must link to the discussion, it is also required to summarize the alternatives considered and rejected and explain the reasoning behind those choices. A PEP that leaves questions up to the SC will normally be kicked back straight to the discussion.

Ideally, for the C API WG, a single compromise proposal that all parties can (reluctantly) agree to should be presented to the full WG, with rationale for the controversial aspects of the proposal. In extreme cases it may be necessary to ask the full WG for its opinion on how to weigh the pros and cons of two alternatives. But asking the WG to just vote on four alternatives is abuse of the WG process.

encukou commented 3 months ago

Sounds good. Sadly, I read this after replying on those issues (and adding a new option). Sorry!

gvanrossum commented 3 months ago

To you (@encukou) and @zooba specifically, can you work with @vstinner to work on compromise proposals for those two decisions that contain only 1 or 2 options with a summary of Pros and Cons?

zooba commented 3 months ago

I think it's helpful to bring the discussion over here away from the original issues, but the first step shouldn't be to request voting.

They're not making it here until it's clear that we're not reaching a compromise and need to choose between two exclusionary options, however we should be able to present those options more clearly before expecting the rest of the WG to get up to speed (and shouldn't be expecting anyone to read the entire original issues).

Maybe there's a better place to take the discussion? But we do want anyone to be able to jump in, as we get better designs that way. So maybe we should just say "don't ping everyone for voting in the first post" and we agree to make a new post after discussion that's specifically leading towards it?

gvanrossum commented 3 months ago

Couldn't the participants in the debate (assuming they're still talking) start working towards a summary of the leading proposals (hopefully no more than two) with pros and cons for each?

Ideally of course during this work they will find agreement somewhere in the middle -- like in the PEP world, I consider battling proposals a sign of dysfunction, and it should be extremely rare for something to be kicked back to the SC (or, in the past, BDFL :-) with multiple alternatives still standing.

But either way, the original discussion thread should be the place where participants work on either a compromise or at least a self-contained summary of the discussion. I don't see why this should continue in the wg's repo. (The SC has a tracker for SC requests, and they strongly rebuke people who take up the discussion in that tracker.)

I also expect that we may have to set up occasional in-person meetings where we can discuss the most controversial issues. That's what we did in the typing council, and it has worked well. (Someone was very disappointed but nobody threatened to walk away with their marbles.)

zooba commented 3 months ago

I'm very much in favour of in-person (presumably video call) discussions, with a suitable agenda of course.

I think we'd need another asynchronous discussion venue if not this repository, and most likely it's just another repository. I assume the SC has a private repo or Discord/IRC (or possibly just many email threads?) for discussions between meetings. I don't feel we need something private, maybe we just need to tag better?

Hopefully most of our discussions will generalise in the future, and certainly once they land here I try to take the view that we're deciding for all future similar problems. Leaving the discussion on one specific issue in the main repo is really just going to lose it (though we do try to reach consensus there before they come here).

We're really just establishing norms for how we work, since we haven't done that yet, so this is a really good discussion to have. I hope @vstinner can chime in as well

vstinner commented 3 months ago

For PyTime, it seems like working on HackMD works better than discussing here, in issues: https://hackmd.io/lpuVQBpiTXy2_xfcvd9ADQ

I suppose that this issue was triggered by the PyTime discussion. We took a decision, but then Cython comes back and asked for a different API. Since a decision was already taken, I made the assumption that we should directly discuss in the C API WG Decisions project. Maybe the regular Python bug tracker or any place in Python development would be better.

Also, I took the habit to put a vote directly when I create an issue. Apparently, it was way too early. Next time, I will wait until the dust settle down before proposing to open a vote.

gvanrossum commented 3 months ago

Thank you. I was nearly to the point where I wanted to withdraw and recommend finding another member for the WG, to avoid burning out myself.

vstinner commented 3 months ago

Thank you. I was nearly to the point where I wanted to withdraw and recommend finding another member for the WG, to avoid burning out myself.

Me too.

gvanrossum commented 3 months ago

Hopefully, with patience, we will become more productive.

vstinner commented 1 month ago

@gvanrossum: Can we close this issue?

gvanrossum commented 1 month ago

Sure, I think we know where we stand.