Compare commits

..

10 Commits

Author SHA1 Message Date
5258671a79 add pre-commit config 2026-03-21 13:33:59 +00:00
2185748435 upd shell 2026-03-11 20:33:44 +00:00
d82afc1973 add pyinstaller dep check
remove hardcoded poetry path.

add verify build outputs step.

add build and release summaries.
2026-03-11 20:25:00 +00:00
6be32dcd32 update lockfile 2026-03-11 04:09:41 +00:00
abb55d5090 revert the change. 2026-03-10 23:01:25 +00:00
3271a52f15 use --with build --without dev 2026-03-10 22:17:54 +00:00
eb2ce5360f upd examples 2026-03-10 19:46:26 +00:00
45dbcae804 upd examples 2026-03-10 19:45:26 +00:00
4fab6d9ad9 add examples 2026-03-10 19:38:08 +00:00
fee3fa199b add 1.10.0 to CHANGELOG 2026-03-10 04:17:36 +00:00
5 changed files with 173 additions and 6 deletions

View File

@ -77,20 +77,79 @@ jobs:
shell: bash
- name: Install dependencies
run: poetry install --with build
shell: bash
run: |
# Install project dependencies
poetry install --with build
# Verify PyInstaller is available
echo "Verifying PyInstaller installation..."
poetry show pyinstaller
- name: Get Poetry executable path
shell: bash
run: |
poetryPath=$(which poetry)
echo "Poetry path: $poetryPath"
echo "POETRY_BIN=$poetryPath" >> $GITHUB_ENV
- name: Build artifacts with dynamic taskfile
run: task --taskfile Taskfile.dynamic.yml build-all
shell: bash
env:
POETRY_BIN: /c/Users/runneradmin/.local/bin/poetry
POETRY_BIN: ${{ env.POETRY_BIN }}
- name: Create release archives
run: task --taskfile Taskfile.dynamic.yml compress-all
shell: bash
env:
POETRY_BIN: /c/Users/runneradmin/.local/bin/poetry
POETRY_BIN: ${{ env.POETRY_BIN }}
- name: Verify build outputs
shell: pwsh
run: |
Write-Host "Verifying build outputs..."
$expectedFiles = @(
"dist/sunvalley-basic.zip",
"dist/sunvalley-banana.zip",
"dist/sunvalley-potato.zip",
"dist/forest-dark-basic.zip",
"dist/forest-dark-banana.zip",
"dist/forest-dark-potato.zip",
"dist/forest-light-basic.zip",
"dist/forest-light-banana.zip",
"dist/forest-light-potato.zip",
"dist/azure-dark-basic.zip",
"dist/azure-dark-banana.zip",
"dist/azure-dark-potato.zip",
"dist/azure-light-basic.zip",
"dist/azure-light-banana.zip",
"dist/azure-light-potato.zip"
)
$missingFiles = @()
$foundFiles = @()
foreach ($file in $expectedFiles) {
if (Test-Path $file) {
$size = [math]::Round((Get-Item $file).Length / 1MB, 2)
$foundFiles += "$file ($size MB)"
} else {
$missingFiles += $file
}
}
Write-Host "Found files:"
$foundFiles | ForEach-Object { Write-Host " $_" }
if ($missingFiles.Count -gt 0) {
Write-Host -ForegroundColor Red "Missing files:"
$missingFiles | ForEach-Object { Write-Host " $_" }
exit 1
}
Write-Host -ForegroundColor Green "All expected files found!"
# Sunvalley theme variants
- name: Upload build artifacts - Sunvalley Basic
@ -187,6 +246,31 @@ jobs:
name: azure-light-potato
path: dist/azure-light-potato.zip
- name: Build Summary
shell: pwsh
run: |
Write-Host -ForegroundColor Green "Build completed successfully!"
Write-Host ""
Write-Host "Built artifacts (15 theme variants):"
Write-Host " Sunvalley Theme:"
Write-Host " - voicemeeter-compact-sunvalley-basic.zip"
Write-Host " - voicemeeter-compact-sunvalley-banana.zip"
Write-Host " - voicemeeter-compact-sunvalley-potato.zip"
Write-Host " Forest Theme:"
Write-Host " - voicemeeter-compact-forest-dark-basic.zip"
Write-Host " - voicemeeter-compact-forest-dark-banana.zip"
Write-Host " - voicemeeter-compact-forest-dark-potato.zip"
Write-Host " - voicemeeter-compact-forest-light-basic.zip"
Write-Host " - voicemeeter-compact-forest-light-banana.zip"
Write-Host " - voicemeeter-compact-forest-light-potato.zip"
Write-Host " Azure Theme:"
Write-Host " - voicemeeter-compact-azure-dark-basic.zip"
Write-Host " - voicemeeter-compact-azure-dark-banana.zip"
Write-Host " - voicemeeter-compact-azure-dark-potato.zip"
Write-Host " - voicemeeter-compact-azure-light-basic.zip"
Write-Host " - voicemeeter-compact-azure-light-banana.zip"
Write-Host " - voicemeeter-compact-azure-light-potato.zip"
release:
if: startsWith(github.ref, 'refs/tags/v')
needs: build
@ -204,7 +288,48 @@ jobs:
- name: Create Release
run: |
TAG_NAME=${GITHUB_REF#refs/tags/}
gh release create $TAG_NAME --title "Release $TAG_NAME" --generate-notes
gh release create $TAG_NAME \
--title "Voicemeeter Compact $TAG_NAME" \
--notes "## Voicemeeter Compact Release $TAG_NAME
### Theme Variants
Choose your preferred theme and Voicemeeter version:
**Sunvalley Theme**
- **sunvalley-basic.zip** - For Voicemeeter Basic
- **sunvalley-banana.zip** - For Voicemeeter Banana
- **sunvalley-potato.zip** - For Voicemeeter Potato
**Forest Theme**
- **forest-dark-basic.zip** - Dark theme for Voicemeeter Basic
- **forest-dark-banana.zip** - Dark theme for Voicemeeter Banana
- **forest-dark-potato.zip** - Dark theme for Voicemeeter Potato
- **forest-light-basic.zip** - Light theme for Voicemeeter Basic
- **forest-light-banana.zip** - Light theme for Voicemeeter Banana
- **forest-light-potato.zip** - Light theme for Voicemeeter Potato
**Azure Theme**
- **azure-dark-basic.zip** - Dark theme for Voicemeeter Basic
- **azure-dark-banana.zip** - Dark theme for Voicemeeter Banana
- **azure-dark-potato.zip** - Dark theme for Voicemeeter Potato
- **azure-light-basic.zip** - Light theme for Voicemeeter Basic
- **azure-light-banana.zip** - Light theme for Voicemeeter Banana
- **azure-light-potato.zip** - Light theme for Voicemeeter Potato
### Requirements
- Windows 10/11
- Voicemeeter (Basic/Banana/Potato) installed
- Python 3.10+ (if running from source)
### Installation
1. Download the zip file matching your Voicemeeter version and preferred theme
2. Extract and run the executable - no installation required
3. The application will automatically detect your Voicemeeter installation
### Notes
- Built with PyInstaller for standalone execution
- Each variant is scaled for its specific Voicemeeter version
- Themes provide different visual styles while maintaining full functionality"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

13
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,13 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/python-poetry/poetry
rev: '2.3.2'
hooks:
- id: poetry-check
- id: poetry-lock

View File

@ -9,6 +9,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [ ]
## [1.10.0] - 2026-03-26
### Added
- Automated builds for Releases. This is much preferred over manual releases because users can be sure the files are built directly from the source code.
- Azure theme added to Releases.
- vban.toml files can now use key `host` intead of `ip`.
- `ip` is still usable for backwards compatibility.
### Changed
- Attempting a VBAN connection now uses a PING/PONG handshake to verify connection, this makes connections more reliable.
- Navigation frame is disabled by default. You can easily enable it from the menu or with an app.toml config.
### Fixed
- Comp, Gate sliders now receive feedback when changes are made on the Voicemeeter GUI.
- Bus CONFIG mode button rotates through the correct modes for Basic Kind.
- Bus CONFIG mono now rotates through *off, on, stereo reverse*.
- Bus CONFIG mode/mono buttons are now a fixed width.
## [1.9.8] - 2025-01-22
### Changed

View File

@ -1,7 +1,15 @@
version: '3'
# Dynamic build system - no spec files needed!
# Usage: task build THEMES="azure forest" or task build-all
# Examples:
# - task -t Taskfile.dynamic.yml build THEMES="azure forest"
# - task -t Taskfile.dynamic.yml build-all
# THEMES can be specified as a space-separated list or "all" to build everything.
#
# Compression tasks are also dynamic and can be used like:
# Usage examples:
# - task -t Taskfile.dynamic.yml compress THEME=azure
# - task -t Taskfile.dynamic.yml compress-all
vars:
THEMES: '{{.THEMES | default "all"}}'

2
poetry.lock generated
View File

@ -223,7 +223,7 @@ files = [
[[package]]
name = "vban-cmd"
version = "2.10.2"
version = "2.10.3"
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
optional = false
python-versions = ">=3.10"