Skip to content

Release blocker: Linux AppImage fails under electron-builder 26.15 (executableName validation)#737

Merged
h4yfans merged 1 commit into
mainfrom
fix/linux-executable-name
Jul 10, 2026
Merged

Release blocker: Linux AppImage fails under electron-builder 26.15 (executableName validation)#737
h4yfans merged 1 commit into
mainfrom
fix/linux-executable-name

Conversation

@h4yfans

@h4yfans h4yfans commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Why

Release run 29096552456 (v2026.710.3): Build Linux x64 fails with

⨯ failed to build AppImage
error=executableName contains characters that cannot be safely used in file paths: @memrydesktop.

electron-builder ≥26.13 (we bumped to 26.15.6 in #736) validates executableName and rejects the fallback derived from the package.json name @memry/desktop. The old version accepted it silently. Windows already sets win.executableName: Memrynote; Linux had no override. Windows x64 and macOS jobs in the same run are green — this is the only blocker.

What

One line: linux.executableName: memrynote.

  • userData is unaffected — it derives from app.name (package.json name), never from the binary name. The known landmine (renaming app identity relocates user data) does not apply here.
  • The binary inside the AppImage/.deb changes from the sanitized @memrydesktop to memrynote; the .desktop Exec entry is regenerated by electron-builder, so launchers keep working. Only hand-made shortcuts to the old binary path inside /opt would need re-pointing — unavoidable, since the old name is now rejected outright.

Proof

  • Local cross-build of the Linux AppImage with electron-builder 26.15.6 and this override (results being attached in a comment).
  • Windows/mac targets untouched.

After merge: re-dispatch publish-release.yml — it checks out main, so the fix must land there first.

…n-builder 26.15

electron-builder >=26.13 validates executableName and rejects the
package.json-derived fallback @memrydesktop ('contains characters that
cannot be safely used in file paths'), failing the Linux release job.
Windows already overrides (Memrynote); give Linux an explicit safe name.
userData paths are untouched — they derive from app.name, not the
binary name; the .desktop Exec entry is regenerated by the package.
@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
memry-docs Ready Ready Preview, Comment Jul 10, 2026 1:50pm
memrynote-landing Ready Ready Preview, Comment Jul 10, 2026 1:50pm

@h4yfans

h4yfans commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

Local cross-build proof (macOS host, electron-builder 26.15.6, same config + the executableName override):

• electron-builder  version=26.15.6
• packaging       platform=linux arch=arm64 electron=39.8.6 appOutDir=dist/linux-arm64-unpacked
• building        target=AppImage arch=arm64 file=dist/MemryNote-1.0.0-arm64.AppImage
→ dist/MemryNote-1.0.0-arm64.AppImage (164 MB) produced, exit 0

Same validation path that failed the release run (executableName contains characters that cannot be safely used in file paths: @memrydesktop) now passes. arm64 vs CI's x64 is irrelevant to the validation — it's a string check on the configured name. Version/signing differences are local-env only.

@h4yfans h4yfans marked this pull request as ready for review July 10, 2026 13:51
@h4yfans h4yfans merged commit 8c814f6 into main Jul 10, 2026
16 checks passed
@h4yfans h4yfans deleted the fix/linux-executable-name branch July 10, 2026 13:51
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant