Pythonlings follows Semantic Versioning. Use full MAJOR.MINOR.PATCH versions in
package metadata and annotated git tags such as v0.1.0.
The distribution name on PyPI is pythonlings; installing it provides the
pythonlings console command. Releases before 0.3.0 were published as
python-learnings. The PyPI name pylings belongs to an unrelated project —
never publish or document it for this repository.
Run these checks from a clean working tree before tagging:
python -m pytest -q
pythonlings --root tests/fixtures/passing_curriculum verify
python -m build
python -m pip install --force-reinstall dist/pythonlings-*.whl
pythonlings --version
tmp=$(mktemp -d /tmp/pythonlings-release.XXXXXX)
pythonlings init --path "$tmp"
pythonlings --root "$tmp" list
pythonlings --root "$tmp" solution variables1
pythonlings --root "$tmp" reset variables1 --yesExpected release version for v0.3.0:
pythonlings 0.3.0
- One-time setup: the PyPI project
pythonlingsmust have a trusted publisher configured (repositoryabhiksark/pythonlings, workflowpublish.yml, environmentpypi). For a first release under a new name, add it as a pending publisher on pypi.org before tagging. - Commit the release changes.
- Create an annotated tag, for example
git tag -a v0.1.0 -m "Release v0.1.0". - Push the branch and tag.
- Create a GitHub Release from the tag.
- The
publishworkflow builds the package, checks that the release tag matchespyproject.toml, smoke-tests the installed wheel, then publishes to PyPI through trusted publishing.