Skip to content

build(deps): require qsv-client>=0.4.0 - #350

Merged
jqnatividad merged 1 commit into
mainfrom
deps/qsv-client-0.4.0
Oct 15, 2026
Merged

jqnatividad merged 1 commit into
mainfrom
deps/qsv-client-0.4.0

Conversation

@jqnatividad

@jqnatividad jqnatividad commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Bumps qsv-client to >=0.4.0 (release notes). 0.4.0 requires qsv 25.0.0 — the same floor as DP+'s MINIMUM_QSV_VERSION — and runs qsv --capabilities before every client's first command, raising QsvVersionError for older binaries. DP+ uses none of the APIs 0.3.0/0.4.0 removed or changed (from_version_output, supports_json_errors, error_formats, cwd= + relative stdout_path).

  • QSVCommand.version() catches QsvVersionError (now a QsvError subclass) before the generic handler, so a too-old qsv_bin — including qsv 24, which rejects --capabilities — still fails startup with DP+'s At least qsv version 25.0.0 required. … error instead of Cannot get qsv version info…. Stale docs about the --version fallback are updated.
  • tests/test_ai_suggestions.py: the qsv_command fixture patched out check_version, so under 0.4.0 the capabilities probe ran inside each test's mocked run_sync (returning {}) and 11 describegpt tests failed with QsvError: … not a qsv --capabilities document. The fixture now primes capabilities at construction with a mocked --capabilities response.
  • tests/test_qsv_command_client.py: new test for a qsv that answers Unknown flag: '--capabilities'.
  • CHANGELOG: updated the Unreleased qsv-client entry.

Testing

  • Integration CI against a live CKAN stack (run): CKAN + Postgres + Solr + Prefect, with qsv-client 0.4.0 and qsv 25.0.0 installed. QSVCommand's startup version check passed through --capabilities; all 7 sample files ingested end to end (7 passed, 0 failed, 0 skipped); the qsv contract regression tests passed (14/14).
  • Unit tests touched by this PR (test_qsv_command_client.py, plus the describegpt tests in test_ai_suggestions.py; 24 total): CI doesn't run these, and I ran them locally against qsv-client 0.4.0 with ckan/config/utils/psycopg2 stubbed. All pass, including the failure paths (JSON error, plain-text error, empty stderr, exit 255) and the new too-old-qsv test. The old fixture fails 11 of the describegpt tests under 0.4.0.
  • Not run: the full unit suite with real CKAN. The "qsv too old" rejection is covered only by the unit tests, not in CI.

🤖 Generated with Claude Code

qsv-client 0.4.0 requires qsv 25.0.0 (DP+'s MINIMUM_QSV_VERSION) and
checks it via `qsv --capabilities` before a client's first command,
raising QsvVersionError for older binaries.

- QSVCommand.version() maps QsvVersionError to DP+'s "At least qsv
  version ... required" JobError, so a too-old qsv_bin (including one
  without --capabilities) is reported as before.
- test_ai_suggestions: the qsv_command fixture patched out the version
  check, so the capabilities probe ran inside each test's run_sync mock
  and failed; prime it at construction instead.
- New test for a qsv that rejects --capabilities.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jqnatividad
jqnatividad merged commit ef6b6a4 into main Oct 15, 2026
3 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