Skip to content

feat: consolidate version source of truth and add release tooling#16

Merged
smorin merged 1 commit intomainfrom
feat/consolidate-version-and-release-tooling
Mar 18, 2026
Merged

feat: consolidate version source of truth and add release tooling#16
smorin merged 1 commit intomainfrom
feat/consolidate-version-and-release-tooling

Conversation

@smorin
Copy link
Copy Markdown
Contributor

@smorin smorin commented Mar 18, 2026

Summary

  • Single version source of truth: pyproject.toml now owns the version. __init__.py reads it at runtime via importlib.metadata (stdlib, no new deps) with a fallback for edge cases.
  • Version bump tooling: Added scripts/bump_version.py and Makefile targets (bump-patch, bump-minor, bump-major, release) for convenient version management.
  • Release documentation: Added RELEASE.md covering the full release process (bumping, tagging, CI/CD publish pipeline, manual publish). README updated to reference it.
  • Cleanup: Removed stale [tool.hatch.build.targets.wheel] section from pyproject.toml, replaced hardcoded version in tests with dynamic assertion.

Test plan

  • All 159 tests pass (make test)
  • make version shows 0.3.1
  • uv run wtf version shows worktreeflow 0.3.1
  • make bump-patch correctly bumps 0.3.0 → 0.3.1
  • New test_version_is_not_unknown test validates metadata resolution
  • Verify make release BUMP=minor workflow end-to-end

- Make pyproject.toml the single source of truth for version
- Use importlib.metadata in __init__.py to read version at runtime
- Add scripts/bump_version.py (stdlib-only) for version bumping
- Add Makefile targets: version, bump-patch, bump-minor, bump-major, release
- Add RELEASE.md documenting the full release process
- Update README.md with new Makefile targets and link to RELEASE.md
- Replace hardcoded version assertion in tests with dynamic check
- Remove stale [tool.hatch.build.targets.wheel] from pyproject.toml
- Bump version to 0.3.1
@smorin smorin merged commit 4522a6f into main Mar 18, 2026
5 checks passed
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

Successfully merging this pull request may close these issues.

1 participant