Skip to content

feat: migrate more tools away from asdf#3202

Merged
jdx merged 2 commits into
mainfrom
ubi
Nov 25, 2024
Merged

feat: migrate more tools away from asdf#3202
jdx merged 2 commits into
mainfrom
ubi

Conversation

@jdx

@jdx jdx commented Nov 25, 2024

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Nov 25, 2024

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-main x -- echo 19.2 ± 0.5 17.9 20.9 1.01 ± 0.04
mise-2024.11.29 x -- echo 19.0 ± 0.5 17.9 22.6 1.00
mise x -- echo 19.8 ± 0.7 18.4 26.1 1.04 ± 0.05

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-main env 16.0 ± 0.6 14.7 20.0 1.02 ± 0.05
mise-2024.11.29 env 15.7 ± 0.5 14.4 19.4 1.00
mise env 16.3 ± 0.9 15.0 23.3 1.04 ± 0.07

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-main hook-env 16.4 ± 0.6 14.9 18.7 1.04 ± 0.06
mise-2024.11.29 hook-env 15.8 ± 0.5 14.6 17.8 1.00 ± 0.05
mise hook-env 15.8 ± 0.7 14.6 21.9 1.00

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-main ls 12.8 ± 0.3 12.3 14.6 1.03 ± 0.04
mise-2024.11.29 ls 12.5 ± 0.3 12.0 14.9 1.00
mise ls 13.0 ± 0.3 12.4 14.4 1.04 ± 0.04

@codacy-production

codacy-production Bot commented Nov 25, 2024

Copy link
Copy Markdown

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for be22f001 95.24%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (be22f00) Report Missing Report Missing Report Missing
Head commit (3f37f1c) 42905 25152 58.62%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#3202) 21 20 95.24%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

@jdx jdx force-pushed the ubi branch 3 times, most recently from 7e2f473 to 9931050 Compare November 25, 2024 17:22
@jdx jdx merged commit 1763953 into main Nov 25, 2024
@jdx jdx deleted the ubi branch November 25, 2024 18:20
jdx pushed a commit that referenced this pull request May 11, 2026
## Summary
- remove unsupported `exe` options from GitHub/GitLab registry backend
options
- use `bin = "solc"` for Solidity because the selected Linux release
asset is named `solc-static-linux`, but users expect the command to be
installed as `solc`
- set Sourcery `format = "tar.gz"` because the Linux release asset is
gzip-compressed even though the uploaded filename ends in `.tar.xz`
- keep the newly discovered registry command checks as commented `# test
= ...` lines instead of active tests
- rebase onto current `main`; tools removed upstream by
#9725 are no longer part of this PR

## Popularity
No new registry tools are added in this PR. This only updates existing
registry entries, so new-tool popularity data is not applicable.

`flarectl` is no longer part of this PR.
#9756 has been merged to remove it from
the registry because the current `cloudflare/cloudflare-go` releases no
longer publish static binaries and mise versions shows very low usage.

## CI status
As of 2026-05-10, the rebased PR head is
`7117c21f1be582f0f4ed1e836498b7a7561a7020`.

A previous CI run passed at the old head
`891419410da51649a24c16f2d6015eef7f2aeef6`. The branch has since been
rebased onto current `main`, the CI-token commits were dropped because
they are already upstream, and the registry tests added by this PR were
commented out.

## Changed tools

| Tool | Opts/config added | Test status | Linux install works | Notes |
| --- | --- | --- | --- | --- |
| `astro` | none | existing `astro version` test kept | yes, existing
test covers install | removed unsupported `exe = "astro"` only |
| `babashka` | none | existing `bb --version` test kept | yes, existing
test covers install | removed unsupported `exe = "bb"` only |
| `codefresh` | none | no active test | latest no; prior `0.89.6` yes |
`1.1.4` installs but `codefresh version` fails with `Cannot find module
'/snapshot/cli/node_modules/generator-function/require.mjs'`; `0.89.6`
runs `codefresh version` and prints `client version: 0.89.6` |
| `coursier` | none | commented `cs --help` kept | yes, local `mise x
coursier@latest -- cs --help` passed | removed unsupported `exe = "cs"`
|
| `databricks-cli` | none | existing `databricks --version` test kept |
yes, existing test covers install | removed unsupported `exe =
"databricks"` only |
| `depot` | none | existing `depot --version` test kept | yes, existing
test covers install | removed unsupported `exe = "depot"` only |
| `doppler` | none | existing `doppler --version` test kept | yes,
existing test covers install | removed unsupported `exe = "doppler"`
only |
| `dynatrace-monaco` | none | commented `monaco version` kept | yes,
local `mise x dynatrace-monaco@latest -- monaco version` passed |
removed unsupported `exe = "monaco"` |
| `flatc` | none | existing `flatc --version` test kept | yes, existing
test covers install | removed unsupported `exe = "flatc"` only |
| `fluttergen` | none | existing `fluttergen --version` test kept | yes,
existing test covers install | removed unsupported `exe = "fluttergen"`
only |
| `gam` | none | commented `gam version` kept | yes, local `mise x
gam@latest -- gam version` passed | removed unsupported `exe = "gam"` |
| `glab` | none | existing `glab version` test kept | yes, existing test
covers install | removed unsupported `exe = "glab"` from both platform
backends |
| `graphite` | none | existing `gt --version` test kept | yes, existing
test covers install | removed unsupported `exe = "gt"` only |
| `jwtui` | none | commented `jwtui --version` kept | yes, local `mise x
jwtui@latest -- jwtui --version` passed | removed unsupported `exe =
"jwtui"` |
| `kube-controller-tools` | none | commented `controller-gen --version`
kept | yes, local `mise x kube-controller-tools@latest -- controller-gen
--version` passed | removed unsupported `exe = "controller-gen"` |
| `localstack` | none | existing `localstack --version` test kept | yes,
existing test covers install | removed unsupported `exe = "localstack"`
only |
| `micronaut` | none | commented `mn --version` kept | yes, local `mise
x micronaut@latest -- mn --version` passed | removed unsupported `exe =
"mn"` |
| `odin` | none | commented `odin version` kept | yes, local `mise x
odin@latest -- odin version` passed | removed unsupported `exe = "odin"`
|
| `openbao` | none | commented `bao version` kept | yes, local `mise x
openbao@latest -- bao version` passed | removed unsupported `exe =
"bao"` |
| `protoc-gen-js` | none | commented `protoc-gen-js --version` kept |
yes, local `mise x protoc-gen-js@latest -- protoc-gen-js --version`
passed | removed unsupported `exe = "protoc-gen-js"` |
| `purescript` | none | commented `purs --version` kept | yes, local
`mise x purescript@latest -- purs --version` passed | removed
unsupported `exe = "purs"` |
| `railway` | none | existing `railway --version` test kept | yes,
existing test covers install | removed unsupported `exe = "railway"`
only |
| `schemacrawler` | `depends = ["java"]` | commented `schemacrawler.sh
--version` kept | yes with Java explicit | `mise x schemacrawler@latest
-- schemacrawler.sh --version` did not put `java` on PATH locally; `mise
x java@26 schemacrawler@latest -- schemacrawler.sh --version` passed |
| `signadot` | none | existing `signadot --version` test kept | yes,
existing test covers install | removed unsupported `exe = "signadot"`
only |
| `soft-serve` | none | commented `soft --version` kept | yes, local
`mise x soft-serve@latest -- soft --version` passed | removed
unsupported `exe = "soft"` |
| `solidity` | `bin = "solc"` | commented `solc --version` kept | yes,
local `mise x solidity@latest -- solc --version` passed | default
selected Linux asset name is `solc-static-linux`; `bin = "solc"`
installs the expected `solc` command |
| `sourcery` | `format = "tar.gz"` | commented `which sourcery` kept |
yes, local `mise x sourcery@latest -- which sourcery` passed | Linux
asset filename says `.tar.xz`, but upstream workflow writes it with gzip
compression |
| `starknet-foundry-sncast` | none | commented `sncast --version` kept |
yes, local `mise x starknet-foundry-sncast@latest -- sncast --version`
passed | removed unsupported `exe = "sncast"` |
| `starknet-foundry` | none | commented `snforge --version` kept | yes,
local `mise x starknet-foundry@latest -- snforge --version` passed |
removed unsupported `exe = "snforge"` |
| `swiftgen` | none | no active test | left as-is | non-Linux tool in
practice; current GitHub release contains a Mach-O universal `swiftgen`
binary, so Linux execution is not expected to work |
| `tfswitch` | none | commented `tfswitch --version` kept | yes, local
`mise x tfswitch@latest -- tfswitch --version` passed | removed
unsupported `exe = "tfswitch"` |
| `transifex` | none | commented `tx --version` kept | yes, local `mise
x transifex@latest -- tx --version` passed | removed unsupported `exe =
"tx"` |
| `tsuru` | none | commented `tsuru version --help` kept | yes, local
`mise x tsuru@latest -- tsuru version --help` passed | removed
unsupported `exe = "tsuru"` |
| `weave-gitops` | none | no active test | latest no; prior `0.38.0` and
`0.37.0` yes | latest `0.39.1-rc.1` has no release assets, but older
Linux assets still work and `gitops version` reports the expected
versions |

## Rebased-away tools

- `carp`, `dtm`, and `kpack` were removed upstream by
#9725, so this branch no longer touches
them.
- I still checked `carp` with explicit backend syntax:
`github:carp-lang/Carp@0.6.0` fails because the latest release has no
assets, while `github:carp-lang/Carp@0.5.5 -- carp --help` installs and
runs.
- `dtm` is left alone because it is non-Linux-only in practice and has
already been removed upstream.
- `flarectl` was removed from this PR;
#9756 has been merged.

## Codefresh history

`codefresh` started as an asdf-only registry entry in the initial
cross-backend registry work. It was later migrated away from asdf by
adding `ubi:codefresh-io/cli[exe=codefresh]` in
#3202, then migrated from `ubi:` to
`github:` in #6232. Current `1.x` Linux
binaries are broken at runtime, but older `0.89.6` still works through
the GitHub backend, so I did not remove it here.

## Sourcery release format

The current Sourcery Ubuntu release workflow sets
`FILENAME="sourcery-${TAG}-${SUFFIX}.tar.xz"` and then creates it with
`tar -zcvf`, which produces gzip-compressed tar content despite the
`.tar.xz` filename:
https://github.com/krzysztofzablocki/Sourcery/blob/master/.github/workflows/release_ubuntu.yml#L43-L47

I did not find a Sourcery issue or PR that explicitly calls out the
gzip-vs-`.tar.xz` mismatch when searching their issues/PRs for `tar.xz`,
`gzip`, and `tar.gz`. The closest relevant release context is:
- release automation PR:
krzysztofzablocki/Sourcery#1254
- artifact structure issue:
krzysztofzablocki/Sourcery#1255
- Linux support PR:
krzysztofzablocki/Sourcery#1188

## Solidity binary name

The current Solidity release publishes the Linux CLI asset as
`solc-static-linux`:
https://github.com/argotorg/solidity/releases/tag/v0.8.35

Without `bin = "solc"`, the GitHub backend exposes the downloaded asset
name as the command name. The `bin` option renames/symlinks the
installed binary to the expected CLI command, `solc`, which matches
Solidity docs and existing user expectations.

## Testing
- `mise run build`
- `cargo test --all-features cli::args::backend_arg::tests::test_opts`
- `target/debug/mise registry | rg '^(flarectl|carp|dtm|kpack)\b' ||
true`
- local `target/debug/mise x ...` checks for all commented test commands
listed in the table
- version-specific checks for `codefresh@1.1.4`, `codefresh@0.89.6`,
`weave-gitops@0.39.1-rc.1`, `weave-gitops@0.38.0`,
`weave-gitops@0.37.0`, `github:carp-lang/Carp@0.6.0`, and
`github:carp-lang/Carp@0.5.5`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant