Skip to content

Define and document workflows for librt updates #20062

@JukkaL

Description

@JukkaL

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic-developerIssues relevant to mypy developers

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions