Skip to content

Proposal: Core subsystem Code Owner teams #1853

Description

@JakobJingleheimer

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

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):

  • 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:

  • TSC approving a request by an aspiring member to join
    • A TSC member acts as team maintainer to oversee until the team is sufficiently populated
  • a Collaborator
    1. posting in nodejs/admin to signal intent
    2. (after 1 week) adds themselves to the GH team (no approval required as there's no-one to vote)
    3. 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 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions