Desktop: Fixes #15030: Upgrade electron-builder - #15043
Conversation
See laurent22#15034 Co-authored-by: JGCarroll <JGCarroll@users.noreply.github.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe installer resolves releases before dependency checks and gates libfuse2 verification to versions below 3.7.10. Electron Builder signing, Linux metadata, AppImage tooling, dependency versions, and Yarn resolutions are updated. ChangesInstaller and release-dependent checks
Electron Builder packaging
Yarn resolutions
Sequence Diagram(s)sequenceDiagram
participant Installer
participant GitHub
participant System
Installer->>GitHub: Request latest or prerelease release
GitHub-->>Installer: Return RELEASE_VERSION
alt RELEASE_VERSION < 3.7.10
Installer->>System: Check ldconfig and libfuse.so.2
else RELEASE_VERSION >= 3.7.10
Installer->>Installer: Skip libfuse dependency check
end
Installer->>GitHub: Download Joplin release
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Joplin_install_and_update.sh`:
- Around line 182-197: The libfuse2 gating uses compareVersions with
RELEASE_VERSION which can contain prerelease suffixes (e.g., "3.6.9-pre1")
causing numeric compare failures; sanitize the version before the check by
stripping any prerelease suffix (remove everything after the first '-' from
RELEASE_VERSION) and use that sanitized value in the compareVersions call used
in the libfuse2 block (referencing compareVersions and RELEASE_VERSION), or
alternatively enhance compareVersions to ignore non-numeric patch suffixes;
ensure the sanitized variable is used in the existing libfuse2 check so
prereleases are treated by their core numeric version.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: f5a55608-1d2b-402b-a8b2-cbf0fcd22506
⛔ Files ignored due to path filters (3)
.yarn/patches/app-builder-lib-npm-24.13.3-86a66c0bf3.patchis excluded by!**/.yarn/**.yarn/patches/app-builder-lib-npm-26.8.1-e88d27929a.patchis excluded by!**/.yarn/**yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (3)
Joplin_install_and_update.shpackage.jsonpackages/app-desktop/package.json
Note: This change addresses issues found by Claude Code during a review.
Created electron-userland/electron-builder-binaries#147 as this is a problem with the bundled Since Joplin releases are built in 22.04 runners, this isn't really a problem from a packaging POV as the AppImage would still be forwards compatible as it currently is. However it does potentially cause friction with contributions from users. This would mean the At this point I think it's worth verifying whether the stable 3.5 series AppImage does actually run in Fedora 44 - explicitly confirming Fedora has dropped If Fedora 44 has removed Edit: I have tested Fedora 44 Workstation in a VM, the urgency of this fix has gone down since installing |
electron-builderelectron-builder
|
https://github.com/electron-userland/electron-builder/releases/tag/electron-builder%4026.9.0 I'd tried build this branch, changing the Unfortunately, From the release notes for 26.9.0:
This looks relevant to our issue above (looking in the Electron-Builder commits, there were some changes to
This is worth investigating (does it mean we can drop the |
|
I've bumped the Note: As of April 30th, |
| "artifactName": "Joplin-${version}.${ext}" | ||
| }, | ||
| "toolsets": { | ||
| "appimage": "1.0.2" |
There was a problem hiding this comment.
This needs increasing to 1.0.3 to fix the Ubuntu 26.04 issues
This pull request now targets the v3.7 release. The first prerelease that doesn't require libfuse2 will be at least v3.7.0.
|
@personalizedrefrigerator the pull request title does not match the required format. Please prefix the title with the area you are targeting, then add the issue you are addressing. For example:
See the pull request template for the list of valid prefixes and the full specification. This PR has been left open — please update the title when you have a moment. |
electron-builderelectron-builder
|
@personalizedrefrigerator, what is the status of this PR? Do we still need this? |
This pull request removes the need for |
|
I'm closing the PR for now but feel free to reopen when it's ready to merge |
A stable |
|
I'm marking this as ready for review: I've switched this pull request to |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 149: Update the indentation of the added app-builder-lib dependency entry
in package.json to use tabs instead of spaces, matching the repository’s JSON
formatting convention without changing the dependency declaration.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: d4702b31-a721-4d2b-8934-2b617444ead0
⛔ Files ignored due to path filters (1)
.yarn/patches/app-builder-lib-npm-26.15.6-010811df92.patchis excluded by!**/.yarn/**
📒 Files selected for processing (1)
package.json
Problem
Joplin currently uses a version of
electron-builderthat:libfuse2library. This makes the installation process more difficult (users need to installlibfuse2).Solution
Note
This pull request is a modified version of @JGCarroll's #15032.
Upgrade
electron-builderand instruct Electron Builder to use a modern AppImage runtime (see #15032).Resolves #15030.
Testing
MacOS 26.4 (ARM64)
After running the steps for building an ARM64 MacOS package and the steps for also creating a .pkg file, I:
yarn distcan build a.dmgand.pkgfile..dmgfilesize hasn't significantly increased (current size: 202 MB)..dmgfile.Windows 11 (x86_64)
yarn distfrompackages/app-desktop).JoplinPortable.exestarts successfully and displays the welcome notes.Joplin Setup 3.7.9.exebuilt in step 1.Note
With this change, the built
Joplin Setup 3.7.9.exeis 537 MB. Prior to this change, a builtJoplin Setup 3.7.9.exeon the same VM is 525 MB.Fedora 44, GNOME (x86_64)
yarn distfrompackages/app-desktop)../dist/Joplin-3.7.9.AppImage).~/.joplin/Joplin.AppImage..desktopentry.Ubuntu 26.04, GNOME (x86_64)
deb(yarn distfrompackages/app-desktop).deb.deb. Verify that primary and secondary windows both have the correct icons.Install script
Note: Install script testing was done with an earlier version of this pull request.
bash Joplin_install_and_update.shwithoutlibfuse2installed fails with "Error: Can't get libfuse2 on system, please install libfuse2".libfuse2)libfuse2t64, reverting the install script patch, and removing the previously-installed AppImage, it's possible to install Joplin 3.5.13. Joplin 3.5.13 can be launched from the application menu.