Repository navigation
release: 0.3.0 - #8
Merged
Merged
Conversation
- Bump the version to 0.3.0 and finalize the CHANGELOG. - find_qsv: on Windows, accept a path without its extension by trying each PATHEXT extension (shutil.which only does this from Python 3.12). - tests/test_client.py: find_qsv and QsvNotFound; the JSON error and --capabilities paths end to end through run() and the probe, in the shapes qsv's own tests pin (the latest qsv release, 24.0.0, takes neither, so nothing exercised them); __version__ matching the package metadata. - CI: a job pinned to qsv 24.0.0, so the text-error and --version fallbacks stay tested once the latest release supports JSON. - publish: fail before building when the release tag doesn't match the package version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
from_capabilities_json turned a null (or "dev") version into a string and accepted the document, so the probe skipped --version and, with min_version set, parse_version raised a bare ValueError. Validate the version where the document is accepted, and fall back otherwise. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release prep for 0.3.0, plus the test-coverage gaps found before cutting it.
Release
pyproject.toml,__init__.py, anduv.lock. A new test checks that__version__matches the package metadata, so the two can't drift.[Unreleased]finalized as[0.3.0] - 2026-10-10(adjust the date if the release goes out later), with compare links.publish.yml: before building, the job fails if the release tag doesn't match the package version (uv version --short).Fix
find_qsv(andbinary=/QSV_BIN) now accept a path without its extension, e.g.C:/tools/qsvforqsv.exe, by trying eachPATHEXTextension.shutil.whichonly does this for directory-qualified paths from Python 3.12. POSIX behavior is unchanged.--capabilitiesJSON without a usable version (null,"dev","") now falls back to--version, instead of being accepted as version"None", which mademin_versionraise a bareValueError. This closes the known gap noted in fix: resolve stdout_path against cwd=, and raise QsvError from the probe #7 (found by roborev review 5206). It isn't reachable with a real qsv, whose own tests require a semverversion, but the fix is two lines. Six new tests (sync and async) fail without it.Coverage
The latest qsv release (24.0.0) supports neither
QSV_ERROR_FORMAT=jsonnor--capabilities, so CI never took the client's JSON paths. Thesupports_json_errorsbranches of the integration tests are skipped today.tests/test_client.py(22 tests):find_qsv/QsvNotFound: default binary order,QSV_BIN, explicit path, relative path, not found, and the Windows extension case. The Windows case fails without the fix.run(), sync and async:csv,io,no_match,usage, and an unmappedother. The fake emits JSON only whenQSV_ERROR_FORMAT=jsonis set, in the shape qsv'stests/test_error_format.rspins.--capabilitiesJSON, sync and async: parsed fields, probed once and cached, never falling back to--version, andmin_versionenforced from the JSON.test-qsv-24-0-0job that runs the integration tests against a pinned qsv/qsvlite 24.0.0.testalways downloads the latest qsv, so without this job the text-error and--versionfallback paths would stop being tested once a JSON-capable qsv ships.Full suite: 97 passed locally (macOS). ruff and mypy are clean (default and
--platform win32).Release sequence after merge
gh release create 0.3.0, with thestdout_pathbehavior change (from fix: resolve stdout_path against cwd=, and raise QsvError from the probe #7) at the top of the notes: a relativestdout_pathnow resolves againstcwd=, and existing code that relies on the old location gets no error.publish.yml, and the new tag check gates the PyPI upload.🤖 Generated with Claude Code