-
Notifications
You must be signed in to change notification settings - Fork 2
Proposal: Lead/Deputy maintainers, and PROJECT_STATUS.md #32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Project Status Definitions | ||
|
|
||
| This document defines the lifecycle and ownership metadata used to describe the health and staffing of Vega project repositories. | ||
|
|
||
| ## `lifecycle_status` | ||
|
|
||
| | Value | Meaning | | ||
| | --- | --- | | ||
| | `active` | Normal development. Issues, pull requests, and releases are expected. Requires a named Lead Maintainer; a Deputy is strongly recommended. See [project-docs/roles/REPO-LEADERSHIP.md](project-docs/roles/REPO-LEADERSHIP.md). | | ||
| | `experimental` | Exploratory work. APIs, scope, or long-term maintenance may change. | | ||
| | `maintenance` | Kept working, but limited new feature development. No named Lead; draws from the shared maintainer pool. | | ||
| | `deprecated` | Users should migrate elsewhere. A replacement should be listed where possible. | | ||
| | `archived` | Historical or read-only project. No support is expected. | | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Archived is already something GitHub supports natively. |
||
|
|
||
| The distinction between `active` and `maintenance` is primarily about dedicated coordination capacity, not activity level. A busy repository without a named Lead is in `maintenance`, not `active`. | ||
|
|
||
| ## `owner_model` | ||
|
|
||
| | Value | Meaning | | ||
| | --- | --- | | ||
| | `named_lead` | Has a named Lead Maintainer responsible for coordination. Required for `active` lifecycle status. | | ||
| | `org_shared` | The Vega maintainer group collectively owns the repository. Typical for `maintenance` status. | | ||
| | `unowned` | No active maintainer ownership; generally reserved for `deprecated` or `archived` repositories. | | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,104 @@ | ||||||
| # Lead and Deputy Maintainers for Vega | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| ## Motivation | ||||||
|
|
||||||
| As the Vega ecosystem has grown across multiple (100+) repositories, it became harder to tell where maintenance capacity exists, which work is blocked, and who is coordinating review, triage, and release readiness for each repo. There was also not a clear path for sponsors or new contributors to identify who within the current volunteer team is both available and equipped to provide this kind of support. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think we need this full documentation in the project docs. Let's keep the docs lightweight.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A general tightening pass over the document may help to make it easier to comprehend. |
||||||
|
|
||||||
| This document creates a lightweight Lead Maintainer role for repositories. The goal is to make coordination responsibility visible, reduce ambiguity, and improve contributor understanding of the level of support available for each Vega repository. | ||||||
|
|
||||||
| This proposal does not change existing admin or Steering Committee roles. It aims to address a gap in responsibilities for the existing Maintainer role. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We definitely need to make a pass to move over there what makes sense and reference the lead maintainer role there. |
||||||
|
|
||||||
| ## Staffing requirement and lifecycle status | ||||||
|
|
||||||
| A repository is considered **active** only when it has a named Lead Maintainer. A named Deputy Maintainer is strongly recommended to ensure continuity when the Lead is unavailable and to avoid PR freezes. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reference to the project status doc. |
||||||
|
|
||||||
| A repository that cannot sustain a named Lead — drawing instead from the shared maintainer pool — should be marked **maintenance** rather than active. This is not a judgment on the project's value; it is an honest signal about the level of dedicated coordination currently available. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How do we do this exactly? Do we use badges? Maybe something like https://gist.github.com/taiki-e/ad73eaea17e2e0372efb76ef6b38f17b |
||||||
|
|
||||||
| If an active repository loses its Lead with no replacement identified, it should be moved to maintenance status until a new Lead is selected. | ||||||
|
|
||||||
| ## Role | ||||||
|
|
||||||
| A Lead Maintainer is an active maintainer who coordinates the health of a repository. The Lead helps ensure that issues and PRs are triaged, review needs are visible, release blockers are tracked, and cross-project or unresolved decisions are escalated. | ||||||
|
|
||||||
| A Deputy Lead Maintainer shares these responsibilities and acts when the Lead is unavailable. | ||||||
|
|
||||||
| ## Responsibilities | ||||||
|
|
||||||
| The Lead Maintainer is responsible for activities such as: | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| - being a point of contact for new contributors | ||||||
| - ensuring issues and PRs are labeled and routed on a regular basis | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How regular? I liked our discussion about letting leads (generally, not just lead maintainers) set rules for their role themselves. We can leave it intentionally vague. |
||||||
| - ensuring contributors (of code or issues) are able to receive quality feedback | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| - identifying blocked or stale PRs | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe cut or say more concretely what to do after identifying those. Are lead maintainers expected to be admins? |
||||||
| - making release blockers and release-readiness tasks visible | ||||||
| - routing contributor questions to the right place | ||||||
| - documenting major decisions publicly | ||||||
| - keeping the repo health status current | ||||||
| - escalating cross-repo/spec/API issues | ||||||
| - making the repo's need for additional maintainer, reviewer, docs, or triage capacity visible to the Steering Committee | ||||||
|
|
||||||
| ## Non-responsibilities | ||||||
|
|
||||||
| The Lead Maintainer is not expected to: | ||||||
|
|
||||||
| - personally fix each bug | ||||||
| - personally review each PR | ||||||
| - guarantee response times | ||||||
| - carry the repository alone | ||||||
| - accept new features without a maintenance path | ||||||
| - make unilateral breaking changes | ||||||
| - override maintainer consensus | ||||||
|
Comment on lines
+25
to
+50
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are great but feel a bit too vague to be part of the official governance docs. If we say "routing contributor questions to the right place" is a responsibility, I think it's hard to make this concrete. The governance docs (so far at least) are to me almost like laws we wrote which is why we carefully crafted them to be concise and concrete. This document differs a bit from the others (e.g. https://github.com/vega/.github/blob/main/project-docs/GOVERNANCE.md in that regard). |
||||||
|
|
||||||
| ## Authority | ||||||
|
|
||||||
| The Lead Maintainer works through the normal public contribution, review, and consensus processes. | ||||||
|
|
||||||
| The Lead may organize labels, milestones, and project boards; summarize apparent consensus; request review; close clearly duplicate or out-of-scope issues according to documented policy; identify release blockers; and escalate unresolved or cross-project decisions. | ||||||
|
|
||||||
| The Lead does not own the repository and does not have authority to override project governance. | ||||||
|
|
||||||
| ## Selection criteria | ||||||
|
|
||||||
| Lead Maintainers should have a track record of consistent, high-quality contributions to the repository, and be comfortable proposing a level of involvement that fits their circumstances. | ||||||
|
|
||||||
| Lead and Deputy Maintainers may be nominated by current maintainers or may self-nominate. Selection should be by lazy consensus of active maintainers for that repository, with Steering Committee awareness or ratification for critical repositories. | ||||||
|
|
||||||
| Lead and Deputy roles should be reviewed at least annually, or when a repository's health status changes. | ||||||
|
|
||||||
| ## Status and transition | ||||||
|
|
||||||
| | Repo status | What it means | | ||||||
| | --- | --- | | ||||||
| | Active | Has a named Lead Maintainer; Deputy is strongly recommended. | | ||||||
| | Maintenance | No named Lead; draws from the shared maintainer pool. | | ||||||
| | Archive candidate | No active maintainer coverage; Steering Committee should evaluate archiving. | | ||||||
|
|
||||||
| Lead Maintainer suggested term length is 1 year; terms can be renewed. If a critical repository has no Lead, it becomes a top priority for the Steering Committee to recruit or develop one. | ||||||
|
|
||||||
| If a Lead or Deputy needs to step back temporarily, they should communicate this to maintainers and may move to **On Leave** status, with the Deputy (if present) assuming coordination responsibilities in the interim. If no Deputy exists, the Steering Committee should be notified. | ||||||
|
|
||||||
| ## Emeritus and stepping down | ||||||
|
|
||||||
| The intent of this section is planning accuracy for a volunteer team, not removal from the community. | ||||||
|
|
||||||
| ### Voluntary transition | ||||||
|
|
||||||
| A Lead or Deputy who is no longer able to serve in the role should let the maintainer group know, ideally with some notice to allow for a handoff. There is no minimum tenure required before stepping down. | ||||||
|
|
||||||
| ### Inactivity-based transition | ||||||
|
|
||||||
| A Lead or Deputy with no qualifying activity in the relevant repository for the previous 6 months may be nominated for emeritus transition by any maintainer. Qualifying activity includes commits, pull request authorship or review, and substantive issue participation in that repository. | ||||||
|
|
||||||
| Before opening an emeritus PR, the nominating maintainer should: | ||||||
|
|
||||||
| 1. Make a best-effort attempt to contact the person via Slack, email, or another preferred channel. | ||||||
| 2. Wait at least 30 days after first outreach before proceeding. If there is no response after 60 days, they may proceed. | ||||||
| 3. Include a brief activity summary and a note of outreach attempts in the PR description. | ||||||
|
|
||||||
| The transition PR should update any relevant role records (e.g. `project-inventory.yml` or equivalent) to reflect the new Lead/Deputy assignment or the repo's downgrade to maintenance status. | ||||||
|
|
||||||
| ### After transition | ||||||
|
|
||||||
| Emeritus Leads and Deputies retain community membership and remain welcome participants. They may return to a Lead or Deputy role through the normal nomination and approval process. | ||||||
|
|
||||||
| This per-repo emeritus process is separate from, and in addition to, the org-wide Maintainer emeritus process described in [GOVERNANCE.md](../GOVERNANCE.md). | ||||||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This will arrive separately in #33 |
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be in project docs