I recently learned about setuptools-scm, which is, as they say themselves, "the blessed package to manage your versions by scm tags." This means that we DRY up our project a little bit by only setting the version in one place - github. It infers tags for unreleased/develop branches to not imply that a feature branch is the same version as what is currently tagged.
What does this PR accomplish?
Adds setuptools_scm to the build-system
Removes version identifier from init.py
Moves project.urls to a different place in pyproject.toml
How should this be manually tested?
If you want to confirm to yourself that it is reading the git tag properly, install it locally with pip install setuptools_scm and then enter python -m setuptools_scm. This should output the current development version, something like 0.2.4.dev8+g9f46775.d20240123 because the current release is 0.2.3.
Any background context you want to provide?
I recently learned about setuptools-scm, which is, as they say themselves, "the blessed package to manage your versions by scm tags." This means that we DRY up our project a little bit by only setting the version in one place - github. It infers tags for unreleased/develop branches to not imply that a feature branch is the same version as what is currently tagged.
What does this PR accomplish?
How should this be manually tested?
If you want to confirm to yourself that it is reading the git tag properly, install it locally with
pip install setuptools_scm
and then enterpython -m setuptools_scm
. This should output the current development version, something like0.2.4.dev8+g9f46775.d20240123
because the current release is0.2.3
.What are the relevant tickets?
Screenshots (if appropriate)