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

Open
zephyrtronium opened this issue Feb 11, 2024 · 6 comments
Labels
Proposal v2 A language change or 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 A language change or 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Proposal v2 A language change or incompatible library change
Projects
None yet
Development

No branches or pull requests

4 participants