Proposal: Core subsystem Code Owner teams

Ouverte
#1,853 49 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
Calme
Stack technique
github, nodejs

Piste de recherche

Commencez par les sections Collaborator → Maintainer, Team Member et Core, puis examinez la discussion liée du sommet Node.js ainsi que les dépôts mentionnés nodejs/admin et nodejs/node. La tâche est considérée comme terminée lorsque le TSC a donné son accord sur le modèle de gouvernance et que les règles relatives aux équipes, à la responsabilité, aux nominations et à la protection des branches sont documentées. L’issue ne nomme aucun fichier d’implémentation ni aucun test.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I've tried to distill the great feedback from the node summit session a couple weeks ago. It does end up being somewhat surprisingly long because of what-ifs and what-abouts; the TLDR is found #Core at the bottom.

Motivations

  • un/de-value non-Core contribution
  • lower barriers to entry
  • increase agility (more reviewers, more landers, etc)
  • increase engagement

Proposal

Collaborator
  • Expected to exercise caution when operating outside their teams
Nominations

Inherits the current Collaborator nomination policy with some notable points of clarification (on things that are currently vague):

  • unchanged: via existing Collaborator (or TSC—who are Collaborators)
  • barrier to entry should be high
  • contributions across multiple teams (may be waived for extensive, multi-year tenure with the project)
Explicit criteria punted to a subsequent proposal
  • minimum of 1 year of consistent contribution
  • support minimum: 10% of Collaborators
    • must be explicit, eg 👍 or +1 in a comment
(Team) Member
  • approve or block PRs to their subsystem (eg node:test) and votes within their team (eg a nomination)
Context on teams (not new)
  • Largely self-managing
    • Can establish own policies extending general policy
    • Handle own membership:
    • Administered by lead(s)/chair(s) (admin role on team repo, maintainer of the GH team, etc)
  • Initial block resolution starts within the team; recommended approach:
    • Team votes
      • Overturned
      • Escalate to TSC
Nominations
  • barrier to entry should be moderately low
    • demonstrates (to a lesser extent) qualities of a Collaborator
  • managed by the team
  • existing team members may vote on both team member and team maintainer nominations
Explicit criteria punted to a subsequent proposal
  • minimum of 3 months of consistent contribution
  • Support minimum: simple majority

Quorum: ⅔

Team member onboarding is handled by a team maintainer.

Organisation member onboarding is handled by a TSC member.

Empty teams

An empty team can be resurrected by posting in nodejs/admin:

  • a non-Collaborator
    • TSC approves a request by an aspiring organisation member to join
      • A TSC member acts as team maintainer to oversee until the team is sufficiently populated
  • a Collaborator
    1. (after 1 week) adds themselves to the GH team (no approval required as there's no-one to vote)
    2. A TSC member adds them to the team's maintainer subteam and admin to team's repo.
Core

The nodejs/node repository

  • Subsystems are code-owned by a respective team (eg node:test is code-owned by the @nodejs/core/test-runner team).
  • @nodejs/core/collaborators has codebase-wide code-ownership
  • At least 1 code owner approval is required to land a relevant PR
    • When there is no owning team, a Collaborator (exercising the aforementioned caution) or TSC member provides the code-owner approval
  • main branch is protected against write (a PR is required) except for TSC & @nodejs/core/releasers
    • includes manually landing a PR

cc @nodejs/collaborators @nodejs/tsc

Langage dominant
JavaScript
Étoiles
693
Forks
142
Merge moyen
8 j 7 h
PR mergées (30 j)
3

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de nodejs/TSC

Toutes les issues de nodejs/TSC

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.