unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Noé Lopez via Guix-patches via" <guix-patches@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>, 74736@debbugs.gnu.org
Cc: Christopher Baines <mail@cbaines.net>,
	Simon Tournier <zimon.toutoune@gmail.com>
Subject: [bug#74736] [PATCH v6] Add Request-for-Comments process.
Date: Tue, 07 Jan 2025 18:06:45 +0100	[thread overview]
Message-ID: <87h66aime2.fsf@xn--no-cja.eu> (raw)
In-Reply-To: <87y0zn4lvi.fsf_-_@gnu.org>

Ludovic Courtès <ludo@gnu.org> writes:

> Hello,
>
> As proposed before, here’s a reworked version based on v5.  The intent
> is to keep the spirit and process unchanged compared to v5, while making
> the document a bit more concise (239 lines, v5 was 322), improving
> consistency for key words, hopefully improving wording, fixing
> grammatical issues, and adding Markdown ornaments where appropriate.
>
> Notable changes:
>
>   • Instead of “supporter” and “co-supporter”, I propose “author(s)” and
>     “supporter(s)” (there must be at least one supporter).
>
>   • Explicitly state the license of RFCs (CC-BY-SA or GFDL).
>
>   • Clarify that the deliberation period lasts exactly 14 days (was “up
>     to 14 days” in one place, “14 days” in another).
>
>   • Consistently name the different periods.
>
>   • Remove mention of the ‘withdrawn/’ directory: it’s redundant with
>     the ‘status’ header.
>
>   • Clarify what to do with “deprecated” RFCs.
>
>   • Clarify headers of this RFC.
>
>   • Clarify that this is not just for technical changes.
>   
> I can proofread and possibly propose minor tweaks the template
> afterwards.
>
> Thoughts?
>
> Ludo’.

This is great, thanks!  A few comments below:

>
> title: Requests-for-Comment Process
> id: 000

001, since the template takes id 0000 for ease of access.

> status: submitted
> discussion: https://issues.guix.gnu.org/74736
> authors: Simon Tournier, Noé Lopez, Ludovic Courtès
> supporters: ?
> submitted: 2024-12-12
> date: 2025-01-15

It’s a good place to add:
SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-only

> ---
>
> # Summary
>
> This document describes the _request for comments_ (RFC) process of the
> Guix project.  The RFC process is intended to provide a consistent and
> structured way to propose, discuss, and decide on major changes
> affecting the project.  It aims to draw attention of community members
> on important decisions, technical or not, and to give them a chance to
> weigh in.
>
> # Motivation
>
> Day-to-day work on Guix revolves around informal interactions, peer
> review, and consensus-based decision making.  As the community grows, so
> does the stream of proposed changes, and no single person is able to
> keep track of all of them.
>
> The RFC process is a mechanism to determine whether a proposed change is
> “significant” enough to require attention from the community at large
> and if so, to provide a documented way to bring about broad community
> discussion and to collectively decide on the proposal.
>
> A change may be deemed “significant” when it could only be reverted at a
> high cost or, for technical changes, when it has the potential to
> disrupt user scripts and programs or user workflows.  Examples include:
>
> – changing the `<package>` record type and/or its interfaces;
> - adding or removing a `guix` sub-command;
> - changing the channel mechanism;
> - changing project governance policy such as teams, decision making, the
>   deprecation policy, or this very document;
> - changing the contributor workflow and related infrastructure (mailing
>   lists, source code repository and forge, continuous integration, etc.)

Missing a dot at the end of the sentence.

> # Detailed Design
>
> ## When to Follow This Process
>
> The RFC process applies only to “significant” changes, which include:
>
> - changes that modify user-facing interfaces that may be relied on
>   (command-line interfaces, core Scheme interfaces);
> - big restructuring of packages;
> - hard to revert changes;
> - significant project infrastructure or workflow changes;
> - governance or changes to the way we collaborate.
>
> Someone submitting a patch for any such change may be asked to submit an
> RFC first.
>
> Most day-to-day contributions do *not* require an RFC; examples include:
>
> - adding or updating packages, removing outdated packages;
> - fixing security issues and bugs in a way that does not change
>   interfaces;
> - updating the manual, updating translations;
> - changing the configuration of systems part of project infrastructure
>   in a user-invisible way.
>
> These day-to-day contributions remain governed by the process described
> by the manual in its “Contributing” chapter.
>
> ## How the Process Works
>
> 1. Clone https://git.savannah.gnu.org/git/guix/requests-for-comments.git .

Why the alone dot?

> 2. Copy `0000-template.md` to `00XY-short-name.md` where `short-name`
>    is a short descriptive name long and `XY` is the sequence number.
> 3. Write your RFC following the template’s structure.  The RFC must not
>    be prospective; it must formalize an idea and sketch a plan to
>    implement it, even if not all details are known.  If it intends to
>    deprecate a previously-accepted RFC, it must explicitly say so.
> 4. Submit the RFC as a patch to `guix-patches@gnu.org`.
> 5. Announce your RFC at `guix-devel@gnu.org` and look for *supporters*:
>    one or more people who will support the RFC and participate in
>    discussions by your side (see below).
>
> The RFC is *submitted* once it has at least one supporter in addition to
> the author(s).
>

So we are now three authors and no supporters for this RFC?  Could we
say that more than one author also works for submitting?

> ## Supporters
>
> A supporter is a contributor sufficiently familiar with the project’s
> practices, hence it is recommended, but not mandatory, to be a team
> member.  Supporters do not have to agree with all the points of the RFC
> but should generally be satisfied that the proposed additions are a good
> thing for the community.
>
> Supporters help the author(s) by participating in discussions, amending
> the document as it is being discussed, and acting as timekeepers.
>
> ## Timeline
>
> The lifetime of an RFC is structured into the following recommended
> periods:
>
> ![diagram.svg](Diagram of the RFC process.)
>
> ```dot <- TODO: make this a separate file
> digraph "RFC Timeline" {
>     submission[label=<Submission Period<br />up to 7 days>]
>     comments[label=<Discussion Period<br />30–60 days>]
>     deliberation[label=<Deliberation Period<br />14 days>]
>     withdrawn[label=Withdrawn, shape=rectangle]
>     final[label=Final, shape=rectangle]
>     
>     submission -> comments
>     submission -> withdrawn
>     comments -> deliberation
>     deliberation -> withdrawn
>     deliberation -> final
>     
>     withdrawn -> submission [label="New version"]
>     
>     comments -> withdrawn
> }
> ```
>
> The subsections below detail the various stages and their duration.
>
> ### Submission Period (up to 7 days)
>
> Anyone can author and submit an RFC as a regular patch and look for
> supporters (see below).  The RFC is *submitted* once it has one or more
> supporters; the next step is the *discussion period*.
>
> Author(s) may withdraw their RFC at any time; they can resubmit it again
> later, possibly under a new RFC number.
>
> ### Discussion Period (at least 30 days, up to 60 days)
>
> Once submitted, the RFC is publicly discussed; authors are encouraged to
> publish updated versions incorporating feedback during the discussion.
>
> Once the discussion settles, at the latest after 60 days, the author(s)
> publish a final version, leading to the *deliberation period*.
>
> ### Deliberation Period (14 days)
>
> All members of any team of the Guix project can participate in
> deliberation and are encouraged to do so.
>
> Once the final version is published, team members have 14 days to send
> one of the following replies on the patch-tracking entry of the RFC:
>
> - “I support”, meaning that one supports the proposal);

This parenthesis is alone.

> - “I accept”, meaning that one consents to the implementation of the
>   proposal;
> - “I disapprove”, meaning that one opposes the implementation of the
>   proposal.  A team member sending this reply must have actively
>   proposed alternative solutions during the discussion period.
>
> The RFC is *accepted* if (1) at least 25% of all team members send a
> reply, and (2) no one disagrees.  In other cases, the RFC is
> *withdrawn*.
>
> Deliberation aims at consolidating consensus; see “Decision Making”
> below.
>
> RFC acceptance is not a rubber stamp; in particular, it does not mean
> the proposal will effectively be implemented, but it does mean that all
> the participants consent to its implementation.
>
> Similarly, withdrawal does not necessarily equate with rejection; it
> could mean that more discussion and thought is needed before ideas in
> the RFC are accepted by the community.
>
> ## Decision Making
>
> Contributors and even more so team members are expected to help build
> consensus.  By using consensus, we are committed to finding solutions
> that everyone can live with.
>
> Thus, no decision is made against significant concerns; these concerns
> are actively resolved through counter proposals.  A deliberating member
> disapproving a proposal bears a responsibility for finding alternatives,
> proposing ideas or code, or explaining the rationale for the status quo.
>
> To learn what consensus decision making means and understand its finer
> details, you are encouraged to read
> https://www.seedsforchange.org.uk/consensus .

Another alone dot 🤔

>
> ## Merging Final RFCs
>
> Whether it is accepted or withdrawn, a committer merges the final RFC
> following these steps:
>
> 1. filling in the remaining metadata in the RFC headers (changing the
>    `status` to `accepted` or `withdrawn`; adding the URL of the
>    discussion in the `discussion` header; updating the `date` header; if
>    previously-accepted RFCs are deprecated by this new RFC, change the
>    `status` header accordingly);
> 2. committing everything;
> 3. announcing the publication of the RFC.
>
> All the RFCs are dual-licensed under the [Creative Commons
> Attribution-ShareAlike
> 4.0](https://creativecommons.org/licenses/by-sa/4.0/) license and the
> [GNU Free Documentation License 1.3, with no Invariant Sections, no
> Front-Cover Texts, and no Back-Cover
> Texts](https://www.gnu.org/licenses/fdl-1.3.html).

I would add “or (at your option) any later version.”

>
> ## RFC Template
>
> The expected structure of RFCs is captured by the template in the file
> `0000-template.md`, written in English with Markdown ornaments.

Ornament is a complicated word, I would replace it with “syntax”.

>
> ## Cost of Reverting
>
> The RFC process described in this documented can be amended by
> subsequent RFCs.
>
> ## Drawbacks
>
> There is a risk that the additional process will hinder contribution more than
> it would help.  We should stay alert that the process is only a way to help
> contribution, not an end in itself.
>
> Discussions could easily have a low signal-to-noise ratio.  We will
> collectively pay attention to over- and under-representation of voices
> and notably avoid repeating arguments, avoid using exclusionary jargon,
> and solicit opinions of those who remained silent.
>
> ## Open Issues
>
> There are still questions regarding the desired scope of the process.
> While we want to ensure that technical changes that affect users are
> well-considered, we certainly don’t want the process to become unduly
> burdensome.  This is a careful balance which will require care to
> maintain moving forward.

Thanks for the v6, apart from my comments I think its great and ready to
be submitted :)

In my opinion there are too many unnecessary emphasis (mostly with `),
but I will live with it.

Have a nice day,
Noé




  reply	other threads:[~2025-01-07 17:06 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-08 12:29 [bug#74736] [PATCH v2 0/1] Add Request-For-Comment process Noé Lopez via Guix-patches via
2024-12-08 12:31 ` [bug#74736] [PATCH v2 1/1] rfc: " Noé Lopez via Guix-patches via
2024-12-12 18:14   ` [bug#74736] [PATCH v2 0/1] " Ludovic Courtès
2024-12-12 19:47     ` Simon Tournier
2024-12-14 10:06       ` Ludovic Courtès
2024-12-23 17:58         ` Simon Tournier
2024-12-26 11:15           ` Ludovic Courtès
2024-12-09 20:47 ` Artyom V. Poptsov
2024-12-12 19:30 ` [bug#74736] [PATCH v3] rfc: " Simon Tournier
2024-12-14 10:47   ` Ludovic Courtès
2024-12-22 13:06   ` Noé Lopez via Guix-patches via
2024-12-22 13:56 ` [bug#74736] [PATCH v4 0/1] " Noé Lopez via Guix-patches via
2024-12-22 13:56   ` [bug#74736] [PATCH v4 1/1] " Noé Lopez via Guix-patches via
2024-12-23 14:42     ` [bug#74736] [PATCH v2 0/1] " Ludovic Courtès
2024-12-23 17:33       ` Simon Tournier
2024-12-26 11:28         ` Ludovic Courtès
2024-12-31 15:23           ` Simon Tournier
2024-12-29 18:31       ` Noé Lopez via Guix-patches via
2024-12-30 11:03         ` Ludovic Courtès
2024-12-30 11:58           ` Noé Lopez via Guix-patches via
2025-01-04 17:28             ` Ludovic Courtès
2025-01-05 12:51               ` Noé Lopez via Guix-patches via
2025-01-06 10:29                 ` Simon Tournier
2025-01-06 17:40                 ` Ludovic Courtès
2025-01-08 10:53               ` Ludovic Courtès
2025-01-03 18:14 ` [bug#74736] [PATCH v5] rfc: " Simon Tournier
2025-01-06 22:29   ` [bug#74736] [PATCH v6] Add Request-for-Comments process Ludovic Courtès
2025-01-07 17:06     ` Noé Lopez via Guix-patches via [this message]
2025-01-08 15:12       ` [bug#74736] [PATCH v2 0/1] Add Request-For-Comment process Suhail Singh
     [not found]     ` <825F8319-4F41-4F4C-81B3-2C84A73A13CF@housseini.me>
2025-01-08  6:33       ` [bug#74736] [PATCH v6] Add Request-for-Comments process reza via Guix-patches via
2025-01-08 16:26     ` [bug#74736] [PATCH v2 0/1] Add Request-For-Comment process pukkamustard
2025-01-07 19:40 ` [bug#74736] " Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h66aime2.fsf@xn--no-cja.eu \
    --to=guix-patches@gnu.org \
    --cc=74736@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=mail@cbaines.net \
    --cc=noe@xn--no-cja.eu \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).