Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

github: make language change proposal triage less confusing to the outside #65660

Closed
zephyrtronium opened this issue Feb 11, 2024 · 11 comments
Closed
Labels
Proposal v2 An incompatible library change
Milestone

Comments

@zephyrtronium
Copy link
Contributor

Currently, language change proposals created through the corresponding template are given titles starting with "proposal: Go 2:" and assigned LanguageChange and v2 labels. As an outsider to the process, there are a number of reasons this is confusing.

While I recognize that the situation reflects processes of the respective proposal review teams, it is not intuitive and sometimes actively interferes with outside usage. In particular, the question of why backward compatible language change proposals are titled "Go 2" comes up often. (Most recently this occurred in #65652 (comment), but I recall several other instances on the issue tracker, and I've explained it frequently in other channels as well.) It's also worth noting that the document explaining the proposal process doesn't explain what "Go 2" means.

There are a few measures which I suggest to reduce the confusion around language change proposal triage and make searching more consistent:

  • Title all language change proposals as "proposal: spec:" and drop the "Go 2" moniker. Then the most common question disappears entirely.
  • Label all "proposal: spec:" issues as LanguageChange. Then it's easy to narrow a search to all language change proposals. (Strictly speaking, this isn't necessary if the previous item is implemented, since one could search for "proposal: spec:" in:title, but that phrasing makes it hard to search issue and comment text as well.)
  • Apply the v2 label to backward-incompatible changes only. Ostensibly, these should either be for standard library packages – which will actually be v2 – or rejected as infeasible almost immediately. This would likely require manual intervention during triage.
@seankhliao
Copy link
Member

cc @golang/proposal-review

@ianlancetaylor
Copy link
Contributor

I agree that the current situation is confusing.

We need a clear way to distinguish major and unusual language change proposals from smaller changes like improvements to generic type inference. We send major changes through a separate proposal process designated by the v2 tag. Notably this includes all changes related to error handling, which is by far the most common kind of language change proposal.

While I agree that something should probably change, I think that we need to keep that distinction.

@ianlancetaylor ianlancetaylor added v2 An incompatible library change Proposal labels Feb 12, 2024
@ianlancetaylor ianlancetaylor added this to the Proposal milestone Feb 12, 2024
@ianlancetaylor
Copy link
Contributor

For background, as people who follow these things closely are aware, there are two proposal committees. One is the "ordinary" committee that handles most proposals, tracked in #33502. The other is the "Go 2" committee that handles (most) language changes and incompatible library changes, tracked in #33892. Typically a proposal that seems worthwhile to the second committee is forwarded to the first committee for final review and acceptance. Rejections by the second committee are final.

I don't think there is anything wrong with those processes, but I agree that the labels are confusing.

After discussion, I think a workable approach is to introduce a new Proposal-Major label that we will use for major language changes. Issues with that label will be handled by the Go 2 committee. In general we expect that every issue marked Proposal-Major will have either a LanguageChange label (indicating a language change) or a v2 label (indicating a backward incompatible library change that requires a /v2 version of the package).

If the Go 2 committee passes the proposal to the ordinary committee, the Proposal-Major label will be removed (the LanguageChange or v2 label will remain).

Does anybody see any difficulties with this suggested change? Thanks.

@seankhliao
Copy link
Member

Do we then drop the Go 2: convention in the title and switch to spec: for the language changes?

@ianlancetaylor
Copy link
Contributor

Yes.

@ALTree
Copy link
Member

ALTree commented Mar 7, 2024

introduce a new Proposal-Major label that we will use for major language changes. Issues with that label will be handled by the Go 2 committee. In general we expect that every issue marked Proposal-Major will have either a LanguageChange label (indicating a language change) or a v2 label (indicating a backward incompatible library change that requires a /v2 version of the package).

I would also suggest either removing or renaming the Go2Cleanup label. It looks like most issues with it are just v2 library changes.

@ianlancetaylor
Copy link
Contributor

After further discussion, it seems that most of the proposals handled by the "Go 2" committee are language change proposals. This seems likely to be more true as we now have support for v2 packages in the standard library (with math/rand/v2). Incompatible library changes can now be handled in the "ordinary" proposal committee, as v2 proposals.

Therefore, we can consider the "Go 2" review meeting to be the "language review" meeting. Going forward, language changes will go first to the "language review" meeting and then, if accepted there, go to the ordinary proposal review meeting for final approval.

We already have a LanguageChange label which we will continue to use for issues that are language changes. We can add a new label LanguageChangeReview to indicate that the issue is under the purview of the "language change" meeting. We should add that label to new language change issues. We can remove it if and when a proposal moves to the ordinary committee.

Any thoughts on that approach? Thanks.

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/603401 mentions this issue: HandlingIssues: add notes about proposal process

gopherbot pushed a commit to golang/wiki that referenced this issue Aug 6, 2024
Including plans for handling language changes.

For golang/go#65660

Change-Id: I0fe3cf1ceb8100ce89ddf6271701a2bb906678c3
Reviewed-on: https://go-review.googlesource.com/c/wiki/+/603401
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Commit-Queue: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
@ianlancetaylor
Copy link
Contributor

This is now done. Thanks.

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/603955 mentions this issue: .github: update language change proposal template

@zephyrtronium
Copy link
Contributor Author

zephyrtronium commented Aug 7, 2024

I sent in CL 603955 to remove the "Go 2" mention from the language change proposal issue template and to have it add the LanguageChangeReview label instead of v2. Gerrit didn't add reviewers automatically, and I'm not sure who they should be.

gopherbot pushed a commit that referenced this issue Aug 8, 2024
The language change proposal review process has been adjusted slightly.
Update the corresponding issue template to reflect the changes.

For #65660.

Change-Id: Ic6d3526ab4a7fa09433914fd0b1525eea3a832a0
Reviewed-on: https://go-review.googlesource.com/c/go/+/603955
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Proposal v2 An incompatible library change
Projects
None yet
Development

No branches or pull requests

5 participants