fix: Windows playback + release version naming - #5
Merged
Merged
Conversation
added 5 commits
August 13, 2026 17:25
findYtDlp() spawned `which`, which doesn't exist on Windows, crashing resolution and permanently caching a "not found" result for the rest of the session. Replaced with filesystem checks and direct PATH resolution via ProcessBuilder, which works on both Windows and Unix. The FFmpeg/JavaCV native library classifier was hardcoded to linux-x86_64, so Windows (and macOS) builds shipped without native libs to load, crashing playback with UnsatisfiedLinkError. Select the classifier from the build host's OS/arch instead.
packageVersion was stuck at 1.0.0, so Windows/macOS/Linux installers built and named themselves as a 1.0 release before it exists. Align it with the upcoming v0.4.0 tag.
Compose Desktop's Dmg packaging validates that packageVersion's MAJOR component is > 0, and this check runs eagerly for the whole nativeDistributions block regardless of which package task is invoked — so even :desktop:packageDeb on Linux failed at configuration time once packageVersion became 0.4.0. Give macOS its own jpackage-internal dmgPackageVersion (never shown to users) to satisfy that rule, and have CI rename the resulting .dmg to the real appVersion so the public artifact still reads Wren-0.4.0.dmg.
jpackage writes its actual error to a log file rather than stdout, so CI failures showed only Gradle's generic "External tool execution failed" wrapper with no way to see the real cause. Cat the logs on failure so future breakages are diagnosable from the Actions log.
jpackage failed even earlier than expected: the app-image bundler (createDistributable, which runs before the Dmg bundler wraps it) enforces the same MAJOR > 0 rule against nativeDistributions.macOS's plain packageVersion, independent of dmgPackageVersion. Override both.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
findYtDlp()spawnedwhich, which doesn't exist on Windows — crashed resolution and permanently cached a "not found" result for the rest of the session. Replaced with filesystem checks + PATH resolution viaProcessBuilder, which works on both Windows and Unix.linux-x86_64, so Windows (and macOS) builds shipped without native libs, crashing playback withUnsatisfiedLinkError. The classifier is now selected from the build host's OS/arch.packageVersionwas stuck at1.0.0, so Windows/macOS/Linux installers named themselves as a 1.0 release before it exists. Bumped to0.4.0to match the upcoming tag.Test plan
distromatrix builds green on ubuntu/windows/macos runnerswhich/native-lib crash)Wren-0.4.0.msi/Wren-0.4.0.dmg/wren_0.4.0_amd64.deb