Hello, and welcome, one and all! This release brings the long-awaited (and long-previewed in our Rolling releases) upgrade to Electron 30 to our stable "Regular" releases!
Catching up, at least somewhat, with the rapid pace of new Electron versions is a goal we've been actively working on since we started Pulsar almost 4 years ago. We're happy to make one of the larger steps in that direction since we began with this release (from Electron 12 to Electron 30.) We recognize that Electron 30 is still not the latest Electron version, but it took a tremendous amount of work to get here, and we are still working diligently on further upgrades.
On a more business-as-usual note, we also have several language/grammar improvements, various bugfixes and miscellaneous improvements. Please see the full changelog below for details.
We're very excited for this milestone, and please do let us know if anything needs fixing -- this was a huge undertaking under the hood! (Did we mention the accompanying blog post?: https://blog.pulsar-edit.dev/posts/20251202-savetheclocktower-pulsar-on-electron-30/)
As always, a huge thank you to our community, contributors, and donations.
Happy coding, and see you amongst the stars!
- The Pulsar Team
1.131.0
Because this is such a huge upgrade to Pulsar, some of your community packages may be affected!
If you handle distributions for Pulsar as a community maintainer make sure to read this changelog carefully to make things compatible!
For more information, read Pulsar on Electron 30: what it means for you.
- Update Electron to version 30!
- Node is now version 20.11.1
- Chromium is now version 124
- This means better performance, better Node library compatibility, and ability for community packages to use newer features of Chromium.
- It should also vastly improve the Pulsar experience for Linux users in Wayland environments.
- Because this is such a big upgrade, some of your community packages might be affected!
- Bump
ppmto use Node 20.11.1- For the first time in a long time, both
ppmand Pulsar are using the same version of Node; this should avoid some rare bugs encountered when installing certain packages.
- For the first time in a long time, both
- Fix handling when opening files to certain line numbers via CLI - e.g.
pulsar foo.txt:30. - Prevent packages from spawning new background tasks if the environment is unloading (as would happen during a window reload or while quitting Pulsar).
- [find-and-replace] Fix an issue where certain files would show results in a project-wide search even when they would be excluded by the file/directory pattern.
- [markdown-preview] Fix situations where "Save as HTML" and "Copy as HTML" silently failed with certain kinds of content.
- [autocomplete-plus] Prevent certain kinds of suggestions from being incorrectly filtered out of the result set.
- [language-java] Update to the latest
tree-sitter-javaparser, adding support for multiline strings, among other things. - [language-python] Better highlighting of
exceptclauses; fixed folding of certainifblocks. - [language-typescript] Better highlighting of template literals; adding folding of
interfaceandenumblocks. - [language-javascript] Proper highlighting of JSX with namespaced attributes.
Pulsar
- Enhance documentation for
atom.commands.dispatch()method @trusktr - Fix autocomplete-plus crash with non-workspace editors @asiloisad
- Fix tree-view crash when dock pane is split @asiloisad
- Tree-sitter rolling fixes, 1.131.0 edition @savetheclocktower
- Always show suggestions with
textEdits instead of filtering them out @savetheclocktower - Fix incorrect interpretation of a line-number spec on the command line @savetheclocktower
- Prevent task spawning during unload @savetheclocktower
- [markdown-preview] Fix failure to serialize to HTML when the document contains certain kinds of code blocks @savetheclocktower
- Bump to latest
ppmafter fixing theforce-process-configissue in ppm#162 @savetheclocktower - Remove reliance on
titlekey of a setting to avoid using locale labels @confused-Techie - Bump CI runners to
macos-14@savetheclocktower - Fix text-editor-component annoying bug @Psychosynthesis
- Migrate to python3 style super for new class snippets in language-python @bridgetjs
- Update to Electron 30 @mauricioszabo and @savetheclocktower
- Cirrus: Update Rolling upload token @DeeDeeG
- [find-and-replace] Prevent addition of project results from editors whose paths are not matched by the current path inclusions @savetheclocktower
- Tree-sitter rolling fixes, 1.130.0 edition @savetheclocktower
- Update actions/setup-python action to v6 @renovate
- Update actions/setup-node action to v6 @renovate
- [meta] Add new and missing packages to our renovate config @confused-Techie
- Update pulsar-updater package @renovate
- Update actions/checkout action to v5 @renovate
- Add "Regular Release Checklist" issue template @DeeDeeG
Changes for Electron 30
Internals of 'Update to Electron 30' PR
- Remove all support for legacy Tree-sitter
- Prefer
@electron/remote, deprecate direct usage ofelectron.remoteand switch all internal usages to@electron/remote. - Decaffeinate
tree-view - Fix a failing
autocomplete-plusspec - Get
dev-live-reloadspecs passing - Get
image-viewspecs passing - [language-ruby] Add a basic grammar test spec
- [markdown-preview] Get specs passing
- [settings-view] Get specs passing
- Point to Electron
30.0.9and point our dependencies to the NPM-published versions under the@pulsar-editnamespace that are compatible with Electron 30.0.9. - Fix some
TextEditorComponentissues related to changes in Chromium sometime between Electron 12 and Electron 30. - Eliminate reliance on
typescript-simplein favor of a custom solution that uses thetypescriptpackage directly. - Consume
get-scrollbar-styleto replace the deprecatedscrollbar-stylemodule - Additional changes related to device pixel ratio that probably should have gone in the earlier commit.
- Add the ability to report crashes via Electron's standard
crashReporterinterface. - Delete deprecated "app.allowRendererProcessReuse = false"
- Enable
@electron-remotefor the given window during startup and disable a Blink experimental feature that was causing trouble with package compatibility (because it added anonmethod to all DOM nodes!). - Be more paranoid about release channels in a handful of places in case we want to maintain a
next(ornightlyorpreview) release channel on an ongoing basis. - Cache
Languageinstances inweb-tree-sitterso that the specs don't run out of memory. - Preserve an
ATOM_CHANNELenvironment variable if it exists and other changes related to release-channel agnosticism. - [snippets] Get specs passing
- [spell-check] Get specs passing and abandon
atom-pathspecin favor of an internal implementation. - [tabs] Fix an exception that can happen in unusual scenarios when the browser can't give us an element under a given X/Y coordinate.
- [update-package-dependencies] Get specs passing
- [symbol-provider-tree-sitter] Unmock clock in the standard way
- Remove outdated Tree-sitter documentation
- Update GitHub Actions CI jobs to include Wayland-related keyboard dependencies.
- Update CirrusCI build job to include Wayland-related keyboard dependencies.
- Revert to a single
entitlements.plistnow that we're no longer affected by the awfullibuvbug that was present in Electron 12. - Update
script/electron-builder.jsto support a couple of command-line switches and to build correctly for Electron 30. - Fix
ThemeManagerspecs - Define two methods on the
atomglobal to work aroundtree-viewissues related to trashing and revealing items inelectron.shell. - Comment reformatting
- Some integration test fixes
- Fix
PackageManagerspecs - Use
yarn.lockfromupdated-latest-electronbranch - Swallow exceptions raised by pending tests
- Disallow
if(and the like in.eslitrc - Add
submodules: trueback into certain workflows - Remove
atom.trashItemandatom.showItemInFoldersince they weren't even being used. The equivalent functions from theshellmodule of@electron/remotehave been performing the same task in PulsarNext for a while now. - Update ppm to commit d288b0978b35f7c0ffb3dc5c1e50c
- Update ppm to commit 07faba10096ee4239ce671218d9953fb2e40ecbf
- Remove unnecessary
Promise.all
ppm
- Fix CI @DeeDeeG
- Fix misnamed variable in
rebuildcommand @savetheclocktower - Upgrade Node to version 20.11.1 @savetheclocktower
- Add TypeScript template @savetheclocktower
- Revert setting of
--force-process-confignow that we’re on Electron 30 @savetheclocktower