Publishing¶
Use this flow to publish a public package build.
Preflight¶
Confirm the distribution name is still available before the first upload:
python -m pip index versions baileys-python
Run the full local release gate:
python scripts/release_gate.py
Review the package metadata:
python -m twine check dist/*
TestPyPI¶
Set a TestPyPI token in the shell where the upload will run:
$env:TWINE_USERNAME = "__token__"
$env:TWINE_PASSWORD = "<testpypi-token>"
python -m twine upload --repository testpypi dist/*
Install the TestPyPI build in a clean environment:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ baileys-python
python -c "from baileys import WhatsAppClient; print(WhatsAppClient.__name__)"
PyPI¶
Use a scoped PyPI project token when possible:
$env:TWINE_USERNAME = "__token__"
$env:TWINE_PASSWORD = "<pypi-token>"
python -m twine upload dist/*
After upload, confirm the public install path:
python -m pip install baileys-python
python -c "import baileys; print(baileys.__name__)"
Release Notes¶
- Keep generated auth files, QR images, logs, and live probe media out of the release commit.
- Update
docs/compatibility-matrix.mdanddocs/deferred-todos.mdbefore a tagged release. - Update
CHANGELOG.mdanddocs/changelog.mdbefore publishing a new package version. - Publish alpha builds while account-gated compatibility items remain marked as Todo.
Documentation Site¶
The documentation site is built with MkDocs Material and deployed by GitHub
Pages from the Docs workflow.
Build locally:
python -m pip install -e ".[docs]"
python -m mkdocs build --strict
The expected public URL is:
https://sivajeetsabdakar.github.io/baileys-python/