This repository demonstrates steps needed to publish an importable Python package first to TestPyPI, and second to PyPI. If this demonstration deviates from best practice in any way, please submit an issue on GitHub.
Inside import-ready is a package called huntsville_havoc
that divulges a couple of bona fide secrets that most diehard SPHL Huntsville Havoc fans don't know.
- Prepare your environment before installing Python packages.
- Update version in setup.py per semantic versioning guidance.
Run as follows from the top level directory in a clean venv with pip-tools installed:
python -m piptools compile --upgrade --generate-hashes dev-requirements.in python -m piptools sync dev-requirements.txt python -m pytest -s tests
- Git commit, tag, & push all desired edits for release.
- Create a new release in GitHub to mirror your new version.
- Generate distribution archives for your package.
- Upload your package to TestPyPI.
Run as follows from the tests
directory in another clean venv with pip-tools installed:
TEST_PYPI_FLAG='--extra-index-url https://test.pypi.org/simple/' python -m piptools compile --upgrade --generate-hashes $TEST_PYPI_FLAG \ --output-file testpypi-requirements.txt pub-requirements.in python -m piptools sync $TEST_PYPI_FLAG testpypi-requirements.txt python -m pytest -s
After passing the above tests, upload your package to PyPI.
Run as follows from the tests
directory in yet another clean venv with pip-tools installed:
python -m piptools compile --upgrade --generate-hashes \ --output-file pypi-requirements.txt pub-requirements.in python -m piptools sync pypi-requirements.txt python -m pytest -s