python / python/mypy

Define and document workflows for librt updates

Aperta
#20,062 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

topic-developer
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

We now have the project librt on PyPI (GitHub link, PyPI link) that has functionality that mypy cache (de)serialization depends on (at least when using an interpreted mypy). It's a C extension that is based on the code under mypyc/lib-rt. We'll need to publish a new version of librt if we change certain things in mypyc/lib-rt, and it's important that multiple maintainers are able to do this so that this wouldn't block mypy/mypyc releases or development.

Here are things we need to define/document:

  • Have at least 3 experienced maintainers that have enough access and knowledge to make librt releases (both GitHub and PyPI project access). We need at least two owners so that we can also give access to new maintainers as needed and revoke access.
  • Decide where to put the relevant documentation (Mypy GitHub wiki? File in the librt GitHub repo?).
  • Document how to make a librt release somewhere in the mypy repo (possible just a link to a doc in the librt repo).
  • Document when we need to update the librt pin in mypy-requirements.txt and test-requirements.txt.
  • Document when we need to release a new version of librt (after every lib-rt change or only before a mypy release?).
  • Document how to make backward incompatible changes to librt, with a detailed description of PRs and timelines. E.g. we'll need to keep old functions in capsules around indefinitely, so we'd always need to add a new function but also keep the old one. Also some backward incompatible changes are probably not supported.
  • Document how versioning works.

cc @ilevkivskyi

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con gli elementi non selezionati di questa issue ed esamina mypy-requirements.txt, test-requirements.txt e il codice mypy/lib-rt a cui fanno riferimento o che rispecchiano. Esamina la posizione esistente della documentazione di release e il repository librt prima di documentare quando aggiornare i pin, rilasciare librt, gestire le modifiche incompatibili e assegnargli una versione. Il lavoro è completato quando i maintainer possono seguire i workflow documentati senza dipendere da una singola persona.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, python
Ambito
documentation, release
Tipo di issue
Documentazione
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.