git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] doc: describe the project's decision-making process

From
Junio C Hamano <gitster@pobox.com>
Date
May 9, 2024, 18:10 UTC
Message-ID
<xmqq34qqua9d.fsf@gitster.g>
In-Reply-To
<4a829792bf16973799bf3b3db0dd8b49a1ef3815.1715212665.git.steadmon@google.com>
Josh Steadmon <steadmon@google.com> writes:
Show 12 quoted lines
> diff --git a/Documentation/DecisionMaking.txt b/Documentation/DecisionMaking.txt
> new file mode 100644
> index 0000000000..55fa3e2185
> --- /dev/null
> +++ b/Documentation/DecisionMaking.txt
> @@ -0,0 +1,122 @@
> +Decision-Making Process in the Git Project
> +==========================================
> +
> +Introduction
> +------------
> +This doc aims to describe the current decision-making process in the Git

It might not be yet ready to claim this, but when it gets ready to do so, we would want to say "aims to describe" -> "describes".

> +General Patch Series
> +--------------------

As if there is a separate section for "Special Patch Series"? But more seriously, I cannot quite shake this feeling that most of these are covered in the beginning of the SubmittingPatches document. There probably are small things that are missing over there that can be found here, but given the large overlap, I have a feeling that these additions are better done over there, not here, and limit the scope of this document to decisions beyond the "General" patch series. There already is SubmittingPatches::[[patch-flow]] section that may be a better place for the material we see here.

Show 6 quoted lines
> +Starting a Discussion
> +~~~~~~~~~~~~~~~~~~~~~
> +For most changes, discussions are started by sending a patch series to the list.
> +There is rarely any need to discuss or ask for approval prior to sending
> +patches; the merit of both the general idea behind your change and the code to
> +implement it will be discussed at the same time.

We do not say "you need no permission or pre-approval" which may be a good thing to add to SubmittingPatches.

> +NOTE: For general guides on creating and sending a patch series to the list, see
> +link:SubmittingPatches.html[SubmittingPatches] and
> +link:MyFirstContribution.html[MyFirstContribution]. The remainder of this
> +doc will focus more on what to expect from the list discussion.

So my question is if there is anything of substance left we should have here, or if it is better to add them to SubmittingPatches so that readers need to read one fewer documents.

Show 7 quoted lines
> +Because members of the Git community have a wide variety of experience,
> +backgrounds, and values, series are expected to include as much context as
> +possible.
> +
> +If the proposer is aware of individuals with an interest in the subject of the
> +change, it is helpful to CC them on the proposal to increase the likelihood of
> +receiving constructive feedback.

SubmittingPatches::[[describe-changes]] and [[patch-flow]] might be a better home for some sentences stolen from here?

Show 11 quoted lines
> +Engaging in Discussion
> +~~~~~~~~~~~~~~~~~~~~~~
> +Once a proposal has been made, the community will discuss it on-list. While the
> +maintainer will often participate in discussions, it is not the maintainer's
> +responsibility to guide discussion; the proposer and any other interested
> +parties are expected to stay engaged in the discussion and ensure progress is
> +made.
> +
> +Anyone with an interest in the topic is welcome to discuss the matter. It is
> +expected that all discussion will adhere to the link:../CODE_OF_CONDUCT.md[Code
> +of Conduct] rules.
Ditto for the above to SubmittingPatches::[[send-patches]] and [[patch-flow]]?
Show 15 quoted lines
> +Finalizing a Decision
> +~~~~~~~~~~~~~~~~~~~~~
> +If the maintainer judges that positive consensus has been reached on a topic,
> +they will merge the series, usually to the 'next' integration branch. After a
> +suitable period of time for testing by the community, changes are merged from
> +'next' into 'master', from which official releases are tagged.
> +
> +If consensus has not been reached, discussion may continue, or the proposal may
> +be abandoned if no one continues discussion. More rarely, explicit negative
> +consensus may be reached if the community feels that the series is not suitable,
> +in which case the series should be dropped and discussion ended.
> +
> +There are no strict guidelines used to judge when consensus has been reached,
> +but generally we expect all points of feedback to have been addressed with
> +either a fix or an explanation on why no change is necessary.
Ditto for the above to SubmittingPatches::[[patch-flow]]?
Show 12 quoted lines
> +Larger Discussions (with patches)
> +---------------------------------
> +As with discussions on a general patch series, starting a larger-scale
> +discussion often begins by sending a patch or series to the list. This might
> +take the form of an initial design doc, with implementation following in later
> +iterations of the series (for example,
> +link:https://lore.kernel.org/git/0169ce6fb9ccafc089b74ae406db0d1a8ff8ac65.1688165272.git.steadmon@google.com/[adding
> +unit tests] or
> +link:https://lore.kernel.org/git/20200420235310.94493-1-emilyshaffer@google.com/[config-based
> +hooks]), or it might include a full implementation from the beginning. In either
> +case, discussion progresses as described above until consensus is reached or the
> +topic is dropped.
OK.
Show 19 quoted lines
> +Larger Discussions (without patches)
> +------------------------------------
> +Occasionally, larger discussions might occur without an associated patch series.
> +These might be very large-scale technical decisions that are beyond the scope of
> +even a single large patch series, or they might be more open-ended,
> +policy-oriented discussions (examples:
> +link:https://lore.kernel.org/git/ZZ77NQkSuiRxRDwt@nand.local/[introducing Rust]
> +or link:https://lore.kernel.org/git/YHofmWcIAidkvJiD@google.com/[improving
> +submodule UX]). In either case, discussion progresses as described above for
> +general patch series.
> +
> +For larger discussions without a patch series or other concrete implementation,
> +it may be hard to judge when consensus has been reached, as there are not any
> +official guidelines. If discussion stalls at this point, it may be helpful to
> +restart discussion with an RFC patch series or other specific implementation
> +that can be more easily debated.
> +
> +If consensus around a decision has been reached but no implementation provided,
> +it is not the maintainer's responsibility to implement any particular decision.

As it is not anybody's responsibility, it may be confusing to single the maintainer out in this sentence. Saying "it is not" alone will leave readers wondering "then whose responsibility is it?".

I would say:
    When consensus is reached that it is a good idea, the original
    proposer is expected to coordinate the effort to make it happen,
    with help from others who were involved in the discussion as
    needed.

without pretending that the issues that needs consensus are black and white "requiring code changes" vs "non-technical" without any other colors. IOW, I'd drop the following two paragraphs, as the above would be sufficient.

Show 7 quoted lines
> +For decisions that require code changes, it is often the case that the original
> +proposer will follow up with a patch series, although it is also common for
> +other interested parties to provide an implementation (or parts of the
> +implementation, for very large changes).
> +
> +For non-technical decisions such as community norms or processes, it is up to
> +the community as a whole to implement and sustain agreed-upon changes.
Show 14 quoted lines
> +Other Discussion Venues
> +-----------------------
> +Occasionally decision proposals are presented off-list, e.g. at the semi-regular
> +Contributors' Summit. While higher-bandwidth face-to-face discussion is often
> +useful for quickly reaching consensus among attendees, generally we expect to
> +summarize the discussion in notes that can later be presented on-list. For an
> +example, see the thread
> +link:https://lore.kernel.org/git/AC2EB721-2979-43FD-922D-C5076A57F24B@jramsay.com.au/[Notes
> +from Git Contributor Summit, Los Angeles (April 5, 2020)] by James Ramsay.
> +
> +We prefer that "official" discussion happens on the list so that the full
> +community has opportunity to engage in discussion. This also means that the
> +mailing list archives contain a more-or-less complete history of project
> +discussions and decisions.
OK.
Thanks.
Previous: Josh SteadmonNext: Junio C Hamano
Message 21 of 44 in “doc: describe the project's decision-making process”
  1. doc: describe the project's decision-making processJosh Steadmon, Apr 15, 2024
  2. Junio C HamanoApr 16, 2024
  3. Josh SteadmonApr 22, 2024
  4. Junio C HamanoApr 22, 2024
  5. Junio C HamanoApr 23, 2024
  6. Enrico MrassApr 17, 2024
  7. Junio C HamanoApr 17, 2024
  8. Junio C HamanoMay 3, 2024
  9. Josh SteadmonMay 3, 2024
  10. Junio C HamanoMay 3, 2024
  11. Taylor BlauMay 3, 2024
  12. Patrick SteinhardtMay 6, 2024
  13. Taylor BlauMay 6, 2024
  14. Josh SteadmonMay 6, 2024
  15. Taylor BlauMay 6, 2024
  16. Emily ShafferApr 22, 2024
  17. Junio C HamanoApr 22, 2024
  18. Emily ShafferApr 22, 2024
  19. Junio C HamanoApr 23, 2024
  20. doc: describe the project's decision-making processJosh Steadmon, May 9, 2024
  21. Junio C HamanoMay 9, 2024
  22. Junio C HamanoMay 9, 2024
  23. 0/2 Describe patch-flow better in SubmittingPatchesJunio C Hamano, May 9, 2024
  24. 1/2 SubmittingPatches: move the patch-flow section earlierJunio C Hamano, May 9, 2024
  25. 2/2 SubmittingPatches: extend the "flow" sectionJunio C Hamano, May 9, 2024
  26. Karthik NayakMay 10, 2024
  27. Junio C HamanoMay 10, 2024
  28. Karthik NayakMay 10, 2024
  29. 0/2 Describe life cycle of a patch seriesJunio C Hamano, May 10, 2024
  30. 1/2 SubmittingPatches: move the patch-flow section earlierJunio C Hamano, May 10, 2024
  31. 2/2 SubmittingPatches: extend the "flow" sectionJunio C Hamano, May 10, 2024
  32. decisions: focus on larger scale issuesJunio C Hamano, May 10, 2024
  33. Josh SteadmonMay 15, 2024
  34. Junio C HamanoMay 15, 2024
  35. Josh SteadmonMay 15, 2024
  36. doc: describe the project's decision-making processJosh Steadmon, May 16, 2024
  37. Junio C HamanoMay 16, 2024
  38. Josh SteadmonMay 17, 2024
  39. Patrick SteinhardtMay 17, 2024
  40. Junio C HamanoMay 17, 2024
  41. Patrick SteinhardtMay 21, 2024
  42. doc: describe the project's decision-making processJosh Steadmon, May 17, 2024
  43. Junio C HamanoMay 17, 2024
  44. Patrick SteinhardtMay 21, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.