datalad / datalad-extension-template

Minimal implementation of a DataLad extension module
http://datalad.org
Other
2 stars 17 forks source link

Versioneer update / update policy / choice of (non)-vendored mode #83

Open mslw opened 11 months ago

mslw commented 11 months ago

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:

adswa commented 11 months ago

Its not a direct relation to this (the issue is fixed in the extension-template), but I wanted to link it as an example of things that break that I just saw in my notifications: https://github.com/datalad/datalad-container/issues/231

adswa commented 11 months ago

I'm also leaving this link to Chris Markiewicz packaging recommendations here: https://effigies.gitlab.io/posts/python-packaging-2023. They recommend switching away from versioneer entirely

adswa commented 8 months ago

Another versioneer-related PR in an extension package: https://github.com/datalad/datalad-container/pull/256/files