Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
mslw opened this issue Oct 9, 2023 · 3 comments
Open

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

mslw opened this issue Oct 9, 2023 · 3 comments

Comments

@mslw
Copy link
Contributor

mslw commented Oct 9, 2023

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
@adswa
Copy link
Member

adswa commented Oct 9, 2023

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: datalad/datalad-container#231

@adswa
Copy link
Member

adswa commented Oct 9, 2023

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
Copy link
Member

adswa commented Jan 17, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants