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.
Background
PR #37 keeps the
v0.0.2release simple by leavingpyproject.tomlwith a staticproject.versionand 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
verlandTRLuse a file-backed dynamic package version:pyproject.tomldeclaresdynamic = ["version"], and setuptools reads the version from a dedicated version file.Scope
Move AReno to a file-backed dynamic version strategy after
v0.0.2is cut.Expected shape:
VERSIONorareno/version/version.pyproject.tomlto declaredynamic = ["version"].[tool.setuptools.dynamic] version = { file = "..." }.vX.Y.Ztag and updating the version file before building the sdist.RELEASE.mdso the release checklist points to the version file as the committed source of truth.Acceptance criteria
pyproject.tomlno longer hardcodesproject.version.vgit tag.RELEASE.mddocuments the new version source of truth.Notes
v0.0.2release-hygiene PR; this is intentionally a follow-up cleanup for the next milestone.verlandTRL, not the heavier tag-onlysetuptools-scmapproach unless maintainers explicitly choose that later.