Release notes¶
Conveyor 3¶
New features¶
- A significantly re-organized tutorial which shows how to adapt existing apps earlier and more explicitly.
- The
app.windows.start-on-login
key, which ensures your application will be started automatically when the user logs in without any need for user interaction.
New features for JVM apps¶
- A better Gradle plugin which:
- Supports Jetpack Compose 1.2
- Automatically imports the JDK from the selected Java toolchain when possible. This simplifies configuration further and eliminates duplicate configuration.
- The template apps were cleaned up. The Compose Desktop template app now uses Compose 1.2 (beta).
- If JDK inputs don't have a
jmods
directory, the JDK is bundled into the app as-is without usingjlink
. This helps with packaging apps using GraalVM. - JDK standard library was refreshed.
Smaller improvements¶
- Input objects now have an
extract
property which controls the default behavior of extracting zips and tarballs as they're copied into the package. - Config under the top level
temp
key is dropped beforeconveyor json
renders, allowing you to keep config clean by placing keys there that are only meant to be concatenated into other keys. - Fixed: tarballs/zips that contain a Mac bundle no longer trigger the single-root-directory detection.
- Fixed: errors during EXE enhancement are no longer fatal.
Conveyor 2.1¶
Fixes and smaller improvements¶
- The minimum macOS version for generated apps was lowered to 10.14 (Mojave). Minimum OS verson requirements are now documented.
- A guidebook section with comparisons to alternative tools was added.
- Fixed: packaged apps were incompatible with macOS Catalina. Thanks to Apple for assisting with debugging this.
- Fixed: the generated certificate signing requests can now be re-exported if you deleted them whilst also having a passphrase on your key.
For JVM apps¶
- The
app.jvm.extract-native-libraries
key was added to control JAR stripping. - The JDK definitions were refreshed.
- Fixed: jdeps is no longer run if it's not actually being requested via the
detect
token. - Fixed: the
jdk.accessibility
module is now always included if AWT/Swing are. If this isn't done then apps might crash at startup if screen readers are installed.
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 anyKt
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 thepackage
task - it builds an unpackaged app for the machine selected by theapp.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.