Conveyor 12: The Halloween Release

The November updates to Conveyor add some great new features, polishes the appearance of the generated assets and makes it easier to migrate Electron install bases from Squirrel. Let’s see what’s new.

ARM support for Windows and Linux

Conveyor has supported the 64-bit ARM architecture for macOS since the start, but up until recently that support was lacking for Windows and Linux, reflecting the lower usage of ARM on these platforms. In Conveyor 12 we’ve now fixed this and enabled support for shipping ARM native Windows and Linux packages. If you use Electron or the JVM then enabling support for the new architectures is easy, especially if you aren’t relying heavily on native code.

You can read more about our new ARM support in our separate blog post for the feature.

By the way, this feature was requested by a customer with a source license. If you’d like to adapt Conveyor for your own companies workflow, or integrate Conveyor into your product, all these things are possible. Just get in touch and talk to us about what you need.

Visual upgrades

The Windows installer has been given a fresh lick of paint in this release. It now has a more compact UI layout that matches the Sparkle update UI for macOS, and also supports dark mode. By default, it’ll match the system theme but if you want you can force dark/light mode to match the style of your application.

We’ve made some small visual improvements to the generated download page. It now supports dark mode and will adapt automatically to the system theme, and it will now have a favicon version of your main app icon.

ASAR archives

Electron apps typically consist of many small JavaScript files. On Windows this can cause performance problems because the kernel IO system isn’t optimized for accessing lots of small files, and even reliability problems if path lengths get too large. To work around these problems Electron supports so-called ASAR files. An ASAR is an Electron-specific archiving format that combines many files into one, improving startup time and performance. Conveyor now generates ASAR files automatically as long as you have npm installed, and in addition handles the case of files that can’t be loaded from the archive automatically (like native libraries).

You don’t have to do any work to get the benefits of this - just build your app with the new version of Conveyor and it will get faster.

Migration of Electron apps to Conveyor

Conveyor has a bunch of advantages over Electron Forge and the Squirrel update engine, but that’s of no use if you can’t start using it because you already deployed. In Conveyor 12 we’ve added a guide and utility npm module for migrating an existing install base to Conveyorized packages. Users will see a Squirrel-shipped update, and then on restart updates will be handled by Conveyor automatically. On Windows the app will be transparently reinstalled in order to place it under the control of the Windows Deployment Engine, which will then keep it up to date in the background automatically.

We’ll be writing more about this soon.

And even more …

We improved Conveyor in a bunch of smaller ways too:

  • We now print warnings if an include file is marked as optional but not found.
  • Conveyor now uses its disk cache in a smarter way, by flushing entries using a cost function instead of simply tossing the least recently used entries. This should improve performance when frequently rebuilding your app.
  • Your entry point Windows EXE now has its icon replaced with your app icon. This legacy icon resource may show up in some parts of Windows like the firewall consent screen.
  • We’ve updated the Sparkle update framework bundled into your Mac apps to version 2.5.1. This improves compatibility with macOS Sonoma and also reduces the size of Sparkle.framework by almost half! You can read the Sparkle release notes to learn what’s new.
  • For JVM apps:
    • It’s now easier to get your app published to the Microsoft Store, as we’ve changed the way we work around some Windows bugs to avoid the need for an unusual permission.
    • We made it harder to break SSL/TLS support by accidentally leaving out the elliptic curve cryptography module.
    • We updated the template apps to use newer versions of Gradle and other frameworks.

And, of course, a variety of minor bug fixes.

We hope you enjoy the upgrade!