all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#61894] [PATCH RFC] Team approval for patches
@ 2023-03-01 16:13 Ludovic Courtès
  2023-03-01 17:15 ` Christopher Baines
                   ` (2 more replies)
  0 siblings, 3 replies; 42+ messages in thread
From: Ludovic Courtès @ 2023-03-01 16:13 UTC (permalink / raw)
  To: 61894; +Cc: guix-devel, guix-maintainers

[-- Attachment #1: Type: text/plain, Size: 1373 bytes --]

Hello Guix!

The project has been steadily gaining new contributors, which is great,
and I think we need to adjust our processes accordingly.

Currently teams are described mostly as pools of people who can mentor
contributors in a particular area and who can review patches in that
area.  My proposal is to give teams formal approval power over changes
to code in their area.

This is sorta happening already, but informally: if a non-committer
sends a patch, someone from the team eventually “approves” it by pushing
it.  Within a team, the situation is different: people usually discuss
changes, and the submitter (also committer) eventually pushes them;
sometimes, the submitter pushes changes without getting approval (or
feedback) from others on the team.

With the proposed policy, members of a team would also have to review
and approve each other’s work.  Formal approval means getting an
explicit “LGTM” (or similar) from at least one other team member.

This is similar to the review thresholds found on GitLab & co., where
project admins can specify a minimum number of approvals required before
a change is marked as ready.  I think it avoids the unavoidable
misunderstandings that can arise in a growing group and help pacify
day-to-day collaboration.

Below is a suggested change.

What do people think?

Ludo’.


[-- Attachment #2: Type: text/x-patch, Size: 2042 bytes --]

diff --git a/doc/contributing.texi b/doc/contributing.texi
index c436bc4a31..d8ca6802c4 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -1486,7 +1486,7 @@ reply to incoming bugs and patches, which contains the bug number.
 @anchor{Notifying Teams}
 @cindex teams
 The @file{etc/teams.scm} script may be used to notify all those who
-may be interested in your patch of its existence (@pxref{Teams}).
+may be interested in your patch and may approve it (@pxref{Teams}).
 Use @command{etc/teams.scm list-teams} to display all the teams,
 decide which team(s) your patch relates to, and use
 @command{etc/teams.scm cc} to output various @command{git send-email}
@@ -1557,6 +1557,9 @@ these changes are necessary.
 @subsection Teams
 @cindex teams
 
+The project is structured as @dfn{teams}, which play two related roles:
+mentoring people who contribute code in their area of expertise, and
+reviewing and approving changes to that code.
 There are several teams mentoring different parts of the Guix source
 code.  To list all those teams, you can run from a Guix checkout:
 
@@ -1840,8 +1843,14 @@ Patches}).  It also allows patches to be picked up and tested by the
 quality assurance tooling; the result of that testing eventually shows
 up on the dashboard at
 @indicateurl{https://qa.guix.gnu.org/issue/@var{ISSUE_NUMBER}}, where
-@var{ISSUE_NUMBER} is the number assigned by the issue tracker.  Leave
-time for a review, without committing anything (@pxref{Submitting
+@var{ISSUE_NUMBER} is the number assigned by the issue tracker.
+
+When your patch falls under the area of expertise of a team
+(@pxref{Teams}), you need the explicit approval of at least one team
+member before committing (another team member if you are on the team).
+
+In other cases,
+leave time for a review, without committing anything (@pxref{Submitting
 Patches}).  If you didn’t receive any reply after one week (two weeks
 for more significant changes), and if you're confident, it's OK to
 commit.

^ permalink raw reply related	[flat|nested] 42+ messages in thread
* Re: bug#61894: [PATCH RFC] Team approval for patches
@ 2023-03-13 16:30 Peter Polidoro
  2023-03-14 15:58 ` Maxim Cournoyer
  0 siblings, 1 reply; 42+ messages in thread
From: Peter Polidoro @ 2023-03-13 16:30 UTC (permalink / raw)
  To: guix-devel

There is a phenomenon in manufacturing quality control where 
sometimes adding inspectors decreases the number of defects that 
get past inspection unnoticed, because one inspector catches a 
defect that another inspector missed, but other times the number 
of unnoticed defects actually goes UP, presumably because if 
inspectors know others are also looking for defects, they, perhaps 
subconciously, think they do not need to look as carefully, 
because another inspector will catch whatever they miss. One 
inspector looking carefully can be better than two inspectors 
looking less carefully.

It would be nice if packages that pull from a "trusted source" and 
that need only a bump in the version number and hash could be 
approved by only one person or, more ideally, zero people, if it 
could be tested and automated somehow. Although perhaps that would 
always be a security risk.

Is there documentation or a roadmap somewhere online for people 
new the community who submit patches, but someday aspire to arise 
to committer status? The roadmap might be a list of books to read, 
tutorials to complete, packages to create, in order to learn 
enough to be able to help with the committer shortage?


^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2023-06-02 13:51 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-01 16:13 [bug#61894] [PATCH RFC] Team approval for patches Ludovic Courtès
2023-03-01 17:15 ` Christopher Baines
2023-03-01 17:59   ` Björn Höfling
2023-03-01 18:17     ` Christopher Baines
2023-03-01 19:21   ` Felix Lechner via Guix-patches via
2023-03-01 22:45   ` Ludovic Courtès
2023-03-02 11:04     ` Andreas Enge
2023-03-02 13:57       ` bug#61894: " bokr
2023-03-03  1:08       ` 宋文武
2023-03-07  1:53     ` [bug#61894] " 宋文武 via Guix-patches via
2023-03-07 10:36       ` bug#61894: " Andreas Enge
2023-03-07 12:22         ` Simon Tournier
2023-03-07 18:29           ` [bug#61894] " Maxim Cournoyer
2023-03-07 22:40             ` Leo Famulari
2023-03-08 18:58               ` bug#61894: " Maxim Cournoyer
2023-03-09  8:48                 ` [bug#61894] " Simon Tournier
2023-03-08  9:12             ` bug#61894: " Efraim Flashner
2023-03-08 17:05               ` Maxim Cournoyer
2023-03-08 23:38                 ` Vagrant Cascadian
2023-03-09  5:12                   ` Maxim Cournoyer
2023-03-09  9:46                 ` Simon Tournier
2023-03-10  4:36                   ` Maxim Cournoyer
2023-03-10 17:22                     ` Ludovic Courtès
2023-03-10 18:22                       ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-03-12  2:33                         ` Maxim Cournoyer
2023-03-12 11:14                           ` Simon Tournier
2023-03-12  3:26                       ` Maxim Cournoyer
2023-03-12 11:52                         ` Andreas Enge
2023-03-13  0:08                           ` Maxim Cournoyer
2023-03-12 12:25                         ` Simon Tournier
2023-03-15 16:08                         ` Ludovic Courtès
2023-03-17 15:46                           ` [bug#61894] " Maxim Cournoyer
2023-03-10 14:19                   ` bug#61894: " Andreas Enge
2023-03-10 17:33                     ` Simon Tournier
2023-03-10 23:19                       ` Andreas Enge
2023-03-11 13:20                         ` Simon Tournier
2023-03-07 15:21         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-03-06 15:48 ` [bug#61894] " Maxim Cournoyer
2023-03-06 21:42   ` Ludovic Courtès
2023-06-02 13:50 ` bug#61894: " Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2023-03-13 16:30 Peter Polidoro
2023-03-14 15:58 ` Maxim Cournoyer

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.