Pulsar on Electron 30: what it means for you

savetheclocktower

If you’re reading this, Pulsar’s long-planned upgrade to Electron 30 is finally upon us. This applies to rolling releases on or after December 2 and to regular release versions 1.131.0 and later.

We expect that lots of users will experience no downside to this upgrade whatsoever. But some community packages might need updates to work with Electron 30, so please read on to find out how this release could affect you!

A few months ago, I laid out what it means whenever we upgrade Electron to a newer version:

But this upgrade brings us from Electron 12 to Electron 30, so it’s a bigger change than usual. If you want, you can go back through old blog posts to learn why this was a challenging upgrade from our perspective. But here’s how it may affect you as a user:

(Optionally) back up your home folder

We’ve tested this upgrade both with a clean home folder (the folder named .pulsar that holds your settings and packages, among other things) and with a pre-existing home folder, and both have worked just fine in our tests.

That said, if you’re still nervous about this upgrade, do one thing before you proceed with anything else: back up your home folder. It’s dead-simple to do and acts as the ultimate “abort” button: in the unlikely event of something going haywire, restoring the previous state is as simple as replacing your Pulsar home folder with the backup.

By default, your home folder lives at ~/.pulsar on macOS/Linux and %USERPROFILE%\.pulsar on Windows. You can also open a file explorer window at the root of your home folder by opening the settings and clicking the Open Config Folder button at the bottom of the sidebar; that should identify your home folder correctly even if it’s different from the default.

If you don’t already have a more comprehensive backup strategy for all your system data, consider at least creating a compressed backup of your home folder once in a while just so you can preserve the exact state of things — temporary/unsaved files, the module compilation cache, and so on.

Handle possible package incompatibilities

incompatible-packages status bar

After you upgrade, you might see the icon above in your status bar. It’s put there by the core incompatible-packages package, whose job is exactly what it sounds like: detecting packages that are incompatible with the current version of Pulsar.

The only packages that may be flagged after this upgrade are packages that use Node libraries with native module bindings. It’s not worth doing a deep dive into what that means… but if you had to consult this documentation page when installing a community package, it’s likely to be affected by this upgrade.

If you see the icon above, click on it to read details about the incompatibility. You can expect one of several messages to be shown, but most commonly:

Known packages with issues

Of the packages that are known to be affected, the most common are hydrogen and x-terminal-reloaded:

Other issues

I’ve been running some version of Pulsar on Electron 30 for more than a year, and at least a dozen other users have been beta-testing it for months. That said, if you run into problems that aren’t covered above, please report them in the megathread and we’ll get to the bottom of it.

Remember that you can always revert to earlier versions of Pulsar via the GitHub releases page.

What’s next?

Finally delivering this upgrade is a big load off our backs, but the job’s not done. We picked Electron 30 last year just to have a target to fixate on, but Electron’s already up to version 39! So you can expect us to gradually play catch-up over the next few releases.

Luckily, future Electron upgrades should be nowhere near as disruptive as this one. The worst thing about it is that catching up to Electron 39 will drop official support for some older operating systems:

In addition to this, Electron 23 has already dropped support for Windows 7, 8, and 8.1.

We regret this, but Electron apps are beholden to Chromium’s support matrix. If Chromium drops support for an operating system, it’s dropped. If this will affect you, you’ll at least be able to use older versions of Pulsar indefinitely. If it affects enough people, we might explore a custom release channel of Pulsar that tries to deliver new features while maintaining a broadly compatible Electron version. (No promises!)

But that’ll all come into focus in the future. For now, happy coding, and see you amongst the stars!