* feat(build): add locked reproducible wheel gate Build independently in clean source trees and virtualenvs, compare wheel bytes, and stage only verified canonical distributions. Safely clean recognized prior outputs on repeat runs. Part of #701 * ci(release): verify wheel reproducibility before publishing Run the shared gate in PR and tag workflows, preserve failure diagnostics, and keep verification artifacts out of release checksums. Make Snap Store publication wait for the gate and reuse the canonical distributions for PyPI. Part of #701 * docs(release): document reproducible wheel validation Describe the locked toolchain, canonical publication boundary, same-platform scope, diagnostic outputs, and safe automatic cleanup. * chore(scripts): update executable permissions * fix(build): isolate release tooling and preserve cleanup retries Exclude host site-packages from build-only virtualenvs so unlocked setuptools plugins cannot affect verified distributions. Delete staged artifacts before canonical ownership evidence to recover safely from interrupted cleanup. Add regression tests and document the build-only environment exception. * fix(release): make reproducible builds retryable and refresh tools Regenerate release build exports from uv.lock. Hold a checkout lock through cleanup and staging, and atomically rename complete archives into dist. Cover interrupted staging, competing processes, and lock release with regression tests. --------- Co-authored-by: Kanishk Pachauri <itskanishkp.py@gmail.com> Co-authored-by: sesav <1636488+sesav@users.noreply.github.com>
Documentation
User and maintainer documentation for Vocalinux.
| Document | Audience | Description |
|---|---|---|
| INSTALL.md | Users | Recommended install, AppImage, AUR, Flatpak, Snap, CLI |
| INSTALL_MANUAL.md | Users | Manual install, system packages, PyPI/pipx |
| TROUBLESHOOTING.md | Users | Common install and runtime failures |
| USER_GUIDE.md | Users | Dictation, engines, models, shortcuts, tips |
| UPDATE.md | Users | How to upgrade; release notes by version |
| DISTRO_COMPATIBILITY.md | Users | Distro matrix, session caveats |
| HTTP_REMOTE.md | Power users | Remote HTTP transcription |
| FLATPAK_REMOTE.md | Users / maintainers | Self-hosted Flatpak remote and publishing |
| GATEWAY_EMBED.md | Users | Optional local VocaGateway integration |
| CUSTOM_DICTIONARY_DESIGN.md | Contributors | Custom terms and correction design |
| ARCHITECTURE.md | Contributors | Application modules, data flow, and threads |
| Performance benchmarks | Contributors | Before and after charts for the performance pass |
| AUR.md | Arch users / maintainers | AUR packages and publish secrets |
| RELEASE_PROCESS.md | Maintainers | Version bump, checklist, tagging |
Project root:
| Document | Description |
|---|---|
| README.md | Project overview and quick start |
| CHANGELOG.md | Release history pointers |
| SUPPORT.md | Where to get help |
| CONTRIBUTING.md | Development setup and pull requests |
| SECURITY.md | Vulnerability reporting and supported versions |
| CODE_OF_CONDUCT.md | Community standards |
Website product and design notes live under web/ (PRODUCT.md, DESIGN.md, README.md). Flatpak packaging: packaging/flatpak/README.md.
Website: vocalinux.com