Release notes¶
Conveyor 17 (16th Feb 2025)¶
- Conveyor now prompts you to upgrade your
conveyor.compatibility-level
key when your project has fallen behind. Compatibility levels help Conveyor introduce backwards-incompatible improvements when you explicitly opt-in to them, as well as ensuring old Conveyor versions don't try to work with a config intended for a newer version. - There's a new
app.site.s3.retries
key to let you configure the retry with exponential backoff Conveyor uses for S3 uploads. - Conveyor now automatically builds a newly created template project. To disable this you can pass the
--no-build
flag. - A bug has been fixed relating to chains of symlinks inside packages.
- The disk cache has been improved: it now uses hysteresis when lowering disk usage due to going oversize, and the logs can now include a textual diff of cache keys to aid in understanding why there was a cache miss (set
LOG_CACHE_MISS_DIFFS=true
in the environment and then use--show-log
to view the results). - There is now a
--silent
flag that suppresses progress tracking output. - Uploads to Amazon S3 can now take credentials from the environment using the default SDK behavior instead of requiring credentials to be supplied via Conveyor's configuration. This enables scenarios like using OIDC for Amazon authentication, or any other scheme that requires temporary credentials.
Windows¶
- You can now configure SafeNet or Yubikey signing tokens in a simpler way. Just set
app.windows.signing-key = hsm
and the drivers will be located automatically. - A
User-Agent
header is now added to requests from the installer/upgrader formetadata.properties
, which improves compatibility with some CDNs that block requests without a User-Agent by default. - Conveyor no longer removes the Win32 EXE version resource, it's now updated in place with metadata from your
conveyor.conf
file. This fixes the Electron APIs that read the program version metadata. - The "max version tested" metadata in your MSIX package has been increased by default to
10.0.26100.2454
, indicating you've tested on 24H2 Windows 11. You can lower this if you aren't testing your app on an up-to-date Windows 11 install. - Conveyor now handles edge cases in EXE names without creating manifest metadata that fails schema validation.
macOS¶
- The minimum OS version is now added to the Sparkle metadata feed, ensuring users won't be offered upgrades to versions that require a newer OS than the one they have.
- The default minimum OS version has been increased to
12.3.0
, but can be adjusted downwards if your app is compatible with older versions by setting theapp.mac.info-plist.LSMinimumSystemVersion
key. - Conveyor now supports ARM-only builds, without an Intel build.
- Sparkle was upgraded to 2.6.4
- Sparkle is no longer imported via the
bundle-extras
key so if you accidentally replace the contents of that key it won't yield a broken package anymore. - The robustness of delta patch generation has been improved to handle edge cases that could previously cause a stack overflow.
- Conveyor now prints a useful error message when trying to store the root key in the keychain and the display server is locked or unreachable (e.g. because it's being run via SSH into a Mac).
Linux¶
- When URL schemes/deep linking is used, the
%U
flag is automatically added to your.desktop
file now if you don't do this yourself. This ensures the URL will be passed via your command line without additional configuration work. - Ubuntu 24 breaks Electron apps via a backwards incompatible change that requires either app packaging changes or for the user to disable the new security mode. Conveyor now sets up the OS correctly whilst respecting the security changes when the user installs the
.deb
, or prints an error telling the user what they have to do if they use the tarball version.
Electron¶
- The
app.isPackaged
API now works correctly, along with app APIs for reading the app's own version metadata (vs reading it frompackage.json
). - Improved the diagnostics when a
.bin
directory is found in an Electron app tree. - Conveyor now optimizes download size and disk usage by dropping native libraries (
.node
files) that target the wrong OS or CPU architecture for the package being built.
JVM¶
- Updated JDK definitions with the latest versions. The refresh process for this now catches cases where builds for different CPU architectures are released at different times from each other.
- Updated the version of Gradle used in the template projects.
- The template apps now download the needed JDK version automatically if it's not available locally.