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

Update readme and template to reflect actual process being followed #275

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

dfawley
Copy link
Member

@dfawley dfawley commented Nov 16, 2021

No description provided.

Copy link
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good! My comments are fairly minor.

README.md Outdated
## Updating proposals
When updating a proposal, the PR description should be named as follows:

$CategoryName## update: <description of change>``
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove trailing back-ticks.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

README.md Outdated
- ``Gnnnn`` - Protocol level changes.

## Updating proposals
When updating a proposal, the PR description should be named as follows:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should say something about when and why we would update an existing gRFC instead of creating a new one? For example, maybe something like "Sometimes, after a gRFC is approved, small changes are needed to the design. In these cases, it is often simpler to modify the existing gRFC rather than create a new one."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done (with slightly different wording).

Commits must not be squashed; the commit history serves as a log of changes
made to the proposal.
the APPROVER will approve the PR on GitHub. The PR will then be merged by either
the OWNER, if possible, or the APPROVER otherwise.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we maybe explicitly say something here like "A proposal being merged indicates that it has been approved", just to make the state clear?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems pretty clear from the preceding sentence to me... I added a following sentence to remove any doubt. PTAL.

@@ -2,21 +2,19 @@ Title
----
* Author(s): [Author Name, Co-Author Name ...]
* Approver: a11r
* Status: {Draft, In Review, Ready for Implementation, Implemented}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking that we should probably go through the existing gRFCs and remove the "Status:" field, since it's pretty useless and misleading. But we can do that in a separate PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I was thinking of the same, but maybe we should wait a month or two, since there are PRs pending with Status fields in them as well.

Copy link
Member Author

@dfawley dfawley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the comments. PTAL

@@ -2,21 +2,19 @@ Title
----
* Author(s): [Author Name, Co-Author Name ...]
* Approver: a11r
* Status: {Draft, In Review, Ready for Implementation, Implemented}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I was thinking of the same, but maybe we should wait a month or two, since there are PRs pending with Status fields in them as well.

Commits must not be squashed; the commit history serves as a log of changes
made to the proposal.
the APPROVER will approve the PR on GitHub. The PR will then be merged by either
the OWNER, if possible, or the APPROVER otherwise.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems pretty clear from the preceding sentence to me... I added a following sentence to remove any doubt. PTAL.

README.md Outdated
## Updating proposals
When updating a proposal, the PR description should be named as follows:

$CategoryName## update: <description of change>``
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

README.md Outdated
- ``Gnnnn`` - Protocol level changes.

## Updating proposals
When updating a proposal, the PR description should be named as follows:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done (with slightly different wording).

GRFC-TEMPLATE.md Show resolved Hide resolved
README.md Outdated

## Updating proposals

Sometimes small changes are needed to approved proposals. Rather than create
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do think we should have some hints for what "small" is.

Sometimes small changes are needed to approved proposals. For example, editorial fixes, clarifying text, and detailed fixes noticed during implementation or usage. Rather than create new proposals for such changes, it is often better to revise the existing one.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly I think anything that's not considered a "major" change should be a modification of a gRFC instead of a new one. A major change would be like an entirely different API or a wholly different mechanism for solving the same problem. "Minor" as described below, IMO, is for editorial fixes and clarifying text, which is allowed to be approved without the 10 day waiting period.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the original README.md text, for reference:

  1. Once it is approved for submission by the arbiter, it goes into the Final state. Only minor changes are allowed (what qualifies as minor is left to the APPROVER).
  2. If a proposal needs to be revisited, it can be moved back to the Draft or In Review state. This can happen if issues are discovered during implementation. At which point, the review process as described above must be followed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, so that's where you got that language... I think then we should harken back to the original language.

Only minor updates typically occur after a proposal is approved (and merged?). Minor updates do not require a comment period. What qualifies as minor is left to the APPROVER. If an update is needed and is not minor, then the process's 10 day comment period must be observed. This can happen if issues are discovered during implementation.

When updating a proposal, the PR description should be named as follows:
$CategoryName## update:

This is potentially more restrictive, but it also doesn't change what updates can occur and how compared to the existing text.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only minor updates typically occur after a proposal is approved

Sorry, but I don't like your wording. "Only minor updates typically occur" -- to say "only X is typical" is unusual and unnecessary. The goal of the original process here was:

  1. "Minor" changes to a gRFC are allowed with no 10-day discussion period.
  2. Bigger changes to a gRFC are allowed with the 10-day discussion period.

I believe I expressed this adequately with my wording. I've made a small change here to move stuff / simplify. LMK if you disagree.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I disagree with your interpretation of the original text. I think the "This can happen if issues are discovered during implementation" part is important, as it provides a scope/context of the type of change we're talking about. We're not talking about redesigning old gRFCs 5 years after it was implemented because we no longer like that approach. Such things should be a new gRFC. Your proposed text encourages changing existing gRFCs, with no real limit on what sort of changes we'd expect to make.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If a gRFC has been implemented we probably aren't going to be materially modifying it in place except possibly to correct a problem discovered later or add a necessary, small tweak. I take the "This can happen if" as an example, not to mean "This can only happen if". IMO we should leave it up to our judgement on a case-by-case basis whether it's better to update a gRFC or create a new one. That's realistically already what we are doing, and I don't see this minor wording change (done to remove now-unnecessary clauses with the removal of the "Status" field) affecting anything.

@markdroth, thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I take the "This can happen if" as an example, not to mean "This can only happen if".

I agree. But the example does provide a guide. If someone wanted to do a huge change we could say, "that's a bigger change than we'd expect for an approved gRFC" and they wouldn't be surprised, because you can see how far of a departure that huge change is from the example. That is gone in the new language, and the new language encourages making the change to the existing gRFC without any limit, implied or explicit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see both sides of this. I agree with Doug that we should ultimately leave the decision to the approver. But I also agree with Eric that we don't want to leave this completely open-ended; I think we do want to make it clear that non-minor changes to an existing gRFC are discouraged.

I will note that we do have one example where we made significant changes to a gRFC after it was already implemented, which was the modifications to A51 in #345. In hindsight, this really should have been done as a separate gRFC; I was the one who suggested modifying the existing gRFC, since I thought it would be a fairly simple change, but it turned out to be more complex than I expected. I think that having written guidance discouraging that might have prompted someone to object before that PR got merged.

In general, my feeling is that any modification to an existing gRFC should be minor enough that it doesn't require the 10-day comment period. I think that in most cases, if we're considering needing the 10-day comment period, that's probably a signal that we should be writing a new gRFC rather than modifying an existing one. But I don't want to be prescriptive about this -- I do think we want to allow the approver to use their judgement.

I suggest the following wording:

"""
Sometimes changes are needed to already-merged proposals, such as when we discover problems during implementation. Rather than create new proposals for such changes, it is often better to revise the existing one. However, this approach may not be appropriate for larger changes, especially after the design has already been implemented in most languages.

To make changes to an already-merged proposal, a PR may be approved and merged at the OWNER's and APPROVER's convenience. Note that the APPROVER will decide whether this kind of post-merge change is appropriate. The approver will also determine whether the 10-day comment period is necessary, based on how significant the change is.
"""

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me. Updated.

Copy link
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Let's make sure Eric is happy with it, and then get it merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants