Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@personalizedrefrigerator
Copy link
Collaborator

@personalizedrefrigerator personalizedrefrigerator commented Aug 14, 2025

Summary

This pull request upgrades to Electron v37.3.0.

Breaking Electron changes

A list of related breaking changes can be found on the Electron "breaking changes" page for Electron v36 and v37. The most likely to affect Joplin are:

Testing

Automated testing: Tests in packages/app-desktop/integration-tests are run in CI (on Windows, MacOS, and Linux), but run with a development version of Joplin.

Manual testing

Plan: The following should be tested on each platform:

  • Startup: The application starts in release mode
  • Screen reader support: Verify that it's possible for the screen reader to interact with the note editor
  • External editing
  • Notifications
  • Attaching files
  • Printing

The following should be tested on at least one platform:

  • Secondary windows: Check that changes from one window are reflected in the others.
  • Folder editor: Verify that it's possible to add an emoji to a folder.
  • Tag editor: It's possible to associate tags with a note using the tag dropdown.
  • Drawing tool: It's possible to insert and edit drawings.

  • MacOS 15.6:
    • Create a new task, set a notification for a few minutes in the future. Verify that the notification triggers.
      • Initially, the notification wasn't triggering for me — I seem to have previously disallowed notification permissions for Joplin (in dev mode, the "allow notifications?" prompt was shown successfully). After enabling notifications in system settings, Joplin notifications were shown successfully.
    • Open a note in a new window (Markdown editor). Verify that editing the note updates the main window.
    • Start the external editor for a note. Verify that changing the note title from the external editor updates the note.
    • Enable Markdown editor spellchecking in settings. Verify that an intentionally misspelled word is marked as misspelled.
    • Verify that it's possible to add a tag from the secondary window.
    • Verify that it's possible to attach a drawing from the secondary window.
    • Attach a PDF file using the "attach" button. Verify that it renders and can be printed to PDF from the note viewer.
    • Convert a note to PDF and open it as a preview through file > print.
    • Create a new subnotebook using the right-click menu.
    • Enable VoiceOver. Verify that VoiceOver reads the content of the line containing the cursor within the Markdown editor.
  • Linux (Fedora 42/GNOME + AppImage)
    • (⚠️) Create a new task, set a notification for a few minutes in the future. Check whether the notification triggers.
    • Open a note in a new window (Markdown editor). Verify that editing the note updates the main window.
    • Attach a PDF file using the "attach" button. Verify that it renders and can be printed to PDF from the note viewer.
    • Drag and drop an file from file explorer into the Rich Text editor in a new note.
    • Create a new subnotebook using the right-click menu.
    • Open a note in an external editor. Make a change and save. Verify that the note updates based on the external change.
    • Verify that it's possible to add an emoji as a folder icon through right-click > edit.
    • Verify that clicking a resource link opens it in an external application.
    • Enable the Orca screen reader. Verify that Orca can read the note editor's content.
  • Windows 11
    • Create a new task, set a notification for a few minutes in the future. Verify that the notification triggers.
      • (⚠️) No notification is shown. However,
        • From a NodeJS v22 REPL on the same system, require('node-notifier').notify({ title: 'test' }) also seems to do nothing.
        • Notifications also don't seem to trigger for the Joplin 3.4.5 pre-release.
        • If I run new Notification('test') from the console (which uses Electron's notification API), then the notification is shown on Windows.
        • This doesn't seem to be a regression from this pull request. Instead, it seems to be an issue in Joplin 3.4.x (or perhaps in my Windows 11 setup?). See Windows 11: Notifications not shown #12991.
    • Open a note in a new window (Markdown editor). Verify that editing the note updates the main window.
    • Verify that it's possible to add a tag from the secondary window.
    • Convert a note to PDF through file > print.
    • Attach a PDF file using the "attach" button. Verify that it renders and can be printed to PDF from the note viewer.
    • Enable NVDA. Place the cursor in the Markdown editor. Move the cursor up until it reaches the top of the note. Verify that NVDA reads each line.

@laurent22
Copy link
Owner

Thanks for implementing this. As we are close to the release date I'd think we should move this to 3.5, or can you think of any reason to make it part of 3.4?

@laurent22 laurent22 added the v3.5 label Aug 18, 2025
@laurent22
Copy link
Owner

Putting the 3.5 label for now

@laurent22 laurent22 added v3.4 and removed v3.5 labels Aug 18, 2025
Additionally, the following testing was done on MacOS 15.6:

- [x] Create a new task, set a notification for a few minutes in the future. Verify that the notification triggers.
	- Initially, the notification wasn't triggering for me — I seem to have previously disallowed notification permissions for Joplin (in dev mode, the "allow" prompt was shown successfully). After enabling notifications in system settings, Joplin notifications were shown successfully.
- [x] Open a note in a new window (Markdown editor). Verify that editing the note updates the main window.
- [x] Verify that it's possible to add a tag from the secondary window.
- [x] Verify that it's possible to attach a drawing from the secondary window.
- [x] Attach a PDF file using the "attach" button. Verify that it renders and can be printed to PDF from the note viewer.
- [x] Convert a note to PDF and open it as a preview through file > print.
- [x] Create a new subnotebook using the right-click menu.
- [x] Enable VoiceOver. Verify that VoiceOver reads the content of the line containing the cursor within the Markdown editor.
@personalizedrefrigerator personalizedrefrigerator changed the title Desktop: Upgrade to Electron v37.2.6 Desktop: Upgrade to Electron v37.3.0 Aug 18, 2025
@laurent22 laurent22 merged commit 602484f into laurent22:dev Aug 20, 2025
11 checks passed
@JGCarroll
Copy link

FWIW this GTK4 change is fairly significant.

Prior to now, GTK3 has been stable for so long, almost every distribution has the same version of GTK3. GTK4 is another beast, where you'll find very different versions between say Ubuntu 20.04 and 24.04 or Debian 11 through 13.

I don't expect most of that to matter to Joplin generally, but it does mean when diagnosing any input or window placement / etc related issues, there's now a much wider compatibility matrix on Linux than there will have been prior, even for e.g, the snap I'm there going "I wonder what this is going to look like for those users still on Ubuntu 16.04 with GTK 4.18...", only one way to find out!

@personalizedrefrigerator
Copy link
Collaborator Author

I don't expect most of that to matter to Joplin generally, but it does mean when diagnosing any input or window placement / etc related issues, there's now a much wider compatibility matrix on Linux than there will have been prior, even for e.g, the snap I'm there going "I wonder what this is going to look like for those users still on Ubuntu 16.04 with GTK 4.18...", only one way to find out!

As a related note, Electron exposes a --gtk-version that should be forwarded to Electron by Joplin.

@JGCarroll
Copy link

This has seemingly broken the Snap on WSL2, with GTK3 and 4

Practically I don't think anyone would care, I mostly use it because I'm too lazy for proper virtual machines, but it's actually been reliable as a platform for 5 years so I thought I'd mention it incase we can draw inferences elsewhere should anything pop up.

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.

3 participants