build system and dependencies
Poetry owns the lockfile and the publish command. Users still pip install pyjiit.
flowchart LR Toml["pyproject.toml"] --> Poetry["poetry-core"] Poetry --> Wheel["wheel / sdist"] Lock["poetry.lock"] --> Poetry
Metadata#
| Field | Value |
|---|---|
| name | pyjiit |
| version | 0.1.0a8 |
| author | Harsh Sharma <[email protected]> |
| license | MIT License |
| readme | README.rst |
| requires-python | >=3.9 |
| homepage | https://github.com/codelif/pyjiit |
Runtime#
| Dist | Constraint |
|---|---|
requests |
>=2.32.3,<3.0.0 |
pycryptodome |
>=3.22.0,<4.0.0 |
That is the whole production graph besides their own deps (urllib3, certifi, charset-normalizer, idna, and Crypto).
flowchart TB pyjiit --> requests pyjiit --> pycryptodome requests --> urllib3 requests --> certifi requests --> idna requests --> charset_normalizer
Docs extra#
[tool.poetry.group.docs.dependencies]
sphinx = ">=7.4.7"
furo = "^2024.8.6"
poetry install --with docs
docs/requirements.txt only pins Furo. GitHub Actions uses the Poetry group.
Commands#
| Command | Does |
|---|---|
poetry install |
runtime env from lock |
poetry install --with docs |
plus Sphinx/Furo |
poetry add pkg |
new runtime dep |
poetry add -G docs pkg |
docs extra |
poetry lock |
refresh lock |
poetry build |
sdist + wheel |
poetry publish --build |
PyPI, needs pypi-token.pypi |
CI publish:
poetry config pypi-token.pypi ${{ secrets.PYPI_API_KEY }}
poetry publish --build
flowchart TD Dev["poetry install --with docs"] --> Edit["change code"] Edit --> Build["poetry build"] Build --> Rel["GitHub release"] Rel --> Pub["python-publish.yml"]
Version dual write#
Bump both:
pyproject.tomlversionpyjiit/init.py__version__
docs/conf.py release is also 0.1.0a8.