From 8f5a29e75755e86f5dafa51a1f56efb3f6ffa548 Mon Sep 17 00:00:00 2001 From: Thomas Juul Dyhr Date: Mon, 4 May 2026 15:19:27 +0200 Subject: [PATCH 1/2] docs: update CHANGELOG and TODO for PR #145 and current project state - Add [Unreleased] entries for termcolor dep declaration, requirements sync, type signature fixes, and smart_progress generic syntax fix - Update TODO current status: May 2026, v1.0.1, 2338 tests, add PR #145 to recent completions, correct last-updated date Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 21 +++++++++++++++++++++ TODO.md | 12 +++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa89ba2..f4e8fab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- **Declared `termcolor` as a core dependency** (`>=3.3.0`): `versiontracker/ui.py` + imported `termcolor` with a graceful fallback but the package was never listed in + `pyproject.toml`, so `pip install macversiontracker` would silently skip it and + users would always get the colourless fallback (#145) +- **Fallback `colored`/`cprint` type signatures** now include `tuple[int, int, int]` + for `color`/`on_color` parameters, matching termcolor's actual stubs — fixes two + mypy `[misc]` errors surfaced once the package gained type-stub resolution (#145) +- **`smart_progress` generic syntax**: converted from PEP 695 `[T]` to classic + `TypeVar` + `# noqa: UP047` — pydocstyle 6.3.0 cannot parse the newer form and + raised a spurious D103 missing-docstring warning (#145) + +### Changed +- **`requirements.txt`**: raised `aiohttp` floor from `>=3.9.0` to `>=3.13.4`; added + `termcolor>=3.3.0` — now matches `[project.dependencies]` in `pyproject.toml` (#145) +- **`requirements-dev.txt`**: synced all version floors with `pyproject.toml` + (`pytest`, `pytest-asyncio`, `pytest-mock`, `black`, `ruff`, `mypy`, `types-PyYAML`, + `bandit`, `pip-audit`, `build`, `wheel`, `twine` were all behind) (#145) +- **`requirements-py313.txt`**: synced version floors, marked optional deps + (`fuzzywuzzy`, `rapidfuzz`) with comments, updated date stamp (#145) + ## [1.0.1] - 2026-04-01 ### Fixed diff --git a/TODO.md b/TODO.md index ca19121..87f6dbc 100644 --- a/TODO.md +++ b/TODO.md @@ -1,12 +1,12 @@ # VersionTracker TODO -## Current Status (March 2026) +## Current Status (May 2026) ### Project Health -- **Version**: 1.0.0 (stable) -- **Tests**: 2,158 passing, 15 skipped -- **Coverage**: ~78% overall +- **Version**: 1.0.1 (stable) +- **Tests**: 2,338 passing, 16 skipped +- **Coverage**: ~78% overall (target: 85%) - **CI/CD**: All workflows passing on master (all green) - **Python Support**: 3.12+ (with 3.13 compatibility) - **Security**: 0 dependabot alerts, 0 secret scanning alerts, 0 CodeQL findings @@ -16,6 +16,8 @@ ### Recent Completions +- ~~PR #145~~ **Dependency hygiene** — declared `termcolor` core dep, synced all + requirements files with `pyproject.toml`, fixed mypy type signatures in `ui.py` - ~~PR #118~~ **Dependency update** — `codecov/codecov-action` v5→v6 - ~~PR #117~~ **Stabilisation P0–P5** — Homebrew cmd fix, progress config canonicalisation, CLI/handler drift, exception narrowing, README/TODO alignment @@ -173,5 +175,5 @@ For detailed strategic planning see `docs/future_roadmap.md`. --- -**Last Updated**: March 2026 +**Last Updated**: May 2026 **Maintainer**: @docdyhr From bf9772e3c4ff5f885ca5213aa63acda301d64c34 Mon Sep 17 00:00:00 2001 From: Thomas Juul Dyhr Date: Wed, 20 May 2026 05:38:00 +0200 Subject: [PATCH 2/2] chore: ignore .claude/ directory Claude Code stores local plugin/session config in .claude/ which is machine-specific and should not be committed alongside .anthropic/. Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 13fb196..42bd927 100644 --- a/.gitignore +++ b/.gitignore @@ -416,6 +416,7 @@ CLAUDE.md .cursor-tutor .aider* .anthropic/ +.claude/ .openai/ assistant-* claude-*