Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds workflows and supporting configs to use dist for building and publishing binaries for the CLI.
To lean towards dist's happy path, a top-level
Cargo.toml
defines a workspace including any cargo projects we want to build and distribute (currently justsvix-cli
).The
dist-workspace.toml
includes various parameters set bydist init
to configure the generation of.github/workflows/release.yml
.dist-workspace.toml
can be edited manually, but therelease.yml
should only be changed viadist generate
.Installers
Currently, only the
shell
installer is configured.dist
provides several others including:npm
homebrew
(we'll definitely enable this one once we know everything looks good)msi
powershell
shell
is essentially "curl to bash" like is commonly done forrustup
and seemed like the closest thing we'd see to a "hello world." My plan is to enable more in subsequent releases.Status
Currently the build is broken because we're missing sources in the Rust SDK (i.e the codegen script isn't run during the workflows).
This will be fixed by committing those sources to git afaik. TBD.
Open Questions
Install Location
The
dist
default mimics whatcargo install
does (i.e.$CARGO_HOME/bin
). This is great if you just happen to be a Rust dev, but for other folk it's not meaningful. We can pick a path, so should we?Maybe
~/.svix/bin
?The installer script will offer to modify the
PATH
just likerustup
does, so it seems like anything is fair game.