cargo-dist

Version 0.27.0 (2024-12-19)

v0.27.0 Dec 20 2024 at 01:37 UTC

We're back once more with a little holiday gift for you. This release contains a few new features and fixes.

Support for XDG_CONFIG_HOME

We've always supported standard OS configuration paths. This release adds support for XDG_CONFIG_HOME, an environment variable defined in the XDG Base Directory Specification, in order to allow users to override that default. We support this on all platforms, even Windows. Installers created with dist 0.27.0 or later will respect this environment variable and place install receipts in that path; updaters using axoupdater 0.9.0 or later will respect that variable when searching for the receipt.

Improved handling of missing build dependencies

While we've always reported if mandatory tools are missing, we previously would only check for their existence right before we'd use them. This made it hard to judge exactly when required tools might be absent, and meant we'd only report about a single tool at a time. With this release, we now check for these tools up front and we check for every tool your build will need simultaneously. This allows us to tell you about every missing tool in one message, and before the builds themselves begin.

Improved generic config handling

Since we shipped the new config format, dist-workspace.toml, we've been providing some spurious messages for non-Rust builds using just a dist.toml file. In this release, we now migrate users with dist.toml-alone apps to dist-workspace.toml. This conversion is automatic and requires no user input; it will happen when using dist init to upgrade to a new release.

Stabilizing the standalone updater we ship

In the past, we always shipped the latest version of the standalone updater provided via axoupdater. This meant that, if a new version of axoupdater was released after a given version of dist, your app would receive that latest version. As we've stabilized the updater's feature set, we feel that end users are deriving less benefit from this rolling release schedule and it would be more helpful to provide a fixed, known-good stable release instead.

Beginning with this release, dist will always package the same version of axoupdater when building and shipping your app. If you prefer the old behaviour, and would like to receive whatever's the latest, you can set always-use-latest-updater = true in your configuration.