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 the RFC process documentation #150

Merged
merged 6 commits into from Jun 13, 2023
Merged

Conversation

piegamesde
Copy link
Member

@piegamesde piegamesde commented Jun 1, 2023

Changes inspired by https://discourse.nixos.org/t/improving-our-rfc-process/28552/19. Changelog summary in the commit message. I took the opportunity to also update our template a bit.

I expect that these changes should be pretty uncontroversial and not require going through the formal RFC process, as they either clarify the intention in accordance with existing RFCs or make existing conventions explicit. In other words, nothing substantial should change with our process in practice.

There were more points discussed in the discourse thread that I did not manage to fit in: (The expectations around Shepherds and to which extent they may also be authors. Edit: I don't think it should be mentioned in the RFC process currently, as there seems to be disagreement on some aspects of what teams actually are at the moment. Those should be discussed first.) I also left out any discussions around how to reach consensus around deeply controversial RFCs, because I expect that discussion to require an RFC on its own.

On a side note, this repository has two very old feature branches (import-from-derivations and rfc-process) which really confused me for a minute. Somebody with permissions please delete them. (CC @zimbatm)

- Nudge authors towards using Semantic Line Breaks for writing the RFC text
- Nudge authors towards posting their text as pre-RFC in the forum first
- Tweak wording around who declares FCP slightly
- Make clear that the shepherds have to announce FCP, and when exactly the period officially starts
- Be more open about when to do the implementation work relative to the RFC, and reflect the current practice of starting implementation work early
- Make more clear that RFCs should not be amended, and that important information should live e.g. in documentation instead.
Given the short text this may not make a huge difference, but given
that every RFC starts with a copy of that template, the hope is that
it will nudge people to continue writing in that style.
This is mostly inspired by Rust's RFC template.
Also added a couple of words to the "Alternatives" section,
similarly inspired by Rust's template.
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/improving-our-rfc-process/28552/21

0000-template.md Show resolved Hide resolved
README.md Outdated
conference with a few people involved in the topic of the RFC.
2. In case your RFC is a technical proposal, you might want to prepare a
poorly-received. Consider using [Semantic Line Breaks](https://sembr.org/)
in oder to get better diffs on later amendments.
Copy link
Contributor

Choose a reason for hiding this comment

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

We may want to suggest @infinisil's idea (which Guido van Rossum also had some time back) to open a separate development repo for large-scale proposals.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think so far RFCs of this scale have been mostly the exception? So not sure if this is applicable advice for the average RFC author.

Copy link
Member

Choose a reason for hiding this comment

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

Note that there's already an RFC where I proposed this: #138

README.md Outdated Show resolved Hide resolved
"very minor change" is up to the RFC Shepherd Team of the RFC to be amended, to
be decided in cooperation with the RFC Steering Committee.

RFC documents are intended to be seen as the documentation of a decision and a
Copy link
Member

Choose a reason for hiding this comment

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

As a follow-up, we might want to rename the RFC to ADR or DR to remove the confusion even further.

The document is called an RFC because it's looking to gather comments. Once all the comments have been gathered and integrated, what we have is an (Architecture) Record of Decision.

Splitting those two might allow for more flexibility in the process. This repo becomes a log of record of decision, and the RFC process can potentially happen in a different place.

image

Copy link
Member Author

Choose a reason for hiding this comment

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

I agree that RFC is a pretty bad name (even for its first incarnation IMO), and that projects who pick something "change proposal" or "enhancement proposal" have better names. But what you are suggesting is not a name change but a fundamental new vision of how our process might look like, and therefore requires to have its own RFC discussion.

(As you can see, I'm trying pretty hard on making an incremental improvement to the current situation without getting involved in yet another RFC …)

Copy link
Member

Choose a reason for hiding this comment

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

Agreed, this is why I wrote: "as a follow-up". It was more of a general remark.

README.md Outdated Show resolved Hide resolved
Co-authored-by: 7c6f434c <7c6f434c@mail.ru>
Copy link
Member

@7c6f434c 7c6f434c left a comment

Choose a reason for hiding this comment

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

Thank you for the great editing work!

I seem to be a habitual nitpicker about RFC process as we have it defined; I have read through the changes and I agree they are done very carefully to document the same process (with minor addition of best practices — «prior art» section is indeed often useful and indeed does not change the process).

@piegamesde
Copy link
Member Author

So, what's the process of getting this merged?

@fricklerhandwerk
Copy link
Contributor

@zimbatm you have merge access and no one complained about the change.

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
@zimbatm zimbatm merged commit e364d5f into NixOS:master Jun 13, 2023
@zimbatm
Copy link
Member

zimbatm commented Jun 13, 2023

thanks!

@piegamesde piegamesde deleted the rfc-process branch August 14, 2023 10:08
KAction pushed a commit to KAction/rfcs that referenced this pull request Apr 13, 2024
* Update the RFC process documentation

- Nudge authors towards using Semantic Line Breaks for writing the RFC text
- Nudge authors towards posting their text as pre-RFC in the forum first
- Tweak wording around who declares FCP slightly
- Make clear that the shepherds have to announce FCP, and when exactly the period officially starts
- Be more open about when to do the implementation work relative to the RFC, and reflect the current practice of starting implementation work early
- Make more clear that RFCs should not be amended, and that important information should live e.g. in documentation instead.

* RFC template: Use semantic line breaks

Given the short text this may not make a huge difference, but given
that every RFC starts with a copy of that template, the hope is that
it will nudge people to continue writing in that style.

* RFC template: Add "Prior art" section

This is mostly inspired by Rust's RFC template.
Also added a couple of words to the "Alternatives" section,
similarly inspired by Rust's template.

* fixup! Update the RFC process documentation

* fixup! Update the RFC process documentation

Co-authored-by: 7c6f434c <7c6f434c@mail.ru>

* fixup! Update the RFC process documentation

Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>

---------

Co-authored-by: 7c6f434c <7c6f434c@mail.ru>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants