From 172f08b12200459b344a1b98c9a87193d176f403 Mon Sep 17 00:00:00 2001 From: Roel Van Gils Date: Thu, 7 May 2026 07:39:50 +0200 Subject: [PATCH] Release v0.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Workspace `version` bumped from `0.5.0` to `0.6.0`. All internal path-deps updated. CHANGELOG `[Unreleased]` renamed to `[0.6.0] - 2026-05-07`; a fresh empty `[Unreleased]` block stays on top for ongoing work. Highlights since 0.5.0: * **Word-level Media Overlay sync** (M6.5). whisper.cpp's per-token timestamps drive karaoke-style highlight-along-with-audio in Thorium / Readium / Colibrio. Default-on with `--transcribe`; opt out via `--no-word-sync`. * **First-run UX overhaul.** - `dpub doctor` — diagnostic for build state, runtime tools, and Whisper model cache. `--json` for CI. - `dpub setup --whisper-model ` — SHA-verified download to `~/.cache/dpub/models/`. - `scripts/build.sh` — host-aware release build, auto-picks `--features metal` on Apple Silicon and `--features cuda` on Linux+nvcc. - `--transcribe` auto-discovers cached models; an interactive TTY prompt offers to download `ggml-medium.bin` when no model is cached. - `dpub doctor --install` — opt-in installer for missing runtime tools via `brew` / `apt-get` / `dnf` with per-tool consent. Pushing the `v0.6.0` tag after merge fires the release workflow, which produces unsigned binaries for Linux x86_64, macOS arm64 (with Metal Whisper acceleration), and Windows x86_64 and uploads each as a release asset. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 4 ++++ Cargo.lock | 18 +++++++++--------- Cargo.toml | 2 +- crates/dpub-cli/Cargo.toml | 10 +++++----- crates/dpub-convert/Cargo.toml | 12 ++++++------ crates/dpub-core/Cargo.toml | 2 +- crates/dpub-validate/Cargo.toml | 2 +- crates/epub3-writer/Cargo.toml | 2 +- 8 files changed, 28 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be31818..d864cd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format ## [Unreleased] +## [0.6.0] - 2026-05-07 + +Word-level Media Overlay sync (karaoke-style highlight-along-with-audio in compatible reading systems) and a major first-run UX overhaul (`dpub doctor`, `dpub setup --whisper-model `, auto-discovery, `scripts/build.sh`, optional `--install` for missing tools). + ### Added - **First-run UX overhaul.** Three new pieces close the path from `git clone` to a working `dpub convert --transcribe ...` without manual treasure hunts: diff --git a/Cargo.lock b/Cargo.lock index e9f9f16..ac5b10c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -357,7 +357,7 @@ dependencies = [ [[package]] name = "dpub-audio" -version = "0.5.0" +version = "0.6.0" dependencies = [ "tempfile", "thiserror 1.0.69", @@ -366,7 +366,7 @@ dependencies = [ [[package]] name = "dpub-cli" -version = "0.5.0" +version = "0.6.0" dependencies = [ "anyhow", "clap", @@ -388,7 +388,7 @@ dependencies = [ [[package]] name = "dpub-convert" -version = "0.5.0" +version = "0.6.0" dependencies = [ "chrono", "dpub-audio", @@ -406,7 +406,7 @@ dependencies = [ [[package]] name = "dpub-core" -version = "0.5.0" +version = "0.6.0" dependencies = [ "dpub-util", "quick-xml", @@ -416,7 +416,7 @@ dependencies = [ [[package]] name = "dpub-meta" -version = "0.5.0" +version = "0.6.0" dependencies = [ "serde", "serde_json", @@ -426,11 +426,11 @@ dependencies = [ [[package]] name = "dpub-util" -version = "0.5.0" +version = "0.6.0" [[package]] name = "dpub-validate" -version = "0.5.0" +version = "0.6.0" dependencies = [ "epub3-writer", "serde", @@ -442,7 +442,7 @@ dependencies = [ [[package]] name = "dpub-whisper" -version = "0.5.0" +version = "0.6.0" dependencies = [ "rubato", "serde", @@ -474,7 +474,7 @@ checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "epub3-writer" -version = "0.5.0" +version = "0.6.0" dependencies = [ "chrono", "dpub-util", diff --git a/Cargo.toml b/Cargo.toml index e5ebbde..536c4d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ members = [ ] [workspace.package] -version = "0.5.0" +version = "0.6.0" edition = "2024" rust-version = "1.88" license = "MIT OR Apache-2.0" diff --git a/crates/dpub-cli/Cargo.toml b/crates/dpub-cli/Cargo.toml index b78f4a4..9e94fe4 100644 --- a/crates/dpub-cli/Cargo.toml +++ b/crates/dpub-cli/Cargo.toml @@ -22,11 +22,11 @@ metal = ["dpub-convert/metal"] cuda = ["dpub-convert/cuda"] [dependencies] -dpub-audio = { path = "../dpub-audio", version = "0.5.0" } -dpub-core = { path = "../dpub-core", version = "0.5.0" } -dpub-convert = { path = "../dpub-convert", version = "0.5.0" } -dpub-meta = { path = "../dpub-meta", version = "0.5.0" } -dpub-validate = { path = "../dpub-validate", version = "0.5.0" } +dpub-audio = { path = "../dpub-audio", version = "0.6.0" } +dpub-core = { path = "../dpub-core", version = "0.6.0" } +dpub-convert = { path = "../dpub-convert", version = "0.6.0" } +dpub-meta = { path = "../dpub-meta", version = "0.6.0" } +dpub-validate = { path = "../dpub-validate", version = "0.6.0" } sha2 = { workspace = true } clap = { workspace = true } anyhow = { workspace = true } diff --git a/crates/dpub-convert/Cargo.toml b/crates/dpub-convert/Cargo.toml index 7e24b9b..63eef37 100644 --- a/crates/dpub-convert/Cargo.toml +++ b/crates/dpub-convert/Cargo.toml @@ -18,12 +18,12 @@ metal = ["dpub-whisper/metal"] cuda = ["dpub-whisper/cuda"] [dependencies] -dpub-audio = { path = "../dpub-audio", version = "0.5.0" } -dpub-core = { path = "../dpub-core", version = "0.5.0" } -dpub-meta = { path = "../dpub-meta", version = "0.5.0" } -dpub-util = { path = "../dpub-util", version = "0.5.0" } -dpub-whisper = { path = "../dpub-whisper", version = "0.5.0" } -epub3-writer = { path = "../epub3-writer", version = "0.5.0" } +dpub-audio = { path = "../dpub-audio", version = "0.6.0" } +dpub-core = { path = "../dpub-core", version = "0.6.0" } +dpub-meta = { path = "../dpub-meta", version = "0.6.0" } +dpub-util = { path = "../dpub-util", version = "0.6.0" } +dpub-whisper = { path = "../dpub-whisper", version = "0.6.0" } +epub3-writer = { path = "../epub3-writer", version = "0.6.0" } thiserror = { workspace = true } uuid = { workspace = true } chrono = { workspace = true } diff --git a/crates/dpub-core/Cargo.toml b/crates/dpub-core/Cargo.toml index 764a9c7..aab683c 100644 --- a/crates/dpub-core/Cargo.toml +++ b/crates/dpub-core/Cargo.toml @@ -11,7 +11,7 @@ description = "DAISY 2.02 parser and in-memory model" workspace = true [dependencies] -dpub-util = { path = "../dpub-util", version = "0.5.0" } +dpub-util = { path = "../dpub-util", version = "0.6.0" } quick-xml = { workspace = true } serde = { workspace = true } thiserror = { workspace = true } diff --git a/crates/dpub-validate/Cargo.toml b/crates/dpub-validate/Cargo.toml index d8dcd75..c3c267a 100644 --- a/crates/dpub-validate/Cargo.toml +++ b/crates/dpub-validate/Cargo.toml @@ -18,4 +18,4 @@ thiserror = { workspace = true } which = { workspace = true } [dev-dependencies] -epub3-writer = { path = "../epub3-writer", version = "0.5.0" } +epub3-writer = { path = "../epub3-writer", version = "0.6.0" } diff --git a/crates/epub3-writer/Cargo.toml b/crates/epub3-writer/Cargo.toml index 243c47f..6c0c77c 100644 --- a/crates/epub3-writer/Cargo.toml +++ b/crates/epub3-writer/Cargo.toml @@ -11,7 +11,7 @@ description = "Builder and serialiser for accessible EPUB 3 publications with Me workspace = true [dependencies] -dpub-util = { path = "../dpub-util", version = "0.5.0" } +dpub-util = { path = "../dpub-util", version = "0.6.0" } zip = { workspace = true } chrono = { workspace = true } uuid = { workspace = true }