Skip to content

Release notes

Conveyor 2

New features

Improved Windows end user UX. Conveyor now gives Windows users a small EXE file that triggers download and installation of the MSIX package. This simplifies the Windows UX, makes it more familiar for end users, avoids problems with a small minority of machines that have fallen behind on software updates and enables other future features. The .appinstaller file is still there and used behind the scenes, so admins can easily bypass the EXE to use the packages directly.

Just like in the previous release the installation process will download only the parts of the MSIX file that the user doesn't already have on their system, will even hard link files between different apps and doesn't require admin privileges. The user will see your icon/logo whilst the download and installation proceeds, and at the end the app will launch automatically. This yields fast installs that require exactly one click. The installer EXE is a tightly written Win32 app that's just a few hundred kilobytes in size. Like any installer it can be deleted after usage, or re-run to trigger a forced upgrade check and relaunch.

Site metadata. Your download site now has a metadata.properties file in the site directory which contains information about the software in the form of key=value text. You can control what else gets written here by changing the app.site.export-keys list, which contains a list of config keys to write out. This file is useful for software that wants to know what the latest version is, without needing to deal with platform specific XML.

New features for JVM apps. You can now:

  • Specify machine-specific JVM options
  • Control the options for each launcher/machine combination independently.
  • Control the Windows console mode of each launcher independently.
  • Control the list of files that are cleaned up after JDK linking with the app.jvm.unwanted-jdk-files key.
  • Write CLI launchers using shorthand config syntax of just the class name, without an object. The name of the executable is taken by transforming the class name to kebab-case and removing any Kt extension.

Fixes and smaller improvements

  • The clipboard copy icon on the generated download page now works in Firefox.
  • The error message you get when using a JDK that doesn't supply Mac builds is now more helpful.
  • The new app task is similar to the package task - it builds an unpackaged app for the machine selected by the app.machines key.
  • The default Windows timestamping authority has changed from DigiCert to Certum due to this DigiCert issue.
  • The JDKs available via the standard library have been refreshed. The GraalVM stdlib configs have been removed from the docs and JDK table due to the need for better GraalVM support for this feature to really shine (the stdlib configs remain so existing build configs should continue to work).
  • Documentation related to code signing has been improved.
  • Fixed usage with recent Azul JDKs, which contain non-standard symlinks in the macOS download.
  • The PowerShell one-liner used for self-signed Windows apps now works when the web server doesn't set MIME types correctly (e.g. for GitHub Releases), and when the system is configured to restrict PowerShell.
  • Fixed notarization failure when using Apple certificates linked to developer accounts that are authorized for iPhone development.
  • Fixed bugs that could occur when a company name in certificates used characters requiring X.500 escape sequences.
  • The template apps no longer require the system properties set by packaging to start up.
  • The CMake template app uses the win32 subsystem (no console) on Windows.
  • Fixed bugs that affected Linux packages built on Windows.

Conveyor 1

First release with support for packaging JVM, Electron and native apps for any OS, from any OS, using a simple and intuitive config syntax and a straightforward command line tool.