diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8adb93d7f..989a59665 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -190,6 +190,9 @@ supported: [removing obsolete third-party libraries](#third-party-library-removal-policy). It contains the first version of the corresponding library that ships its own `py.typed` file. +* `no_longer_updated` (optional): This field is set to `true` before removing + stubs for other reasons than the upstream library shipping with type + information. * `stubtest` (default: `true`): Whether stubtest should be run against this package. Please avoid setting this to `false`, and add a comment if you have to. @@ -529,7 +532,7 @@ if it consisted of several smaller commits. ## Third-party library removal policy -Third-party packages are generally removed from typeshed when one of the +Third-party stubs are generally removed from typeshed when one of the following criteria is met: * The upstream package ships a `py.typed` file for at least six months, or @@ -543,6 +546,18 @@ If a package ships its own `py.typed` file, please follow these steps: ["removal" label](https://github.com/python/typeshed/labels/removal). 3. Open a PR that sets the `obsolete_since` field in the `METADATA.toml` file to the first version of the package that shipped `py.typed`. +4. After at least six months, open a PR to remove the stubs. + +If third-party stubs should be removed for other reasons, please follow these +steps: + +1. Open an issue explaining why the stubs should be removed. +2. A maintainer will add the + ["removal" label](https://github.com/python/typeshed/labels/removal). +3. Open a PR that sets the `no_longer_updated` field in the `METADATA.toml` + file to `true`. +4. When a new version of the package was automatically uploaded to PyPI + (which usually takes up to 3 hours), open a PR to remove the stubs. ## Maintainer guidelines diff --git a/tests/check_consistent.py b/tests/check_consistent.py index fd97a3d22..a88a6909b 100755 --- a/tests/check_consistent.py +++ b/tests/check_consistent.py @@ -19,7 +19,15 @@ import re import tomli consistent_files = [{"stdlib/@python2/builtins.pyi", "stdlib/@python2/__builtin__.pyi"}] -metadata_keys = {"version", "requires", "extra_description", "obsolete_since", "stubtest", "stubtest_apt_dependencies"} +metadata_keys = { + "version", + "requires", + "extra_description", + "obsolete_since", + "no_longer_updated", + "stubtest", + "stubtest_apt_dependencies", +} allowed_files = {"README.md"}