|
| 1 | +[](https://gitter.im/python/typing?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
| 2 | + |
| 3 | +PEP 484: Type Hints |
| 4 | +=================== |
| 5 | + |
| 6 | +This GitHub repo is used for three separate things: |
| 7 | + |
| 8 | +- The issue tracker is used to discuss PEP-level type system issues. |
| 9 | + However, |
| 10 | + [typing-sig](https://mail.python.org/mailman3/lists/typing-sig.python.org/) |
| 11 | + is more appropriate these days). |
| 12 | + |
| 13 | +- A copy of the `typing` module for older Python versions (2.7 and |
| 14 | + 3.4) is maintained here. Note that the canonical source lives |
| 15 | + [upstream](https://github.com/python/cpython/blob/master/Lib/typing.py) |
| 16 | + in the CPython repo. |
| 17 | + |
| 18 | +- The `typing_extensions` module lives here. |
| 19 | + |
| 20 | +Workflow |
| 21 | +-------- |
| 22 | + |
| 23 | +* The typing.py module and its unittests are edited in the `src` |
| 24 | + subdirectory of this repo. The `python2` subdirectory contains the |
| 25 | + Python 2 backport. |
| 26 | + |
| 27 | +Workflow for PyPI releases |
| 28 | +-------------------------- |
| 29 | + |
| 30 | +* Run tests under all supported versions. As of May 2019 this includes |
| 31 | + 2.7, 3.4, 3.5, 3.6, 3.7. |
| 32 | + |
| 33 | +* On macOS, you can use `pyenv <https://github.com/pyenv/pyenv>`_ to |
| 34 | + manage multiple Python installations. Long story short: |
| 35 | + |
| 36 | + * ``xcode-select --install`` |
| 37 | + * ``brew install pyenv`` |
| 38 | + * ``echo 'eval "$(pyenv init -)"' >> ~/.bash_profile`` |
| 39 | + * Open a new shell |
| 40 | + * ``pyenv install 3.5.3`` |
| 41 | + * ``pyenv install 3.4.6`` |
| 42 | + * (assuming you already have 2.7.13 and 3.6.1 from Homebrew) |
| 43 | + * ``pyenv global system 3.5.3 3.4.6`` |
| 44 | + |
| 45 | +* You can use ``tox`` to automate running tests. |
| 46 | + |
| 47 | +* Update the version number in ``setup.py``. |
| 48 | + |
| 49 | +* Build the source and wheel distributions: |
| 50 | + |
| 51 | + * ``pip3 install -U setuptools wheel`` |
| 52 | + * ``pip2 install -U setuptools wheel`` |
| 53 | + * ``rm -rf dist/ build/`` |
| 54 | + * ``python3 setup.py sdist bdist_wheel`` |
| 55 | + * ``rm -rf build/`` (Works around `a Wheel bug <https://bitbucket.org/pypa/wheel/issues/147/bdist_wheel-should-start-by-cleaning-up>`_) |
| 56 | + * ``python2 setup.py bdist_wheel`` |
| 57 | + |
| 58 | +* Install the built distributions locally and test (if you |
| 59 | + were using ``tox``, you already tested the source distribution). |
| 60 | + |
| 61 | +* Make sure twine is up to date, then run ``twine upload dist/*``. |
0 commit comments