-
Notifications
You must be signed in to change notification settings - Fork 18
Description
The extension template uses python-versioneer for managing version numbers (based on tags, or tags+commit-ids for non-release versions).
The template uses the default "vendored" mode, which means that the package contains a copy of versioneer code. Since versioneer undergoes active development, with changes that can range from adding coverage of edge cases to adding/removing support for Python versions, this vendored code may require updating. Updating versioneer can in most cases be done automatically with versioneer install which rewrites the vendored code (last done in bd313b2). In my experience, this update is also something that gets done soon after starting a new extension project, mostly in hopes of future-proofing it for a while.
Versioneer also supports a "non-vendored" mode : see overview in which the package becomes a build (install? I'm not quite sure) dependency; versioneer code needs not be included, but the dependency is declared in pyproject.toml or setup.cfg.
Currently, the extension template uses versioneer 0.23 (Aug 2022; officially supporting Python 3.7-3.10). Current versioneer release is 0.29 (Jul 2023).
With that introduction, I have the following questions:
- should we upgrade versioneer code to 0.29 now / is there a practical benefit from doing so (here are Versioneer's changes)
- when should we upgrade it in general, e.g. once a year or when things start to break
- would switching to non-vendored mode be an option to reduce maintenance, or would it have drawbacks / no benefits