From 2acf6899bd87e65593ebc1397d9c47dc1557a6d9 Mon Sep 17 00:00:00 2001 From: Jatin K Malik Date: Tue, 17 Feb 2026 21:48:24 -0800 Subject: [PATCH] chore(release): prepare v0.6.2-beta (#224) * chore(release): prepare v0.6.2-beta - Update version from 0.6.1-beta to 0.6.2-beta - Update documentation version references - Update website schema and badges Changes since v0.6.1-beta: - Fix #221: Add missing psutil dependency - Fix #219: Suppress [BLANK_AUDIO] tokens in whisper.cpp output - Fix #204: Resolve PyAudio paInt16 attribute error - Fix #205: Ensure whisper module installed with --auto - Improve Vulkan shader package detection for multiple distros - CI: Fix nightly build tag cleanup * docs(agents): update AGENTS.md with current project structure - Update speech recognition engines list (whisper.cpp is now default) - Add key dependencies section - Update project structure with whispercpp_model_info.py and vosk_model_info.py - Add release process quick summary * docs(agents): add important rules about PR workflow - Never push directly to main - All changes require a PR - Wait for CI before merging - Squash merge PRs --- AGENTS.md | 38 +++++++++++++++++++++-- README.md | 66 ++++++++++++++++------------------------ docs/INSTALL.md | 6 ++-- docs/UPDATE.md | 51 ++++++++++++++----------------- src/vocalinux/version.py | 4 +-- web/package.json | 2 +- web/src/app/page.tsx | 4 +-- 7 files changed, 93 insertions(+), 78 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index aacfd6d..bfc6d13 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,9 +7,16 @@ Guidelines for AI agents working on this codebase. Vocalinux is a voice dictation system for Linux. It uses: - **Python 3.8+** for the main application - **GTK 3** (via PyGObject) for the desktop UI and system tray -- **Vosk** and **OpenAI Whisper** for speech recognition +- **whisper.cpp** (default), **OpenAI Whisper**, and **Vosk** for speech recognition - **Next.js/TypeScript** for the website (in `web/`) +### Key Dependencies +- `pywhispercpp` - Python bindings for whisper.cpp (default engine) +- `vosk` - Lightweight speech recognition +- `pyaudio` - Audio capture +- `PyGObject` - GTK integration +- `psutil` - Process utilities (required by pywhispercpp) + ## Build & Test Commands ### Python @@ -158,7 +165,7 @@ src/vocalinux/ ├── version.py # Version info ├── common_types.py # Shared types/enums/protocols ├── speech_recognition/ -│ ├── recognition_manager.py # VOSK/Whisper management +│ ├── recognition_manager.py # VOSK/Whisper/whisper.cpp management │ └── command_processor.py # Voice command processing ├── text_injection/ │ └── text_injector.py # X11/Wayland text injection @@ -168,9 +175,26 @@ src/vocalinux/ │ ├── config_manager.py # Configuration handling │ └── keyboard_backends/ # Keyboard input handling └── utils/ - └── resource_manager.py # Resource utilities + ├── resource_manager.py # Resource utilities + ├── whispercpp_model_info.py # whisper.cpp model metadata & hardware detection + └── vosk_model_info.py # VOSK model metadata ``` +## Release Process + +See `docs/RELEASE_PROCESS.md` for detailed release instructions. + +Quick summary: +1. Update version in `src/vocalinux/version.py` +2. Update version references in README.md, docs/INSTALL.md, docs/UPDATE.md +3. Update web/src/app/page.tsx and web/package.json +4. Run `make lint` to verify code quality +5. Create branch `release/vX.Y.Z-PHASE` +6. Commit with `chore(release): prepare vX.Y.Z-PHASE` +7. Push and create PR +8. After merge, create and push tag: `git tag -a vX.Y.Z-PHASE -m "Release X.Y.Z-PHASE"` +9. GitHub Actions will build and publish automatically + ## Commit Message Format Follow Conventional Commits: @@ -199,3 +223,11 @@ docs(readme): update installation instructions - `docs/` - Documentation updates - `refactor/` - Code refactoring - `test/` - Test additions/updates +- `release/` - Release preparation (e.g., `release/v0.6.2-beta`) + +## Important Rules + +- **Never push directly to `main`** - Always create a branch and PR +- **All changes require a PR** - Even small fixes and documentation updates +- **Wait for CI to pass** before merging PRs +- **Squash merge** PRs to keep history clean diff --git a/README.md b/README.md index ad0ada1..8cd149d 100644 --- a/README.md +++ b/README.md @@ -28,44 +28,32 @@ **A seamless free open-source private voice dictation system for Linux**, comparable to built-in solutions on macOS and Windows. -## 📚 What's New in v0.6.1-beta +## 📚 What's New in v0.6.2-beta -This patch release brings significant improvements to the installation experience and GPU support! - -### ✨ New Features - -- **Interactive Backend Selection** - When installing whisper.cpp, choose between GPU (Vulkan/CUDA) or CPU backend - - Intelligent hardware detection recommends the best option - - Shows helpful tips when GPU libraries are missing - - Respects your choice during installation - -- **Enhanced Welcome Message** - Completely redesigned end-of-installation experience - - Shows exactly what was installed (engine, backend, locations) - - Clear step-by-step testing instructions - - Voice command examples ("period", "comma", "new line", "delete that") - - All management commands in one place - -### 🔧 Improvements - -- **Simplified Install Commands** - No more `--tag` parameter needed - - Before: `curl .../main/install.sh | bash -s -- --tag=v0.6.1-beta` - - After: `curl .../v0.6.1-beta/install.sh | bash` - -- **Version Consistency** - Install script is now downloaded directly from the release tag - - Ensures perfect version matching between script and code - - No risk of main branch changes affecting releases - -- **Better GPU Support** - Fixed Vulkan development library detection - - Properly installs `libvulkan-dev`, `glslc`/`glslang-tools`, and other required packages - - Falls back gracefully when GPU libraries are missing - - Clear error messages with installation instructions +This patch release brings important bug fixes and installation improvements! ### 🐛 Bug Fixes -- **Fixed Bash Compatibility** - Resolved `((var++))` arithmetic issues with `set -e` -- **Fixed TTY Detection** - Interactive mode now works correctly with `--interactive` flag -- **Auto-install Git** - Installer now automatically installs git if not present -- **Fixed GPU Installation** - Properly executes pip commands for GPU backend installation +- **Fixed #221**: Add missing `psutil` dependency - Fresh installs now work correctly (pywhispercpp requires psutil) +- **Fixed #219**: Suppress `[BLANK_AUDIO]` tokens in whisper.cpp output - Cleaner transcription results +- **Fixed #204**: Resolve PyAudio `paInt16` attribute error on audio device reconnection +- **Fixed #205**: Ensure whisper module is properly installed with `--auto` flag + +### 🔧 Improvements + +- **Better Multi-Distro Installation** - Improved Vulkan shader package detection and installation for Ubuntu, Debian, Fedora, Arch, and more +- **CI Improvements** - Fixed nightly build tag cleanup and older release deletion + +--- + +## Previous Release: v0.6.2-beta + +**Installation experience improvements!** + +- **Interactive Backend Selection** - Choose between GPU (Vulkan/CUDA) or CPU backend +- **Enhanced Welcome Message** - Redesigned end-of-installation experience +- **Simplified Install Commands** - No more `--tag` parameter needed +- **Better GPU Support** - Fixed Vulkan development library detection --- @@ -143,7 +131,7 @@ Here are some screenshots showcasing Vocalinux in action: Our new interactive installer guides you through setup with intelligent hardware detection: ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh ``` **Choose your engine:** @@ -157,25 +145,25 @@ The installer will: - **Download the appropriate model** (~39MB for whisper.cpp tiny) - **Install in ~1-2 minutes** (vs 5-10 min with old Whisper) -> **Note**: Installs v0.6.1-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). +> **Note**: Installs v0.6.2-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). ### Installation Options **Default (whisper.cpp - recommended):** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh ``` Fastest installation (~1-2 min), universal GPU support via Vulkan. **Whisper (OpenAI) - if you prefer PyTorch:** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper ``` NVIDIA GPU only (~5-10 min, downloads PyTorch + CUDA). **VOSK only - for low-RAM systems:** ```bash -curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk +curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk ``` Lightweight option (~40MB), works on systems with 4GB RAM. diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 135c09a..1a972dd 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -7,10 +7,10 @@ This guide provides detailed instructions for installing Vocalinux on Linux syst ### One-liner Installation (Recommended) ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash ``` -> **Note**: Installs v0.6.1-beta with **whisper.cpp** (our new default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). +> **Note**: Installs v0.6.2-beta with **whisper.cpp** (our new default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases). That's it! The installer handles everything automatically: - ✅ Installs whisper.cpp (~1-2 minutes, no heavy dependencies!) @@ -495,7 +495,7 @@ Already have Vocalinux installed? See the [Update Guide](UPDATE.md) for instruct Quick update command: ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash ``` ## Getting Help diff --git a/docs/UPDATE.md b/docs/UPDATE.md index 06275c8..7d01291 100644 --- a/docs/UPDATE.md +++ b/docs/UPDATE.md @@ -2,38 +2,33 @@ This guide explains how to update Vocalinux to the latest version. -## What's New in v0.6.1-beta - -### ✨ New Features - -- **Interactive Backend Selection**: When installing whisper.cpp, you can now choose between GPU (Vulkan/CUDA) or CPU backend with intelligent hardware detection -- **Enhanced Welcome Message**: Completely redesigned end-of-installation message showing what was installed, testing instructions, and voice command examples - -### 🔧 Improvements - -- **Version Consistency**: Install commands now download install.sh directly from the release tag, ensuring perfect version matching -- **Simplified Install Commands**: No more `--tag` parameter needed - cleaner syntax like `curl .../v0.6.1-beta/install.sh | bash` -- **Better GPU Support**: Fixed Vulkan development library detection and installation +## What's New in v0.6.2-beta ### 🐛 Bug Fixes -- **Fixed TTY Check**: Interactive mode now works correctly with `--interactive` flag -- **Auto-install Git**: Installer now automatically installs git if not present -- **GPU Installation**: Fixed pip command execution for GPU backend installation -- **Bash Arithmetic**: Fixed issues with `((var++))` and `set -e` compatibility +- **Fixed #221**: Add missing `psutil` dependency - Fresh installs now work correctly (pywhispercpp requires psutil internally) +- **Fixed #219**: Suppress `[BLANK_AUDIO]` tokens in whisper.cpp output - Cleaner transcription results +- **Fixed #204**: Resolve PyAudio `paInt16` attribute error on audio device reconnection +- **Fixed #205**: Ensure whisper module is properly installed with `--auto` flag -### 📚 Documentation +### 🔧 Improvements -- Updated all install commands to use tag-based URLs -- Improved error messages with correct install instructions -- Better inline help in install script +- **Better Multi-Distro Installation** - Improved Vulkan shader package detection and installation for Ubuntu, Debian, Fedora, Arch, and more +- **CI Improvements** - Fixed nightly build tag cleanup and older release deletion -See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.1-beta). +See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.2-beta). --- ## Previous Versions +### v0.6.2-beta + +- **Interactive Backend Selection**: Choose between GPU (Vulkan/CUDA) or CPU backend +- **Enhanced Welcome Message**: Redesigned end-of-installation experience +- **Simplified Install Commands**: No more `--tag` parameter needed +- **Better GPU Support**: Fixed Vulkan development library detection + ### v0.6.0-beta - **whisper.cpp as default engine**: Fast, works with any GPU via Vulkan @@ -50,7 +45,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/ Simply re-run the installation command with the new version tag: ```bash -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash ``` The installer will: @@ -65,7 +60,7 @@ The installer will: ```bash cd vocalinux git fetch origin -git checkout v0.6.1-beta +git checkout v0.6.2-beta ./install.sh ``` @@ -91,7 +86,7 @@ cd vocalinux ./install.sh --tag=v0.4.1-alpha # Or via curl (for any installation) -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash ``` **What gets preserved:** @@ -109,7 +104,7 @@ cd vocalinux # 2. Pull the latest changes git fetch origin -git checkout v0.6.1-beta +git checkout v0.6.2-beta # 3. Activate your virtual environment source venv/bin/activate @@ -138,7 +133,7 @@ git describe --tags --- -## What's New in v0.6.1-beta +## What's New in v0.6.2-beta ### 🚀 Major Feature: whisper.cpp is Now Default! @@ -157,7 +152,7 @@ This release brings **whisper.cpp** as the new default speech recognition engine - **Enhanced logging**: Comprehensive debug info for whisper.cpp troubleshooting - **Better documentation**: Updated all docs to reflect whisper.cpp as the new default -See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.1-beta). +See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.2-beta). --- @@ -192,7 +187,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/ ./uninstall.sh --keep-config --keep-data # Reinstall -curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash ``` ### Old Version Still Running diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py index 39c3362..63e54a4 100644 --- a/src/vocalinux/version.py +++ b/src/vocalinux/version.py @@ -2,8 +2,8 @@ Version information for Vocalinux. """ -__version__ = "0.6.1-beta" -__version_info__ = (0, 6, 1, "beta") +__version__ = "0.6.2-beta" +__version_info__ = (0, 6, 2, "beta") __author__ = "Jatin K Malik" __email__ = "jatinkrmalik@gmail.com" __license__ = "GPL-3.0" diff --git a/web/package.json b/web/package.json index 9554b67..f6b2cd1 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "vocalinux-website", - "version": "0.6.1", + "version": "0.6.2", "private": true, "type": "module", "scripts": { diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx index d5905f8..4bd1bda 100644 --- a/web/src/app/page.tsx +++ b/web/src/app/page.tsx @@ -65,7 +65,7 @@ const homeJsonLd = [ }, description: "Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.", - "softwareVersion": "0.6.1-beta", + "softwareVersion": "0.6.2-beta", author: { "@type": "Person", name: "Jatin K Malik", @@ -290,7 +290,7 @@ export default function HomePage() { /> Vocalinux - v0.6.1 Beta + v0.6.2 Beta