Skip to content

Adopt file-backed dynamic package version #39

Description

@adohe

Background

PR #37 keeps the v0.0.2 release simple by leaving pyproject.toml with a static project.version and documenting the tag-driven publish workflow. That is good enough for the current release, but the next milestone should reduce version metadata duplication.

Peer projects such as verl and TRL use a file-backed dynamic package version: pyproject.toml declares dynamic = ["version"], and setuptools reads the version from a dedicated version file.

Scope

Move AReno to a file-backed dynamic version strategy after v0.0.2 is cut.

Expected shape:

  • Add a single version source file, e.g. VERSION or areno/version/version.
  • Update pyproject.toml to declare dynamic = ["version"].
  • Configure [tool.setuptools.dynamic] version = { file = "..." }.
  • Keep the publish workflow deriving the package version from the vX.Y.Z tag and updating the version file before building the sdist.
  • Update RELEASE.md so the release checklist points to the version file as the committed source of truth.

Acceptance criteria

  • pyproject.toml no longer hardcodes project.version.
  • Local package metadata resolves to the version from the version file.
  • The PyPI publish workflow still publishes a PEP 440 version derived from a leading-v git tag.
  • RELEASE.md documents the new version source of truth.
  • A CPU-safe test or metadata validation covers the dynamic version behavior.

Notes

  • Do not include this in the v0.0.2 release-hygiene PR; this is intentionally a follow-up cleanup for the next milestone.
  • This should follow the file-backed approach used by projects like verl and TRL, not the heavier tag-only setuptools-scm approach unless maintainers explicitly choose that later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/buildIssues or PRs related to build system, packaging, and installationkind/cleanupCategorizes issue or PR as related to cleaning up code, process, or technical debtpriority/backlogHigher priority than awaiting-more-evidence

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions