Five hand-maintained version literals (pyproject, Cargo.toml, tauri.conf.json,
package.json, version.py) drifting is what shipped a 0.3.6 build calling itself
0.3.5 (package.json lagged; the frozen backend's literal lagged). Collapse to
one canonical source.
- frontend/package.json is canonical: vite already injects __APP_VERSION__ from
it (first-run setup footer + bug reports).
- tauri.conf.json now reads its bundle version from it ("version":
"../package.json", a supported Tauri v2 feature) — the MSI/dmg/updater version
can no longer drift from the UI. Removes the most error-prone literal.
- Cargo.toml + pyproject.toml + version.py's _FALLBACK_VERSION remain as
toolchain-required CI-guarded mirrors, bumped in lockstep from the canonical.
- release.yml: the preview-stamp and version-bump jobs now read/write
package.json (the canonical) and no longer touch the derived tauri.conf.json.
- tests/test_app_version.py: new test_tauri_version_derives_from_package_json
guards the path; the lockstep test now checks the mirrors against the
canonical package.json.
- CLAUDE.md versioning rule updated to document the single-source model.
6 version tests pass.
Co-authored-by: mergetest <test@local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
100 lines
2.8 KiB
JSON
100 lines
2.8 KiB
JSON
{
|
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
|
"productName": "OmniVoice Studio",
|
|
"version": "../package.json",
|
|
"identifier": "com.debpalash.omnivoice-studio",
|
|
"build": {
|
|
"frontendDist": "../dist",
|
|
"devUrl": "http://localhost:3901",
|
|
"beforeDevCommand": "bun run dev",
|
|
"beforeBuildCommand": "bun run build",
|
|
"beforeBundleCommand": "bash ../scripts/inject-apprun.sh"
|
|
},
|
|
"app": {
|
|
"macOSPrivateApi": true,
|
|
"withGlobalTauri": true,
|
|
"windows": [
|
|
{
|
|
"title": "OmniVoice Studio",
|
|
"width": 1920,
|
|
"height": 1080,
|
|
"minWidth": 900,
|
|
"minHeight": 600,
|
|
"resizable": true,
|
|
"fullscreen": false,
|
|
"titleBarStyle": "Overlay",
|
|
"hiddenTitle": true,
|
|
"maximized": true
|
|
},
|
|
{
|
|
"label": "widget",
|
|
"title": "Capture",
|
|
"width": 300,
|
|
"height": 64,
|
|
"resizable": false,
|
|
"fullscreen": false,
|
|
"transparent": true,
|
|
"decorations": false,
|
|
"alwaysOnTop": true,
|
|
"visible": false,
|
|
"skipTaskbar": true,
|
|
"center": true,
|
|
"create": false
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": "default-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self' ipc://localhost http://localhost:* ws://localhost:* http://127.0.0.1:* ws://127.0.0.1:* blob: data:; media-src 'self' blob: data: http://localhost:* http://127.0.0.1:* asset: https://asset.localhost; img-src 'self' blob: data: asset: https://asset.localhost http://localhost:* http://127.0.0.1:* https://fonts.gstatic.com; font-src 'self' data: https://fonts.googleapis.com https://fonts.gstatic.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;",
|
|
"assetProtocol": {
|
|
"enable": true,
|
|
"scope": [
|
|
"**"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": [
|
|
"dmg",
|
|
"app",
|
|
"msi",
|
|
"deb",
|
|
"appimage"
|
|
],
|
|
"createUpdaterArtifacts": true,
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.icns",
|
|
"icons/icon.ico"
|
|
],
|
|
"resources": [
|
|
"../../pyproject.toml",
|
|
"../../uv.lock",
|
|
"../../README.md",
|
|
"../../omnivoice",
|
|
"../../backend"
|
|
],
|
|
"externalBin": [
|
|
"binaries/uv",
|
|
"binaries/ffmpeg",
|
|
"binaries/ffprobe"
|
|
],
|
|
"macOS": {
|
|
"minimumSystemVersion": "12.0",
|
|
"signingIdentity": "-"
|
|
}
|
|
},
|
|
"plugins": {
|
|
"updater": {
|
|
"active": true,
|
|
"endpoints": [
|
|
"https://github.com/debpalash/OmniVoice-Studio/releases/latest/download/latest.json"
|
|
],
|
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDhFMDQ1QkZCQ0I4RDlCQkYKUldTL200M0wrMXNFamdPSGF3VkUzVjBRY1FFOE0yTkxSMVZKNUowL2wyZEw2OG1TWXNLMDlSeTQK",
|
|
"dialog": false
|
|
}
|
|
}
|
|
}
|