On Tue, May 28, 2019 at 12:46 PM Matt Farina <matt.far...@gmail.com> wrote:
> Let me be a little more clear. In the docs (see the version prior to the > 2018 update at > https://github.com/golang/proposal/tree/a16a937b3b39c4c42f063842407c30c4c451b524#process) > there was no documentation on the proposal reviewers on the Go team. How > proposals were reviewed was not *documented*. Numerous people, myself > included, found this by seeing comments on issues that referred to this > group. Saying something in a speech at a Gothercon is not documentation. > People who were not paying attention, were not there, or forgot we also not > able to come upon this information. > > This is why I referred to it not being documented publicly. > The first commit <https://github.com/golang/proposal/commit/01029b917fbbfcf1cbf53df42c8c3f48da9ffe7d#diff-04c6e90faac2675aa89e2176d2eec7d8> of the proposal repo's README.md in 2015 had links to these talks: To learn more about Go's origins and development process, see the talks [How Go Was Made](http://talks.golang.org/2015/how-go-was-made.slide), [The Evolution of Go]( http://talks.golang.org/2015/gophercon-goevolution.slide), and [Go, Open Source, Community](http://blog.golang.org/open-source) from GopherCon 2015. More importantly, that initial README also lays out the proposal process, which aims to structure a community discussion that leads to overall consensus, not a judgement from a supreme court of Go. In 2016 we realized that we needed to document what happens when consensus cannot be reached but we still have to move forward, and we did that. That version said: Once comments and revisions on the design doc wind down, there is a final discussion about the proposal. The goal of the final discussion is to reach agreement on the next step: (1) accept or (2) decline. The discussion is expected to be resolved in a timely manner. If clear agreement cannot be reached, the arbiter (rsc@) reviews the discussion and makes the decision to accept or decline. That last line is the last resort. And I wanted to make clear that even then I am discussing that discussion carefully and thoughtfully with others rather than just flying solo. So I added the text about the proposal review group in 2018. That text emphasizes first that proposal review is mainly about facilitating discussions: *Proposal Review* A group of Go team members holds “proposal review meetings” approximately weekly to review pending proposals. The principal goal of the review meeting is to make sure that proposals are receiving attention from the right people, by cc'ing relevant developers, raising important questions, pinging lapsed discussions, and generally trying to guide discussion toward agreement about the outcome. The discussion itself is expected to happen on the issue tracker, so that anyone can take part. The proposal review meetings also identify issues where consensus has been reached and the process can be advanced to the next step (by marking the proposal accepted or declined or by asking for a design doc). And then it also elaborates on the last-resort decision-making to make clear that even if we can't get to consensus among all the people commenting on the issue, we still try to find a decision that all the proposal reviewers agree is appropriate (that is, I don't just do whatever I want): *Consensus and Disagreement* The goal of the proposal process is to reach general consensus about the outcome in a timely manner. If general consensus cannot be reached, the proposal review group decides the next step by reviewing and discussing the issue and reaching a consensus among themselves. If even consensus among the proposal review group cannot be reached (which would be exceedingly unusual), the arbiter (rsc@) reviews the discussion and decides the next step. It has never happened that the proposal review group was unable to agree about the next step for a given issue. The number of issues that even get that far is very small too. The vast majority have a clear outcome. > I think this highlights a documentation gap or place where people have > different understandings. Is the organizational hierarchy of Go documented > somewhere? Lots of phrases are thrown around and different people can throw > different meanings on them. When I refer to that group I'm thinking of > things like the Kubernetes Steering Committee. It is the core set of people > responsible for the decisions on the project. This is a smaller group than > the committers. It is the decision/direction makers for the project. > > This group, as far as I'm aware, is all Googlers. It may not be documented > and there may be assumptions. This is what I expect from a company run > project. > As you noted, years ago I used to sign things by mentioning @golang/proposal-review, to try to make transparent who the review group was. Then it was pointed out to me that GitHub doesn't let people outside the golang org see the membership list, so I stopped. (If anyone knows how to make the membership 100% public in GitHub settings I would gladly do it. My options are "Secret" and "Visible" and it is set to "Visible".) But FWIW, my understanding is that because you, @mattfarina, are in the golang org, you should be able to see it at https://github.com/orgs/golang/teams/proposal-review/members. It is not all Google employees working on Go. The review group started out as Andrew Gerrand and Brad Fitzpatrick (who started the proposal process) and Robert Griesemer, Ian Lance Taylor, and Rob Pike (who started Go). I replaced Andrew when he wanted to step back. We've since added Andy Bonventre, our lead for the subteam focused specifically on the open source, and Steve Francia, our product manager. And we added Peter Weinberger, because he knows an incredible amount about computing generally and helps us reach better decisions. Again, we spend the bulk of our time making sure the discussions are proceeding well, not being the deciders of last resort. Best, Russ -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAA8EjDSDKpwgQHMnCzREW4L_tL9U5AumhOSg_m8aX1G0Q8%2BHVg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.