breaking
- remove legacy version parser api - config arg always required
- turn Configuration into a dataclass
- require configuration to always pass into helpers
- hide file-finders implementation in private module
- renamed setuptools_scm.hacks to setuptools_scm.fallbacks and drop support for pip-egg-info
- remove trace function and use logging instead
- unify `distance=None` and `distance=0` they should mean the same andwhere hiding dirty states that are now explicitly dirty
- depend on later importlib for the full selectable api
- move setuptools integration code to private sub-package
- use normalized dist names for the `SETUPTOOLS_SCM_PRETEND_VERSION_FOR_${DIST_NAME}` env var
- drop support for python 3.7
- introduce `version_file` as replacement for `write_to`
features
- created a directory for the vcs-versioning package and added it to pypi
- git: expect main as possible default branch
- drop version_from_scm helper
- trim down exposed public api
- no longer self-call twice in setuptools
- add support for version schemes by import
- chores
- migrate own metadata to pyproject.toml
- consolidate version schemes
- stricter tag typing
- pre-compiled regex
- move helpers to private modules
- support passing log levels to SETUPTOOLS_SCM_DEBUG
- support using rich.logging as console log handler if installed
- fix 527: type annotation in default version template
- fix 549: use fallbacks when scm search raises CommandNotFoundError
bugfixes
- fix 883: use HeadersParser to ensure only mime metadata in headers is used
- fix 884: parse calver dates from versions with the v prefix
- don't use a C locale without UTF-8 support, when running commands.