Skip to content

1.0.7

Latest

Choose a tag to compare

@ethan-li ethan-li released this 26 Jun 15:16
822da10
feat: auto version from Git tags using setuptools_scm (#4)

* feat: add lcov version detection with minimum version enforcement

- Add --lcov-version CLI argument to 'init' command (default: 2.0, set to '0' to disable)
- Add get_lcov_version() and validate_lcov_version() methods to CoverageToolManager
- Integrate lcov version check into _validate_environment() for gcc compiler workflow
- Add comprehensive unit tests for lcov version detection and validation
- Human-readable error messages with installation/update instructions

* refactor: replace weak tests with mock-based lcov version tests

Replace tests that only tested version comparison logic in isolation
with proper tests that mock subprocess calls to verify actual lcov
version detection and validation functionality.

* feat: use setuptools_scm for automatic version from Git tags

- Add setuptools_scm to build-system requirements
- Make version field dynamic in pyproject.toml
- Add setuptools_scm configuration for version file output
- Update __init__.py to import version from _version.py (generated at build time)
- Fall back to dev placeholder version when _version.py is not available

This eliminates the need to manually maintain version in pyproject.toml.
Version is now derived from Git tags (e.g., v1.0.7 or 1.0.7) at build time.

* fix: remove invalid capture_log option from setuptools_scm config

* fix: pin setuptools_scm to 7.x for API stability

* fix: rename version_file to write_to for setuptools_scm 7.x API

* fix: use proper tag_regex format for setuptools_scm 7.x

* fix: fetch full git history for setuptools_scm to find tags

* fix: add named capture group 'version' to tag_regex

* fix: add fetch-depth: 0 to package and release jobs for setuptools_scm

---------

Co-authored-by: Ethan Li <ethan@ethan-li.com>