Skip to content

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

@mslw

Description

@mslw

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions