Skip to content

meta: uv plugin viability, and whether reqstool-python-poetry-plugin is still needed #91

Description

@jimisola

Summary

Should reqstool add a reqstool-python-uv-plugin, and is reqstool-python-poetry-plugin
still worth maintaining? Opened to record findings, not to propose a concrete build — the
evidence below points at "not yet" for the first and "needs real usage data" for the
second.

A uv plugin isn't buildable the way hatch's and poetry's are — yet

reqstool-python-hatch-plugin and reqstool-python-poetry-plugin both work the same way:
a custom build-time hook, registered through the backend's plugin system, that scans source
for decorators during hatch build / poetry build and writes annotations.yml.

uv is two different things, and only one of them is relevant here:

  • uv as package/dependency manager (uv add, uv sync, uv build) — this is
    orthogonal to which build backend a project declares. A project can use uv for
    everything and still declare build-backend = "hatchling.build" in pyproject.toml.
    In that case uv build just invokes hatchling under PEP 517, and
    reqstool-python-hatch-plugin already works, unmodified, for uv users today. No new
    plugin needed for this case.
  • uv_build, uv's own build backend — this is what a reqstool-python-uv-plugin would
    actually need to hook into, and it currently has no build-hook or plugin mechanism at all.
    astral-sh/uv#14561 is the open upstream
    request for one. uv-dynamic-versioning, the closest existing analog, states outright
    that it "doesn't work with the uv build backend right now" for the same reason.

So: nothing to build until uv#14561 (or equivalent) lands upstream. Worth revisiting when it
does, but starting now would mean building against a backend with no extension point.

Is poetry still needed?

Signal, not a conclusion — I don't have download or dependent-repo data to settle this:

  • reqstool-python-poetry-plugin's own README carries > [!WARNING] Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. — written by
    the project itself, not inferred.
  • Its commit history has no feature or fix commits since early on; the only recent activity
    is the same automated CI/dependency-bump/migration commits every repo got.
  • Its issue history is entirely closed maintenance issues (Renovate config, docs, dynamic
    versioning investigation) — nothing recent asking for it to work.

reqstool-python-hatch-plugin by contrast has no such warning and is the same age.

I couldn't get PyPI download stats for either package to compare actual usage — pypistats.org
wasn't reachable from here. That's the number I'd want before deciding to deprecate: whether
anyone downloads the poetry plugin at all, versus whether it's simply never been fixed
because no one asked.

Suggested next steps

  • No uv plugin work until there's an upstream extension point to build against. Track
    Build/Metadata Hook astral-sh/uv#14561.
  • Before any decision on poetry: pull download counts for
    reqstool-python-poetry-plugin vs reqstool-python-hatch-plugin from pypistats.org (or
    PyPI's BigQuery dataset) to see whether "untested, may be broken" has actually cost anyone
    anything.

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