Proposal: Core subsystem Code Owner teams

Offen
#1,853 49 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Ruhig
Tech-Stack
github, nodejs

Rechercherichtung

Beginne mit den Abschnitten Collaborator → Maintainer, Team Member und Core, prüfe anschließend die verlinkte Node.js-summit-Diskussion sowie die erwähnten Repositories nodejs/admin und nodejs/node. Als abgeschlossen gilt die Aufgabe, wenn der TSC dem Governance-Modell zugestimmt hat und Regeln für Teams, Zuständigkeiten, Nominierungen und Branch-Schutz dokumentiert sind. Im Issue werden keine Implementierungsdateien oder Tests genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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

Vorherrschende Sprache
JavaScript
Sterne
693
Forks
142
Ø Merge
8 T. 7 Std.
Gemergte PRs (30 T.)
3

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus nodejs/TSC

Alle Issues in nodejs/TSC

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.