python / python/mypy

Define and document workflows for librt updates

Offen
#20,062 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

topic-developer
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den nicht abgehakten Punkten in diesem Issue und untersuche mypy-requirements.txt, test-requirements.txt sowie den mypy/lib-rt-Code, auf den sie verweisen oder den sie spiegeln. Prüfe den vorhandenen Ort der Release-Dokumentation und das librt-Repository, bevor du dokumentierst, wann Pins aktualisiert, librt veröffentlicht, inkompatible Änderungen behandelt und versioniert werden soll. Als erledigt gilt die Aufgabe, wenn Maintainer die dokumentierten Workflows befolgen können, ohne auf eine einzelne Person angewiesen zu sein.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, python
Bereich
documentation, release
Issue-Typ
Dokumentation
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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