chore(release): prepare v0.19.1 (#55)
CI / security (push) Successful in 1m21s
CI / lint (push) Successful in 22s
CI / ai-review (push) Skipped

This commit was merged in pull request #55.
This commit is contained in:
2026-11-06 21:18:15 +00:00
parent 8b842e5712
commit d1a80e6ead
10 changed files with 33 additions and 17 deletions
+7 -1
View File
@@ -12,7 +12,13 @@ Release history for Vocalinux.
## Current stable ## Current stable
**[v0.19.0](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0)** (2026-11-07) **[v0.19.1](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.1)** (2026-11-07)
A patch on 0.19.0. A leftover upstream launcher (`vocalinux.desktop`, `vocalinux`, `vocalinux-gui`) is now reported at startup, because it hid the Voculinux entry in the launcher (#52, #54). The release pipeline docs now say `bash` for `publish-release.sh`.
### v0.19.0 (2026-11-07)
[Release page](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0)
The first Voculinux release: a hard fork of 0.18.5 for Void Linux (glibc, x86_64), published as a signed xbps repository from the fork's Gitea host. Changes since v0.18.5, from the commit subjects and PR titles on `main`: The first Voculinux release: a hard fork of 0.18.5 for Void Linux (glibc, x86_64), published as a signed xbps repository from the fork's Gitea host. Changes since v0.18.5, from the commit subjects and PR titles on `main`:
+2 -2
View File
@@ -11,7 +11,7 @@
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Privacy: on-device](https://img.shields.io/badge/privacy-on--device-success)](#privacy-and-security) [![Privacy: on-device](https://img.shields.io/badge/privacy-on--device-success)](#privacy-and-security)
[![X11 & Wayland](https://img.shields.io/badge/display-X11%20%7C%20Wayland-lightgrey)](#features) [![X11 & Wayland](https://img.shields.io/badge/display-X11%20%7C%20Wayland-lightgrey)](#features)
[![Release](https://img.shields.io/badge/release-v0.19.0-478061)](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0) [![Release](https://img.shields.io/badge/release-v0.19.1-478061)](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.1)
[Website](https://voculinux.com) · [Install](#install) · [Docs](#documentation) · [Releases](https://git.bongbetic.com/xavierk/voculinux/releases) · [Issues](https://git.bongbetic.com/xavierk/voculinux/issues) [Website](https://voculinux.com) · [Install](#install) · [Docs](#documentation) · [Releases](https://git.bongbetic.com/xavierk/voculinux/releases) · [Issues](https://git.bongbetic.com/xavierk/voculinux/issues)
@@ -21,7 +21,7 @@ Voculinux turns speech into typed text in whatever app has focus. It is a free,
No account is required. Models download once. After that, speech-to-text stays on your machine. No account is required. Models download once. After that, speech-to-text stays on your machine.
**Current release:** [v0.19.0](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0). The first Voculinux release: a Void Linux package from the [signed xbps repository](#void-linux-signed-xbps-repo), niri and Dank Material Shell support, a model default chosen by free GPU memory, and a fix that keeps system-audio capture from ever opening the microphone. Details: [docs/UPDATE.md](docs/UPDATE.md). **Current release:** [v0.19.1](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.1), a patch on v0.19.0 that warns when a leftover launcher from the upstream project shadows Voculinux. v0.19.0 was the first Voculinux release: a Void Linux package from the [signed xbps repository](#void-linux-signed-xbps-repo), niri and Dank Material Shell support, a model default chosen by free GPU memory, and a fix that keeps system-audio capture from ever opening the microphone. Details: [docs/UPDATE.md](docs/UPDATE.md).
## Features ## Features
+3 -2
View File
@@ -574,10 +574,10 @@ from a clean checkout of the tag, in this order. Replace `vX.Y.Z` with the relea
that is not the committed one, both before any container starts. It writes `sdist/`, that is not the committed one, both before any container starts. It writes `sdist/`,
`xbps/`, `SDIST_SHA256` and `BUILT_FROM` (the tag and the commit it was built from), and `xbps/`, `SDIST_SHA256` and `BUILT_FROM` (the tag and the commit it was built from), and
prints `checksum=<sha256>`. Remove the key file afterwards. prints `checksum=<sha256>`. Remove the key file afterwards.
5. **Dry-run the publish:** `packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out --dry-run`. 5. **Dry-run the publish:** `bash packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out --dry-run`.
It runs every check (the tag is on `origin` at the built commit, the digest, the key) It runs every check (the tag is on `origin` at the built commit, the digest, the key)
and prints the API calls it would make. It sends no request and reads no token. and prints the API calls it would make. It sends no request and reads no token.
6. **Publish:** `packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out`. It attaches the 6. **Publish:** `bash packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out`. It attaches the
sdist, packages, signatures, `FINGERPRINT` and the client `.plist` to the tag's release, then sdist, packages, signatures, `FINGERPRINT` and the client `.plist` to the tag's release, then
replaces the assets of the rolling `latest` release that the client registration URL serves. replaces the assets of the rolling `latest` release that the client registration URL serves.
The repodata is uploaded last. The token comes from `GITEA_TOKEN`, or from the `tea` login The repodata is uploaded last. The token comes from `GITEA_TOKEN`, or from the `tea` login
@@ -642,6 +642,7 @@ git push origin v0.5.1-beta
| Version | Date | Phase | Notes | | Version | Date | Phase | Notes |
|---------|------|-------|-------| |---------|------|-------|-------|
| 0.19.1 | 2026-11-07 | Stable | Patch: a leftover upstream Vocalinux launcher is reported at startup (#52) |
| 0.19.0 | 2026-11-07 | Stable | First Voculinux release: a hard fork for Void Linux (glibc, x86_64) with a signed xbps repository, niri and Dank Material Shell support, a per-backend memory-aware model default, and PipeWire system audio that never falls back to the microphone | | 0.19.0 | 2026-11-07 | Stable | First Voculinux release: a hard fork for Void Linux (glibc, x86_64) with a signed xbps repository, niri and Dank Material Shell support, a per-backend memory-aware model default, and PipeWire system audio that never falls back to the microphone |
| 0.2.0-alpha | 2024 | Alpha | Initial alpha | | 0.2.0-alpha | 2024 | Alpha | Initial alpha |
| 0.3.0-alpha | 2024 | Alpha | - | | 0.3.0-alpha | 2024 | Alpha | - |
+10 -1
View File
@@ -25,7 +25,7 @@ installer as below.
```bash ```bash
cd voculinux cd voculinux
git fetch origin git fetch origin
git checkout v0.19.0 git checkout v0.19.1
./install.sh ./install.sh
``` ```
@@ -90,6 +90,15 @@ Missing system packages: see [INSTALL.md](INSTALL.md) or [DISTRO_COMPATIBILITY.m
--- ---
## What's New in v0.19.1
0.19.1 is a patch on 0.19.0 for Void Linux. If a launcher from the upstream project
is still installed, Voculinux now says so
on startup instead of leaving a stale upstream entry in the launcher. It does not remove
the files; the startup message names them. Update with `sudo xbps-install -Su`.
---
## What's New in v0.19.0 ## What's New in v0.19.0
0.19.0 is the first Voculinux release: a hard fork of the 0.18.5 line for Void Linux 0.19.0 is the first Voculinux release: a hard fork of the 0.18.5 line for Void Linux
+3 -3
View File
@@ -198,7 +198,7 @@ just void-smoke # the gate: build, sign with a throwaway k
just void-release v0.19.0 # build the release set, with XBPS_SIGNING_KEY_FILE set just void-release v0.19.0 # build the release set, with XBPS_SIGNING_KEY_FILE set
packaging/void/build-release.sh names v0.19.0-beta # offline: the names a tag maps to packaging/void/build-release.sh names v0.19.0-beta # offline: the names a tag maps to
packaging/void/build-release.sh check-tag v0.19.0-beta # offline: the tag gate packaging/void/build-release.sh check-tag v0.19.0-beta # offline: the tag gate
packaging/void/publish-release.sh v0.19.0 --out-dir DIR --dry-run # every check, the planned calls, no request bash packaging/void/publish-release.sh v0.19.0 --out-dir DIR --dry-run # every check, the planned calls, no request
``` ```
Podman only, never Docker. The base image digest and the void-packages commit Podman only, never Docker. The base image digest and the void-packages commit
@@ -315,11 +315,11 @@ cannot build this release. The sequence is:
then, in that worktree, then, in that worktree,
`packaging/void/build-release.sh release vX.Y.Z --key-file /dev/shm/xbps-sign-key.pem --out-dir /path/to/out`. `packaging/void/build-release.sh release vX.Y.Z --key-file /dev/shm/xbps-sign-key.pem --out-dir /path/to/out`.
Remove the key file when the run ends. Remove the key file when the run ends.
4. **Dry-run the publish:** `packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out --dry-run`. 4. **Dry-run the publish:** `bash packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out --dry-run`.
It checks that origin's `vX.Y.Z` peels to the commit in `BUILT_FROM`, that the sdist It checks that origin's `vX.Y.Z` peels to the commit in `BUILT_FROM`, that the sdist
matches `SDIST_SHA256`, and that the client key is the committed one, then prints the matches `SDIST_SHA256`, and that the client key is the committed one, then prints the
calls it would make. It sends no request and reads no token. calls it would make. It sends no request and reads no token.
5. **Publish:** `packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out`. The tag's 5. **Publish:** `bash packaging/void/publish-release.sh vX.Y.Z --out-dir /path/to/out`. The tag's
release gets the sdist, packages, signatures, `FINGERPRINT` and the client `.plist`, and release gets the sdist, packages, signatures, `FINGERPRINT` and the client `.plist`, and
the rolling `latest` release that the client registration URL serves is replaced, with the the rolling `latest` release that the client registration URL serves is replaced, with the
repodata last. The token comes from `GITEA_TOKEN`, or from the `tea` login for repodata last. The token comes from `GITEA_TOKEN`, or from the `tea` login for
+2 -2
View File
@@ -1,11 +1,11 @@
# Template file for 'voculinux' # Template file for 'voculinux'
pkgname=voculinux pkgname=voculinux
version=0.19.0 version=0.19.1
revision=1 revision=1
# The release tag this template names: v + __version__, with the pre-release # The release tag this template names: v + __version__, with the pre-release
# hyphen kept (the tag is v0.19.0-beta while version is 0.19.0beta). The release # hyphen kept (the tag is v0.19.0-beta while version is 0.19.0beta). The release
# gate (packaging/void/build-release.sh check-tag) refuses any mismatch. # gate (packaging/void/build-release.sh check-tag) refuses any mismatch.
_tag=v0.19.0 _tag=v0.19.1
# The release sdist ships no setup.py (setuptools pyproject-only), so the # The release sdist ships no setup.py (setuptools pyproject-only), so the
# build goes through the PEP 517 wheel (cf. Solaar, PhotoCollage). # build goes through the PEP 517 wheel (cf. Solaar, PhotoCollage).
build_style=python3-pep517 build_style=python3-pep517
+2 -2
View File
@@ -2,8 +2,8 @@
Version information for Voculinux. Version information for Voculinux.
""" """
__version__ = "0.19.0" __version__ = "0.19.1"
__version_info__ = (0, 19, 0) __version_info__ = (0, 19, 1)
__author__ = "Jatin K Malik" __author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com" __email__ = "jatinkrmalik@gmail.com"
__license__ = "AGPL-3.0-only" __license__ = "AGPL-3.0-only"
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "voculinux-website", "name": "voculinux-website",
"version": "0.19.0", "version": "0.19.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "voculinux-website", "name": "voculinux-website",
"version": "0.19.0", "version": "0.19.1",
"dependencies": { "dependencies": {
"@types/node": "^20.14.10", "@types/node": "^20.14.10",
"@types/react": "^18.3.3", "@types/react": "^18.3.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "voculinux-website", "name": "voculinux-website",
"version": "0.19.0", "version": "0.19.1",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
+1 -1
View File
@@ -29,7 +29,7 @@ const homeJsonLd = [
}, },
description: description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp, Faster Whisper, Whisper, VOSK, and Parakeet.", "Offline voice dictation and speech-to-text for Linux with whisper.cpp, Faster Whisper, Whisper, VOSK, and Parakeet.",
softwareVersion: "0.19.0", softwareVersion: "0.19.1",
author: { author: {
"@type": "Person", "@type": "Person",
name: "Xavier Karma", name: "Xavier Karma",