Skip to content

fix: Windows playback + release version naming - #5

Merged
Nxssie merged 5 commits into
mainfrom
fix/windows-macos-release-naming
Aug 13, 2026
Merged

Nxssie merged 5 commits into
mainfrom
fix/windows-macos-release-naming

Conversation

@ghost

@ghost ghost commented Aug 13, 2026

Copy link
Copy Markdown

Summary

  • findYtDlp() spawned which, 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 via ProcessBuilder, which works on both Windows and Unix.
  • FFmpeg/JavaCV native library classifier was hardcoded to linux-x86_64, so Windows (and macOS) builds shipped without native libs, crashing playback with UnsatisfiedLinkError. The classifier is now selected from the build host's OS/arch.
  • packageVersion was stuck at 1.0.0, so Windows/macOS/Linux installers named themselves as a 1.0 release before it exists. Bumped to 0.4.0 to match the upcoming tag.

Test plan

  • CI distro matrix builds green on ubuntu/windows/macos runners
  • Windows MSI installs and plays a track (no which/native-lib crash)
  • Artifact filenames read Wren-0.4.0.msi / Wren-0.4.0.dmg / wren_0.4.0_amd64.deb

nxssie-terminal 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.
@Nxssie
Nxssie merged commit d2c224d into main Aug 13, 2026
5 checks passed
@Nxssie
Nxssie deleted the fix/windows-macos-release-naming branch September 11, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant