Releases: axodotdev/cargo-dist
Version 0.24.0-prerelease.1
Release Notes
Nothing Yet!
Install cargo-dist 0.24.0-prerelease.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.24.0-prerelease.1/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.24.0-prerelease.1/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Install prebuilt binaries into your npm project
npm install @axodotdev/dist@0.24.0-prerelease.1
Download cargo-dist 0.24.0-prerelease.1
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.23.0 (2024-10-15)
Release Notes
We're back from a longer-than-usual break between releases with a feature-filled release!
The new config format emerges
Over the past few months, we've been working towards a new config format. Up to now, aside from a few references in the documentation, these changes have been internal and haven't been visible to users. This release marks the first user-facing side of the new config format.
This new config format uses the dist-workspace.toml
and dist.toml
files that were originally created for non-Rust projects. It allows us to unify project configuration formats between languages, and allows you to configure cargo-dist without adding content to your root Cargo.toml
. In this release, newly cargo init
ted Rust projects will use the new format. Existing projects will be given the option to opt into the new format, but by default will keep their existing format for now.
For more information, see the workspace docs.
- impl
Installer improvements
This release contains a suite of improvements to our installers.
"Unmanaged" install type
We now support a new install type, "unmanaged" installs. This is intended for users installing in ephemeral install methods such as CI, and disables several features that are unneeded in those environments. Specifically, it:
- Disables updater-related tooling, including install receipt creation
- Disables modification of the user's
PATH
, including modification of dotfiles - Forces a flat installation layout, installing all files into a single directory
For more information, see the installer usage docs.
Improved path modification options
While we've always provided options to turn off modifying the user's PATH
in the installer, this behaviour was inconsistent between the shell and PowerShell installers. In this release, we've unified the behaviour. The current recommended path is to use environment variables; the variable controlling this is APPNAME_NO_MODIFY_PATH
, where APPNAME
is the name of your application. For example, AXOLOTLSAY_NO_MODIFY_PATH
for an app named axolotlsay
. The commandline flag, which was named inconsistently between platforms, has been deprecated.
We've also made a change to ensure that the user's preference for the "don't modify PATH
" option is persisted across upgrades. This fixes an issue present in previous versions where it would only be respected on initial installation, not in calls to axoupdater.
For more information, see the installer usage docs.
- impl
npm packages can now use any archive format
In previous versions, enabling the npm installer would require your package to be distributed using .tar.gz
archives on all platforms, including Windows. This release removes that restriction by rewriting a section of the npm installer code.
Axoupdater version checking
Users who implement an updater by using axoupdater as a library always need to make sure that library is up to date so that they're able to make use of the latest features. This release contains a version checker which detects if your software is using an out-of-date version of axoupdater which may cause problems, and will alert you that an update is needed during builds. For more information, see the documentation.
Standalone axoupdater installation fix
cargo-dist versions 0.21.1, 0.22.0 and 0.22.1 contain a bug which caused the standalone installer to fail to install when using the shell installer. End users who installed your software via installers generated with these versions will not have received a standalone installer along with your software. This bug is fixed beginning with this release. For more information, see the documentation.
Install cargo-dist 0.23.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.23.0
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.23.0-prerelease.2
Release Notes
Nothing Yet!
Install cargo-dist 0.23.0-prerelease.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0-prerelease.2/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0-prerelease.2/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.23.0-prerelease.2
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.23.0-prerelease.1
Release Notes
Nothing Yet!
Install cargo-dist 0.23.0-prerelease.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0-prerelease.1/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.23.0-prerelease.1/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.23.0-prerelease.1
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.22.1 (2024-09-04)
Release Notes
This is a small patch release that incidentally includes some initial groundwork for a new feature.
- @Gankra fix: give PATH update instructions for cmd too
- @Gankra fix: make linkage truly infallible
- @mistydemeo feat: intial impl of Mac .pkg installer
Install cargo-dist 0.22.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.22.1
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.22.1-prerelease.2
Release Notes
This is a small patch release that incidentally includes some initial groundwork for a new feature.
- @Gankra fix: give PATH update instructions for cmd too
- @Gankra fix: make linkage truly infallible
- @mistydemeo feat: intial impl of Mac .pkg installer
Install cargo-dist 0.22.1-prerelease.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1-prerelease.2/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1-prerelease.2/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.22.1-prerelease.2
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.22.1-prerelease.1
Release Notes
Install cargo-dist 0.22.1-prerelease.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1-prerelease.1/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.1-prerelease.1/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.22.1-prerelease.1
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.22.0 (2024-08-28)
Release Notes
This release fixes several bugs and provides some nice quality of life improvements. These fixes are largely related to our installers, shell, powershell, and homebrew as well as managing some papercuts in the dist init
command and error handling.
App-branded installer environment variables
We generate installers for our users- and then our users' users use those installers. Those users don't know they are using dist
and, if we do our job right, should never have to.
While we had implemented some environment variables that enable users to control the behavior of installers, previously they were largely designed for internal use, and therefore namespaced with DIST
. However, we quickly realized that this isn't suitable for having our users communicate with their users- so we've enabled the generation of app-branded installer customization environment variables- so that installer users can leverage environment variables that are branded to the application they are trying to install.
Right now, the only customization we allow for installers is the install directory- so instead of CARGO_DIST_FORCE_INSTALL_DIR
, you can tell your users to use AXOLOTLSAY_INSTALL_DIR
(if your app is named axolotlsay
). If you have a name with hypens or other characters, we normalize it for you, and you can find this value at the install_dir_env_var
field in the dist-manifest.json
that is generated with each of your releases.
Homebrew license metadata
Currently, when publishing to a Homebrew tap, whatever string is in the project's license field (usually a SPDX license expression) gets passed into license in the Homebrew formula. However, rather than using SPDX syntax, Homebrew has its own ruby syntax for specifying licenses. So, when passed an SPDX expression, Homebrew:
- Cannot provide as detailed information about the package's licensing.
- Throws errors when linting the formula with brew audit/brew test-bot.
This PR translates the SPDX expression to the Homebrew license DSL.
- impl @cxreiff translate SPDX expressions to Homebrew license DSL to produce better Homebrew package metadata
Homebrew compliance (brew style
)
Creating a personal tap with brew tap-new creates a default Github Actions workflow that runs a homebrew-specific style check (brew style ) on the repo. Cargo-dist's generated homebrew formulas fail this style check. This does not block the core functionality of cargo-dist's homebrew publishing functionality (formula still functions), but does mean that users whorun brew style
(which is a side effect of creating a tap with brew tap-new
) would get frustrating errors.
Rather than separately chasing formatting issues as they come up, this PR updates the homebrew publish workflow to install and run brew style --fix
on each formula before commiting it.
- impl
Fixes
- @mistydemeo enable powershell installer to respect NoModifyPath from env
- @Gankra improve powershell installer portability by updating ExecutionPolicy flag and offering better hints
- @mistydemeo handle
ar
archives when parsing Windows objects, ensure unsupported binary linkage checks are non-fatal, and improve linkage checker errors - @Gankra improve
init
errors for custom projects, and ensure prompts are more contextual - @mistydemeo update reference to renamed config in error message
Install cargo-dist 0.22.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.0/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.22.0/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.22.0
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.21.2-prerelease.2
Release Notes
Nothing Yet!
Install cargo-dist 0.21.2-prerelease.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.21.2-prerelease.2/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.21.2-prerelease.2/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.21.2-prerelease.2
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Version 0.21.2-prerelease.1
Release Notes
Nothing Yet!
Install cargo-dist 0.21.2-prerelease.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.21.2-prerelease.1/cargo-dist-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://axodotdev.artifacts.axodotdev.host/cargo-dist/v0.21.2-prerelease.1/cargo-dist-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install axodotdev/tap/cargo-dist
Download cargo-dist 0.21.2-prerelease.1
File | Platform | Checksum |
---|---|---|
cargo-dist-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
cargo-dist-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
cargo-dist-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
cargo-dist-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
cargo-dist-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
cargo-dist-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
cargo-dist-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo axodotdev/cargo-dist
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>