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

From: Junio C Hamano <[email-masked]>
Date: Mon, 15 Apr 2024 17:24:14 -0700

Josh Steadmon <[email-masked]> writes:

> The Git project currently operates according to informal, unstated norms
> when it comes to making bigger-picture decisions (above and beyond
> individual patches and patch series). Document these norms so that
> newcomers to the project can learn what to expect.

It would be a good idea to write things down to help newcomers, but
the thing is, that we do not do that kind of design discussion +
design review + implementaiton waterfall here very often (a notable
exception was the sha256 transition design).  I am afraid that
"according to informal unstated norms" is an overstatement.  We do
not have any "process" concrete, nothing more than concensus
building among amicable parties.

Most of the time, technical decisions are made on individual series
and by the time the consensus is reached on the series that it is
good, the implementation should be finished, and there is no
separate "implementation" step.  Newcomers would probably want to
become familiar with that part of the decision process before
joining the "big picture" discussion, I suspect.

> One particular blind spot for me is how the Project Leadership Committee
> operates, or if that's even relevant to this doc.

I think this is the part PLC@SFC is supposed to be of relevance:

> +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.

> +Anyone with an interest in the topic is welcome to discuss the matter. It is
> +expected that all discussion will adhere to the Code of Conduct rules.

It is very much worth mentioning CoC here.

> diff --git a/Documentation/Makefile b/Documentation/Makefile
> index 3f2383a12c..a04da672c6 100644
> --- a/Documentation/Makefile
> +++ b/Documentation/Makefile
> @@ -103,6 +103,7 @@ SP_ARTICLES += howto/coordinate-embargoed-releases
>  API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
>  SP_ARTICLES += $(API_DOCS)
>  
> +TECH_DOCS += DecisionMaking
>  TECH_DOCS += ReviewingGuidelines
>  TECH_DOCS += MyFirstContribution
>  TECH_DOCS += MyFirstObjectWalk
>
> base-commit: 436d4e5b14df49870a897f64fe92c0ddc7017e4c