Self-attested maintenance status via MAINTAINERS.md + annual ping (organizational projects)
@jepfp ci sta già lavorando.
Dal 18/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
User Story
As a user evaluating whether to adopt a Typelevel library, I want each project's maintenance status to be self-declared by its maintainers and periodically reconfirmed, so that I don't have to guess from raw git activity whether a quiet project is stable or abandoned.
Approach (deliberately lightweight)
No central score, no dashboard, no TSC judgment call on individual project health. Two ingredients only:
MAINTAINERS.mdon every Organization/Affiliate project: who is committed, and when that was last confirmed.- A regular ping: a bot or TSC member opens an issue asking current maintainers "are you still committed?". A confirmation just updates the date in
MAINTAINERS.md— nothing else happens. "Yes, but I'm busy" is a complete and sufficient answer.
If the ping goes fully unanswered after the agreed number of reminders, the project is handed to the fallback process defined in the linked deprecation-process ticket. That hand-off is the only consequence defined here — this ticket does not decide what happens next.
Why not a score/dashboard
- A centralized score (e.g. commit/release frequency) is already known to be noisy in this org: scala-steward's automated commits make "last update" meaningless as a raw signal.
- It would misjudge stable-but-quiet projects as dead (the Spire case raised in the original discussion) — activity level doesn't distinguish "abandoned" from "finished."
- A public low "health" score is discouraging to volunteers and risks being self-fulfilling.
- Building and maintaining scoring infrastructure competes for the same scarce volunteer time this whole effort is trying to protect.
- The raw signals (last commit, last release) are already public on GitHub; what's missing isn't more data, it's a current confirmation from the person who actually knows.
Acceptance Criteria
- A document describing the MAINTAINERS File Requirements is defined (similar to https://lf-decentralized-trust.github.io/governance/governing-documents/MAINTAINERS-file/)
- A minimal
MAINTAINERS.mdexample is defined (maintainer(s), last confirmed date, how to reach them).- A solution has found to not introduce an additional duplication (beside the GH teams and publisher settings) (see feedback in comment)
- An annual ping mechanism is defined: what triggers it, how many reminders, over what time window, and where it posts (e.g. an issue on the project itself).
- The escalation point is defined: after N unanswered reminders, the project is handed off to the fallback process (linked ticket).
- No score, dashboard, or TSC judgment on individual project quality is introduced as part of this ticket.
- Rolled out to all current Organization and Affiliate projects.
Non-Goals
- Any scoring/dashboard mechanism (rejected, see above).
- The deprecation/retirement process itself → linked ticket.
- Security backstop policy for actively maintained projects → typelevel/tsc#196
Open Questions
- Exact reminder cadence/count before a project counts as "fully unanswered."
- Where does the ping bot live technically (extension of typelevel/steward, a new GitHub Action, something else)?
Related
- Split out: #211
- Related, not merged: typelevel/tsc#196
I want to declare: I used AI to challenge my thinking on this proposal and to help me write it clearly in English.
- Lingua principale
- Nessun dato sulla lingua
- Stelle
- 11
- Fork
- 4
- Merge medio
- 2m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di typelevel/tsc
-
Migrating: GatOSApertaprojects
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
-
Define deprecation processForse già presa @jepfp l’ha presa 20 giorni fa. Aperta
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Create global Issue configForse di nuovo libera @reardonj l’ha presa 59 giorni fa e non c’è nessuna pull request aperta. Aperta