Repository navigation
Release 0.6.0 - #37
Merged
Merged
Conversation
Bump to 0.6.0 for qsv 27.0.0, which brings live Data Schematics. The docs now name qsv 27.0.0 or later for them, in place of "a qsv newer than 26.0.0". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #37 +/- ##
==========================================
- Coverage 99.28% 99.14% -0.14%
==========================================
Files 30 30
Lines 4178 4230 +52
Branches 542 550 +8
==========================================
+ Hits 4148 4194 +46
- Misses 16 20 +4
- Partials 14 16 +2
🚀 New features to boost your workflow:
|
…s source Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`qsv get cache-fetch --output` puts a new file at the staging path with the umask's mode, so a `viz <URL>` or `register --download` through a qsv with `get` left the data 0644 beside the schematic. It is made 0600 again before anything else. The test fake now replaces the file as qsv does, rather than truncating it, which had kept the mode and hidden this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The downloaded file is owner-only, but a qsv with `get` also caches the data in ~/.qsv-cache (or QSV_CACHE_DIR) with its default modes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s a commented template
JSON can't hold comments, so the tray's Open config could only seed `{}`. The config is
now TOML (tomllib on 3.11+, tomli on 3.10). Open config creates daemon.toml with every
setting commented out, each with its default and the values it takes, generated from
DaemonConfig so the two can't drift. A daemon.json from 0.5.x is no longer read.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tics serve logs a warning and the tray notifies once per qsv version, rather than schematics silently never connecting. Nothing is blocked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pillow 13.0.0 fixes the 41 open Dependabot alerts on the tray extra's Pillow 12.3.0, and needs Python 3.11, so qsv-client drops 3.10. The daemon's config is read with the stdlib's tomllib, so tomli is gone and there are no runtime dependencies again. ruff's py311 rules replace asyncio.TimeoutError with its builtin alias TimeoutError. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
uv.lock conflicted with the Python 3.11 relock; kept that lock and moved ruff to 0.17.2, as #36 did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…chematics [skip ci] 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 0.6.0, to ship alongside qsv 27.0.0, where live Data Schematics are the banner feature.
Why release before qsv 27.0.0
The draft Highlights for qsv 27.0.0 tell readers to point
qsv-clientd vizat a CKAN page. That command arrived in #34 and isn't in 0.5.0. Nothing else in qsv 27 depends on this release: the bridge protocol hasn't changed. The new optionalsourcekey in the schematic's data block is ignored by 0.5.0, which reads only the keys it knows (SchematicSource.from_json).Changes
Version 0.6.0 in
pyproject.toml,__init__.pyanduv.lock.CHANGELOG.md:[Unreleased]becomes[0.6.0] - 2026-10-26, with an intro and compare links. Covers feat(daemon): one-command live mode for CKAN data; fix ckan:// and web-page fetches #34 and fix(daemon): re-renders keep the recorded source; register's stdout is JSON only #35.The docs now name qsv 27.0.0 or later for live schematics, in place of "a qsv newer than 26.0.0":
README.md, the package description, and thedocs/DAEMON.mdexample embed.Fix (6056afa): data downloaded through
qsv get(byqsv-clientd viz <URL>, or thedownloadfield ofPOST /v1/datasets) was left 0644 beside the schematic:qsv get cache-fetch --outputputs a new file there with the umask's mode. It is now set back to 0600. Added a regression test, and the fake qsv now replaces the file the way qsv does, instead of truncating it (which had kept the mode and hidden the bug). There's no separate changelog entry: 0.5.0 had no such download path, so the bug never shipped, and the fix makes the feat(daemon): one-command live mode for CKAN data; fix ckan:// and web-page fetches #34 entry's "readable only by you" true. (The commit message saysregister --download; that is the API field above, not a CLI flag.)Changelog (459867f): the
viz <URL>entry now says that a qsv withgetalso keeps a copy of the data in its own cache (~/.qsv-cacheorQSV_CACHE_DIR), which follows your umask. qsv's stats caches already take the CSV's mode (qsv #4622), so the 0600 fix covers them.Breaking: Python 3.11+ and Pillow 13 (f99570d). All 41 open Dependabot alerts (5 critical, 23 high, 13 moderate) were for Pillow 12.3.0, which
uv.lockkept for Python 3.10; Pillow 13.0.0 fixes them and requires 3.11. So[tray]now needsPillow>=13,requires-pythonis>=3.11, CI runs 3.11–3.14, andtomliis gone (no runtime dependencies again). ruff's py311 rules swap sixasyncio.TimeoutErrorfor the builtinTimeoutError, the same class since 3.11. The tray only opens its own bundled icon, so the Pillow bugs weren't reachable through it. 769 passed, 2 skipped on both 3.11 and 3.14. The alerts should close when this merges.Breaking:
daemon.tomlreplacesdaemon.json(74939f5, e25dc4e). JSON can't hold comments, so the tray's Open config… could only create{}. The config is now TOML, read with the stdlib'stomllib. Open config… now creates adaemon.tomlwith every setting commented out, each with its default and the values it takes. The template is generated fromDaemonConfig, and a test checks that uncommenting every line loads cleanly and equals the defaults. Adaemon.jsonfrom 0.5.x is no longer read (agreed: not widely released yet). The run directory'sdaemon.json(runtime info) is unchanged. Updated: README,docs/DAEMON.md, CHANGELOG (### Changed), CLAUDE.md. Tests include a Windows path round-trip.A notice when qsv is older than 27.0.0 (16f2412). Its schematics can't connect, so
servelogs a warning (shown without--verbose) and the tray notifies once per qsv version, rather than schematics silently staying offline. Nothing is blocked; other uses still need only qsv 25.0.0. A qsv dev build that has 27.0.0's schematic code but still reports 26.0.0 triggers it too, until qsv bumps its version.Follow-up for 0.6.1
getcache private first: pointQSV_CACHE_DIRat a 0700 folder under the daemon's home for the qsv the daemon runs, then check that re-renders and Fetch latest still work.Before publishing
viz smart→register→approve→ drill-down, refresh, re-render, Fetch latest, plus aqsv get(dc:) page with asource.QSV_BIN=<qsv 27.0.0> uv run pytest. No build reports 27.0.0 yet. Against the newest qsv dev build (viz-live-table-sb-export4801cb243, reports 26.0.0): 769 passed, 2 skipped, including the TOML change and the qsv < 27 notice.0.6.0and publish the GitHub release, which pushes it to PyPI viapublish.yml.🤖 Generated with Claude Code