56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
Code in this repository should follow CPython's style guidelines and
|
|
contributors need to sign the PSF Contributor Agreement.
|
|
|
|
# typing\_extensions
|
|
|
|
The `typing_extensions` module provides a way to access new features from the standard
|
|
library `typing` module in older versions of Python. For example, Python 3.10 adds
|
|
`typing.TypeGuard`, but users of older versions of Python can use `typing_extensions` to
|
|
use `TypeGuard` in their code even if they are unable to upgrade to Python 3.10.
|
|
|
|
If you contribute the runtime implementation of a new `typing` feature to CPython, you
|
|
are encouraged to also implement the feature in `typing_extensions`. Because the runtime
|
|
implementation of much of the infrastructure in the `typing` module has changed over
|
|
time, this may require different code for some older Python versions.
|
|
|
|
`typing_extensions` may also include experimental features that are not yet part of the
|
|
standard library, so that users can experiment with them before they are added to the
|
|
standard library. Such features should ideally already be specified in a PEP or draft
|
|
PEP.
|
|
|
|
`typing_extensions` supports Python versions 3.7 and up.
|
|
|
|
# Versioning scheme
|
|
|
|
Starting with version 4.0.0, `typing_extensions` uses
|
|
[Semantic Versioning](https://semver.org/). The major version is incremented for all
|
|
backwards-incompatible changes.
|
|
|
|
# Workflow for PyPI releases
|
|
|
|
- Ensure that GitHub Actions reports no errors.
|
|
|
|
- Update the version number in `typing_extensions/pyproject.toml` and in
|
|
`typing_extensions/CHANGELOG`.
|
|
|
|
- Make sure your environment is up to date
|
|
|
|
- `git checkout master`
|
|
- `git pull`
|
|
- `python -m pip install --upgrade build twine`
|
|
|
|
- Build the source and wheel distributions:
|
|
|
|
- `cd typing_extensions`
|
|
- `rm -rf dist/`
|
|
- `python -m build .`
|
|
|
|
- Install the built distributions locally and test (if you were using `tox`, you already
|
|
tested the source distribution).
|
|
|
|
- Run `twine upload dist/*`.
|
|
|
|
- Tag the release. The tag should be just the version number, e.g. `4.1.1`.
|
|
|
|
- `git push --tags`
|