From b6dd76827ad332b6bd3dc26c83bf4e512643c26b Mon Sep 17 00:00:00 2001
From: jdx <216188+jdx@users.noreply.github.com>
Date: Sat, 23 Nov 2024 15:19:48 -0600
Subject: [PATCH] feat: migrate more tools away from asdf (#3170)
---
docs/dev-tools/backends/index.md | 2 +-
docs/dev-tools/backends/pipx.md | 2 +-
docs/registry.md | 29 +--
registry.toml | 46 ++--
remaining-asdf-plugins.txt | 400 +++++++++++++++++++++++++++++++
src/backend/pipx.rs | 1 -
6 files changed, 443 insertions(+), 37 deletions(-)
create mode 100644 remaining-asdf-plugins.txt
diff --git a/docs/dev-tools/backends/index.md b/docs/dev-tools/backends/index.md
index 639b492cd4..1161cb5b33 100644
--- a/docs/dev-tools/backends/index.md
+++ b/docs/dev-tools/backends/index.md
@@ -7,7 +7,7 @@ In addition to asdf plugins, you can also directly install CLIs with some packag
- [Cargo](/dev-tools/backends/cargo)
- [Go](/dev-tools/backends/go)
- [NPM](/dev-tools/backends/npm)
-- [Pipx](/dev-tools/backends/pipx)
+- [Pipx](/dev-tools/backends/pipx)
- [SPM](/dev-tools/backends/spm)
- [Ubi](/dev-tools/backends/ubi)
- [Vfox](/dev-tools/backends/vfox)
diff --git a/docs/dev-tools/backends/pipx.md b/docs/dev-tools/backends/pipx.md
index 69a646d42b..2db98e704d 100644
--- a/docs/dev-tools/backends/pipx.md
+++ b/docs/dev-tools/backends/pipx.md
@@ -1,4 +1,4 @@
-# pipx Backend
+# pipx Backend
You may install python packages directly from:
diff --git a/docs/registry.md b/docs/registry.md
index 4947ec8e21..83a2522b06 100644
--- a/docs/registry.md
+++ b/docs/registry.md
@@ -14,46 +14,43 @@ editLink: false
| adr-tools | [aqua:npryce/adr-tools](https://github.com/npryce/adr-tools) [asdf:https://gitlab.com/td7x/asdf/adr-tools](https://gitlab.com/td7x/asdf/adr-tools) |
| ag | [asdf:koketani/asdf-ag](https://github.com/koketani/asdf-ag) |
| age | [aqua:FiloSottile/age](https://github.com/FiloSottile/age) [asdf:threkk/asdf-age](https://github.com/threkk/asdf-age) |
-| age-plugin-yubikey | [asdf:joke/asdf-age-plugin-yubikey](https://github.com/joke/asdf-age-plugin-yubikey) |
+| age-plugin-yubikey | [ubi:str4d/age-plugin-yubikey](https://github.com/str4d/age-plugin-yubikey) [asdf:joke/asdf-age-plugin-yubikey](https://github.com/joke/asdf-age-plugin-yubikey) |
| agebox | [ubi:slok/agebox](https://github.com/slok/agebox) [asdf:slok/asdf-agebox](https://github.com/slok/asdf-agebox) |
| air | [aqua:air-verse/air](https://github.com/air-verse/air) [asdf:pdemagny/asdf-air](https://github.com/pdemagny/asdf-air) |
| aks-engine | [aqua:Azure/aks-engine](https://github.com/Azure/aks-engine) [asdf:robsonpeixoto/asdf-aks-engine](https://github.com/robsonpeixoto/asdf-aks-engine) |
| allure | [asdf:comdotlinux/asdf-allure](https://github.com/comdotlinux/asdf-allure) |
| alp | [aqua:tkuchiki/alp](https://github.com/tkuchiki/alp) [asdf:asdf-community/asdf-alp](https://github.com/asdf-community/asdf-alp) |
-| amass | [asdf:dhoeric/asdf-amass](https://github.com/dhoeric/asdf-amass) |
+| amass | [ubi:owasp-amass/amass](https://github.com/owasp-amass/amass) [asdf:dhoeric/asdf-amass](https://github.com/dhoeric/asdf-amass) |
| amazon-ecr-credential-helper | [aqua:awslabs/amazon-ecr-credential-helper](https://github.com/awslabs/amazon-ecr-credential-helper) [asdf:dex4er/asdf-amazon-ecr-credential-helper](https://github.com/dex4er/asdf-amazon-ecr-credential-helper) |
-| ambient | [asdf:jtakakura/asdf-ambient](https://github.com/jtakakura/asdf-ambient) |
| ansible-base | [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
| ant | [asdf:jackboespflug/asdf-ant](https://github.com/jackboespflug/asdf-ant) |
| apko | [aqua:chainguard-dev/apko](https://github.com/chainguard-dev/apko) [ubi:chainguard-dev/apko](https://github.com/chainguard-dev/apko) [asdf:omissis/asdf-apko](https://github.com/omissis/asdf-apko) |
| apollo-ios-cli | [asdf:MacPaw/asdf-apollo-ios-cli](https://github.com/MacPaw/asdf-apollo-ios-cli) |
| apollo-router | [ubi:apollographql/router](https://github.com/apollographql/router) [asdf:safx/asdf-apollo-router](https://github.com/safx/asdf-apollo-router) |
| apollo-rover | [ubi:apollographql/rover](https://github.com/apollographql/rover) |
-| arc | [asdf:ORCID/asdf-arc](https://github.com/ORCID/asdf-arc) |
| arduino-cli | [aqua:arduino/arduino-cli](https://github.com/arduino/arduino-cli) [asdf:egnor/asdf-arduino-cli](https://github.com/egnor/asdf-arduino-cli) |
| argc | [ubi:sigoden/argc](https://github.com/sigoden/argc) |
| argo | [aqua:argoproj/argo-workflows](https://github.com/argoproj/argo-workflows) [asdf:sudermanjr/asdf-argo](https://github.com/sudermanjr/asdf-argo) |
| argo-rollouts | [aqua:argoproj/argo-rollouts](https://github.com/argoproj/argo-rollouts) [asdf:abatilo/asdf-argo-rollouts](https://github.com/abatilo/asdf-argo-rollouts) |
| argocd | [ubi:argoproj/argo-cd](https://github.com/argoproj/argo-cd) [asdf:beardix/asdf-argocd](https://github.com/beardix/asdf-argocd) |
-| aria2 | [asdf:asdf-community/asdf-aria2](https://github.com/asdf-community/asdf-aria2) |
| asciidoctorj | [asdf:gliwka/asdf-asciidoctorj](https://github.com/gliwka/asdf-asciidoctorj) |
| assh | [asdf:zekker6/asdf-assh](https://github.com/zekker6/asdf-assh) |
| atlas | [aqua:ariga/atlas](https://github.com/ariga/atlas) [asdf:komi1230/asdf-atlas](https://github.com/komi1230/asdf-atlas) |
| atmos | [aqua:cloudposse/atmos](https://github.com/cloudposse/atmos) [asdf:cloudposse/asdf-atmos](https://github.com/cloudposse/asdf-atmos) |
| auto-doc | [asdf:looztra/asdf-auto-doc](https://github.com/looztra/asdf-auto-doc) |
-| aws-amplify-cli | [asdf:LozanoMatheus/asdf-aws-amplify-cli](https://github.com/LozanoMatheus/asdf-aws-amplify-cli) |
+| aws-amplify-cli | [ubi:aws-amplify/amplify-cli](https://github.com/aws-amplify/amplify-cli) [asdf:LozanoMatheus/asdf-aws-amplify-cli](https://github.com/LozanoMatheus/asdf-aws-amplify-cli) |
| aws-copilot | [aqua:aws/copilot-cli](https://github.com/aws/copilot-cli) [asdf:NeoHsu/asdf-copilot](https://github.com/NeoHsu/asdf-copilot) |
| aws-iam-authenticator | [aqua:kubernetes-sigs/aws-iam-authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) [asdf:zekker6/asdf-aws-iam-authenticator](https://github.com/zekker6/asdf-aws-iam-authenticator) |
| aws-nuke | [aqua:rebuy-de/aws-nuke](https://github.com/rebuy-de/aws-nuke) [asdf:bersalazar/asdf-aws-nuke](https://github.com/bersalazar/asdf-aws-nuke) |
-| aws-sam-cli | [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
+| aws-sam-cli | [pipx:aws-sam-cli](https://pypi.org/project/aws-sam-cli) [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
| aws-sso-cli | [aqua:synfinatic/aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) [asdf:adamcrews/asdf-aws-sso-cli](https://github.com/adamcrews/asdf-aws-sso-cli) |
| aws-vault | [aqua:99designs/aws-vault](https://github.com/99designs/aws-vault) [asdf:karancode/asdf-aws-vault](https://github.com/karancode/asdf-aws-vault) |
| awscli | [asdf:MetricMike/asdf-awscli](https://github.com/MetricMike/asdf-awscli) |
| awscli-local | [asdf:paulo-ferraz-oliveira/asdf-awscli-local](https://github.com/paulo-ferraz-oliveira/asdf-awscli-local) |
-| awsebcli | [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
-| awsls | [asdf:chessmango/asdf-awsls](https://github.com/chessmango/asdf-awsls) |
-| awsrm | [asdf:chessmango/asdf-awsrm](https://github.com/chessmango/asdf-awsrm) |
-| awsweeper | [asdf:chessmango/asdf-awsweeper](https://github.com/chessmango/asdf-awsweeper) |
+| awsebcli | [pipx:awsebcli](https://pypi.org/project/awsebcli) [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
+| awsls | [ubi:jckuester/awsls](https://github.com/jckuester/awsls) [asdf:chessmango/asdf-awsls](https://github.com/chessmango/asdf-awsls) |
+| awsrm | [ubi:jckuester/awsrm](https://github.com/jckuester/awsrm) [asdf:chessmango/asdf-awsrm](https://github.com/chessmango/asdf-awsrm) |
+| awsweeper | [ubi:jckuester/awsweeper](https://github.com/jckuester/awsweeper) [asdf:chessmango/asdf-awsweeper](https://github.com/chessmango/asdf-awsweeper) |
| azure-cli | [asdf:EcoMind/asdf-azure-cli](https://github.com/EcoMind/asdf-azure-cli) |
| azure-functions-core-tools | [asdf:daveneeley/asdf-azure-functions-core-tools](https://github.com/daveneeley/asdf-azure-functions-core-tools) |
| babashka | [asdf:pitch-io/asdf-babashka](https://github.com/pitch-io/asdf-babashka) |
@@ -81,11 +78,10 @@ editLink: false
| bpkg | [asdf:bpkg/asdf-bpkg](https://github.com/bpkg/asdf-bpkg) |
| brig | [asdf:Ibotta/asdf-brig](https://github.com/Ibotta/asdf-brig) |
| btrace | [asdf:joschi/asdf-btrace](https://github.com/joschi/asdf-btrace) |
-| buf | [ubi:bufbuild/buf](https://github.com/bufbuild/buf) [asdf:truepay/asdf-buf](https://github.com/truepay/asdf-buf) |
+| buf | [aqua:bufbuild/buf](https://github.com/bufbuild/buf) [ubi:bufbuild/buf](https://github.com/bufbuild/buf) [asdf:truepay/asdf-buf](https://github.com/truepay/asdf-buf) |
| buildpack | [asdf:johnlayton/asdf-buildpack](https://github.com/johnlayton/asdf-buildpack) |
| bun | [core:bun](https://mise.jdx.dev/lang/bun.html) |
| bundler | [asdf:jonathanmorley/asdf-bundler](https://github.com/jonathanmorley/asdf-bundler) |
-| cabal | [asdf:sestrella/asdf-ghcup](https://github.com/sestrella/asdf-ghcup) |
| caddy | [aqua:caddyserver/caddy](https://github.com/caddyserver/caddy) [asdf:salasrod/asdf-caddy](https://github.com/salasrod/asdf-caddy) |
| calendarsync | [asdf:FeryET/asdf-calendarsync](https://github.com/FeryET/asdf-calendarsync) |
| calicoctl | [aqua:projectcalico/calico/calicoctl](https://github.com/projectcalico/calico/calicoctl) [asdf:TheCubicleJockey/asdf-calicoctl](https://github.com/TheCubicleJockey/asdf-calicoctl) |
@@ -134,7 +130,7 @@ editLink: false
| codeql | [asdf:bored-engineer/asdf-codeql](https://github.com/bored-engineer/asdf-codeql) |
| coder | [aqua:coder/coder](https://github.com/coder/coder) [asdf:mise-plugins/asdf-coder](https://github.com/mise-plugins/asdf-coder) |
| colima | [ubi:abiosoft/colima](https://github.com/abiosoft/colima) [asdf:CrouchingMuppet/asdf-colima](https://github.com/CrouchingMuppet/asdf-colima) |
-| conan | [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
+| conan | [pipx:conan](https://pypi.org/project/conan) [asdf:amrox/asdf-pyapp](https://github.com/amrox/asdf-pyapp) |
| concourse | [aqua:concourse/concourse/concourse](https://github.com/concourse/concourse/concourse) [asdf:mattysweeps/asdf-concourse](https://github.com/mattysweeps/asdf-concourse) |
| conduit | [asdf:gmcabrita/asdf-conduit](https://github.com/gmcabrita/asdf-conduit) |
| conform | [asdf:skyzyx/asdf-conform](https://github.com/skyzyx/asdf-conform) |
@@ -250,7 +246,7 @@ editLink: false
| gcc-arm-none-eabi | [asdf:dlech/asdf-gcc-arm-none-eabi](https://github.com/dlech/asdf-gcc-arm-none-eabi) |
| gcloud | [asdf:jthegedus/asdf-gcloud](https://github.com/jthegedus/asdf-gcloud) |
| getenvoy | [asdf:asdf-community/asdf-getenvoy](https://github.com/asdf-community/asdf-getenvoy) |
-| ghc | [asdf:sestrella/asdf-ghcup](https://github.com/sestrella/asdf-ghcup) |
+| ghcup | [ubi:haskell/ghcup-hs](https://github.com/haskell/ghcup-hs) [asdf:sestrella/asdf-ghcup](https://github.com/sestrella/asdf-ghcup) |
| ghidra | [asdf:Honeypot95/asdf-ghidra](https://github.com/Honeypot95/asdf-ghidra) |
| ghorg | [aqua:gabrie30/ghorg](https://github.com/gabrie30/ghorg) [asdf:gbloquel/asdf-ghorg](https://github.com/gbloquel/asdf-ghorg) |
| ghq | [aqua:x-motemen/ghq](https://github.com/x-motemen/ghq) [asdf:kajisha/asdf-ghq](https://github.com/kajisha/asdf-ghq) |
@@ -325,7 +321,6 @@ editLink: false
| hivemind | [ubi:DarthSim/hivemind](https://github.com/DarthSim/hivemind) [go:github.com/DarthSim/hivemind](https://pkg.go.dev/github.com/DarthSim/hivemind) |
| hledger | [asdf:airtonix/asdf-hledger](https://github.com/airtonix/asdf-hledger) |
| hledger-flow | [asdf:airtonix/asdf-hledger-flow](https://github.com/airtonix/asdf-hledger-flow) |
-| hls | [asdf:sestrella/asdf-ghcup](https://github.com/sestrella/asdf-ghcup) |
| hostctl | [aqua:guumaster/hostctl](https://github.com/guumaster/hostctl) [asdf:svenluijten/asdf-hostctl](https://github.com/svenluijten/asdf-hostctl) |
| httpie-go | [aqua:nojima/httpie-go](https://github.com/nojima/httpie-go) [asdf:abatilo/asdf-httpie-go](https://github.com/abatilo/asdf-httpie-go) |
| hub | [aqua:mislav/hub](https://github.com/mislav/hub) [asdf:mise-plugins/asdf-hub](https://github.com/mise-plugins/asdf-hub) |
@@ -815,7 +810,7 @@ editLink: false
| zellij | [ubi:zellij-org/zellij](https://github.com/zellij-org/zellij) [asdf:chessmango/asdf-zellij](https://github.com/chessmango/asdf-zellij) |
| zephyr | [asdf:nsaunders/asdf-zephyr](https://github.com/nsaunders/asdf-zephyr) |
| zig | [core:zig](https://mise.jdx.dev/lang/zig.html) |
-| zigmod | [asdf:mise-plugins/asdf-zigmod](https://github.com/mise-plugins/asdf-zigmod) |
+| zigmod | [ubi:nektro/zigmod](https://github.com/nektro/zigmod) [asdf:mise-plugins/asdf-zigmod](https://github.com/mise-plugins/asdf-zigmod) |
| zola | [ubi:getzola/zola](https://github.com/getzola/zola) [asdf:salasrod/asdf-zola](https://github.com/salasrod/asdf-zola) |
| zoxide | [ubi:ajeetdsouza/zoxide](https://github.com/ajeetdsouza/zoxide) [asdf:nyrst/asdf-zoxide](https://github.com/nyrst/asdf-zoxide) |
| zprint | [asdf:carlduevel/asdf-zprint](https://github.com/carlduevel/asdf-zprint) |
diff --git a/registry.toml b/registry.toml
index a9379ac65f..ded375fdbd 100644
--- a/registry.toml
+++ b/registry.toml
@@ -22,7 +22,9 @@ adr-tools.test = ["which adr", "adr"]
ag.backends = ["asdf:koketani/asdf-ag"]
age.backends = ["aqua:FiloSottile/age", "asdf:threkk/asdf-age"]
age.test = ["age --version", "v{{version}}"]
-age-plugin-yubikey.backends = ["asdf:joke/asdf-age-plugin-yubikey"]
+age-plugin-yubikey.backends = ["ubi:str4d/age-plugin-yubikey", "asdf:joke/asdf-age-plugin-yubikey"]
+# test seems to fail on linux
+# age-plugin-yubikey.test = ["age-plugin-yubikey --version", "age-plugin-yubikey {{version}}"]
agebox.backends = ["ubi:slok/agebox", "asdf:slok/asdf-agebox"]
agebox.test = ["agebox --version", "v{{version}}"]
air.backends = ["aqua:air-verse/air", "asdf:pdemagny/asdf-air"]
@@ -33,40 +35,45 @@ allure.backends = ["asdf:comdotlinux/asdf-allure"]
allure.test = ["allure --version", "{{version}}"]
alp.backends = ["aqua:tkuchiki/alp", "asdf:asdf-community/asdf-alp"]
alp.test = ["alp --version", "{{version}}"]
-amass.backends = ["asdf:dhoeric/asdf-amass"]
+amass.backends = ["ubi:owasp-amass/amass", "asdf:dhoeric/asdf-amass"]
+amass.test = ["amass -version", "v{{version}}"]
amazon-ecr-credential-helper.backends = ["aqua:awslabs/amazon-ecr-credential-helper", "asdf:dex4er/asdf-amazon-ecr-credential-helper"]
-ambient.backends = ["asdf:jtakakura/asdf-ambient"]
+# this isn't working with pipx yet since it is missing ansible
+# ansible-base.backends = ["pipx:ansible-base[with=ansible]", "asdf:amrox/asdf-pyapp"]
ansible-base.backends = ["asdf:amrox/asdf-pyapp"]
ant.backends = ["asdf:jackboespflug/asdf-ant"]
apko.backends = ["aqua:chainguard-dev/apko", "ubi:chainguard-dev/apko", "asdf:omissis/asdf-apko"]
apollo-ios-cli.backends = ["asdf:MacPaw/asdf-apollo-ios-cli"]
apollo-router.backends = ["ubi:apollographql/router", "asdf:safx/asdf-apollo-router"]
apollo-rover.backends = ["ubi:apollographql/rover"]
-arc.backends = ["asdf:ORCID/asdf-arc"]
arduino-cli.backends = ["aqua:arduino/arduino-cli", "asdf:egnor/asdf-arduino-cli"]
argc.backends = ["ubi:sigoden/argc"]
argo.backends = ["aqua:argoproj/argo-workflows", "asdf:sudermanjr/asdf-argo"]
argo-rollouts.backends = ["aqua:argoproj/argo-rollouts", "asdf:abatilo/asdf-argo-rollouts"]
argocd.backends = ["ubi:argoproj/argo-cd[exe=argocd]", "asdf:beardix/asdf-argocd"]
-aria2.backends = ["asdf:asdf-community/asdf-aria2"]
asciidoctorj.backends = ["asdf:gliwka/asdf-asciidoctorj"]
assh.backends = ["asdf:zekker6/asdf-assh"]
atlas.backends = ["aqua:ariga/atlas", "asdf:komi1230/asdf-atlas"]
atmos.backends = ["aqua:cloudposse/atmos", "asdf:cloudposse/asdf-atmos"]
auto-doc.backends = ["asdf:looztra/asdf-auto-doc"]
-aws-amplify-cli.backends = ["asdf:LozanoMatheus/asdf-aws-amplify-cli"]
+aws-amplify-cli.backends = ["ubi:aws-amplify/amplify-cli[exe=amplify]", "asdf:LozanoMatheus/asdf-aws-amplify-cli"]
aws-copilot.backends = ["aqua:aws/copilot-cli", "asdf:NeoHsu/asdf-copilot"]
aws-iam-authenticator.backends = ["aqua:kubernetes-sigs/aws-iam-authenticator", "asdf:zekker6/asdf-aws-iam-authenticator"]
aws-nuke.backends = ["aqua:rebuy-de/aws-nuke", "asdf:bersalazar/asdf-aws-nuke"]
-aws-sam-cli.backends = ["asdf:amrox/asdf-pyapp"]
+aws-sam-cli.backends = ["pipx:aws-sam-cli", "asdf:amrox/asdf-pyapp"]
+aws-sam-cli.test = ["sam --version", "SAM CLI, version {{version}}"]
aws-sso-cli.backends = ["aqua:synfinatic/aws-sso-cli", "asdf:adamcrews/asdf-aws-sso-cli"]
aws-vault.backends = ["aqua:99designs/aws-vault", "asdf:karancode/asdf-aws-vault"]
awscli.backends = ["asdf:MetricMike/asdf-awscli"]
awscli-local.backends = ["asdf:paulo-ferraz-oliveira/asdf-awscli-local"]
-awsebcli.backends = ["asdf:amrox/asdf-pyapp"]
-awsls.backends = ["asdf:chessmango/asdf-awsls"]
-awsrm.backends = ["asdf:chessmango/asdf-awsrm"]
-awsweeper.backends = ["asdf:chessmango/asdf-awsweeper"]
+awsebcli.backends = ["pipx:awsebcli", "asdf:amrox/asdf-pyapp"]
+awsebcli.test = ["eb --version", "EB CLI {{version}}"]
+awsls.backends = ["ubi:jckuester/awsls", "asdf:chessmango/asdf-awsls"]
+awsls.test = ["awsls --version", "version: {{version}}"]
+awsrm.backends = ["ubi:jckuester/awsrm", "asdf:chessmango/asdf-awsrm"]
+awsrm.test = ["awsrm --version", "version: {{version}}"]
+awsweeper.backends = ["ubi:jckuester/awsweeper", "asdf:chessmango/asdf-awsweeper"]
+awsweeper.test = ["awsweeper --version", "version: {{version}}"]
azure-cli.backends = ["asdf:EcoMind/asdf-azure-cli"]
azure-functions-core-tools.backends = ["asdf:daveneeley/asdf-azure-functions-core-tools"]
babashka.backends = ["asdf:pitch-io/asdf-babashka"]
@@ -95,12 +102,13 @@ boundary.backends = ["aqua:hashicorp/boundary", "asdf:asdf-community/asdf-hashic
bpkg.backends = ["asdf:bpkg/asdf-bpkg"]
brig.backends = ["asdf:Ibotta/asdf-brig"]
btrace.backends = ["asdf:joschi/asdf-btrace"]
-buf.backends = ["ubi:bufbuild/buf", "asdf:truepay/asdf-buf"]
+buf.backends = ["aqua:bufbuild/buf", "ubi:bufbuild/buf", "asdf:truepay/asdf-buf"]
+# test fails on windows
+# buf.test = ["buf --version", "{{version}}"]
buildpack.backends = ["asdf:johnlayton/asdf-buildpack"]
bun.backends = ["core:bun"]
bun.test = ["bun --version", "{{version}}"]
bundler.backends = ["asdf:jonathanmorley/asdf-bundler"]
-cabal.backends = ["asdf:sestrella/asdf-ghcup"]
caddy.backends = ["aqua:caddyserver/caddy", "asdf:salasrod/asdf-caddy"]
calendarsync.backends = ["asdf:FeryET/asdf-calendarsync"]
calicoctl.backends = ["aqua:projectcalico/calico/calicoctl", "asdf:TheCubicleJockey/asdf-calicoctl"]
@@ -149,7 +157,8 @@ codefresh.backends = ["asdf:gurukulkarni/asdf-codefresh"]
codeql.backends = ["asdf:bored-engineer/asdf-codeql"]
coder.backends = ["aqua:coder/coder", "asdf:mise-plugins/asdf-coder"]
colima.backends = ["ubi:abiosoft/colima", "asdf:CrouchingMuppet/asdf-colima"]
-conan.backends = ["asdf:amrox/asdf-pyapp"]
+conan.backends = ["pipx:conan", "asdf:amrox/asdf-pyapp"]
+conan.test = ["conan --version", "Conan version {{version}}"]
concourse.backends = ["aqua:concourse/concourse/concourse", "asdf:mattysweeps/asdf-concourse"]
conduit.backends = ["asdf:gmcabrita/asdf-conduit"]
conform.backends = ["asdf:skyzyx/asdf-conform"]
@@ -273,7 +282,10 @@ gauche.backends = ["asdf:sakuro/asdf-gauche"]
gcc-arm-none-eabi.backends = ["asdf:dlech/asdf-gcc-arm-none-eabi"]
gcloud.backends = ["asdf:jthegedus/asdf-gcloud"]
getenvoy.backends = ["asdf:asdf-community/asdf-getenvoy"]
-ghc.backends = ["asdf:sestrella/asdf-ghcup"]
+ghcup.alias = ["cabal", "ghc", "hls"]
+ghcup.backends = ["ubi:haskell/ghcup-hs[exe=ghcup]", "asdf:sestrella/asdf-ghcup"]
+ghcup.os = ["linux", "macos"]
+ghcup.test = ["ghcup --version", "The GHCup Haskell installer, version {{version}}"]
ghidra.backends = ["asdf:Honeypot95/asdf-ghidra"]
ghorg.backends = ["aqua:gabrie30/ghorg", "asdf:gbloquel/asdf-ghorg"]
ghq.backends = ["aqua:x-motemen/ghq", "asdf:kajisha/asdf-ghq"]
@@ -361,7 +373,6 @@ hishtory.backends = ["asdf:asdf-community/asdf-hishtory"]
hivemind.backends = ["ubi:DarthSim/hivemind", "go:github.com/DarthSim/hivemind"]
hledger.backends = ["asdf:airtonix/asdf-hledger"]
hledger-flow.backends = ["asdf:airtonix/asdf-hledger-flow"]
-hls.backends = ["asdf:sestrella/asdf-ghcup"]
hostctl.backends = ["aqua:guumaster/hostctl", "asdf:svenluijten/asdf-hostctl"]
httpie-go.backends = ["aqua:nojima/httpie-go", "asdf:abatilo/asdf-httpie-go"]
httpie-go.os = ["linux", "macos"]
@@ -880,7 +891,8 @@ zbctl.backends = ["asdf:camunda-community-hub/asdf-zbctl"]
zellij.backends = ["ubi:zellij-org/zellij", "asdf:chessmango/asdf-zellij"]
zephyr.backends = ["asdf:nsaunders/asdf-zephyr"]
zig.backends = ["core:zig"]
-zigmod.backends = ["asdf:mise-plugins/asdf-zigmod"]
+zigmod.backends = ["ubi:nektro/zigmod", "asdf:mise-plugins/asdf-zigmod"]
+zigmod.test = ["zigmod version", "{{version}}"]
zola.backends = ["ubi:getzola/zola", "asdf:salasrod/asdf-zola"]
zoxide.backends = ["ubi:ajeetdsouza/zoxide", "asdf:nyrst/asdf-zoxide"]
zprint.backends = ["asdf:carlduevel/asdf-zprint"]
diff --git a/remaining-asdf-plugins.txt b/remaining-asdf-plugins.txt
new file mode 100644
index 0000000000..3abb9dec81
--- /dev/null
+++ b/remaining-asdf-plugins.txt
@@ -0,0 +1,400 @@
+asdf:pitch-io/asdf-babashka
+asdf:boatkit-io/asdf-balena-cli
+asdf:pcrockett/asdf-bashly
+asdf:vhdirk/asdf-bat-extras
+asdf:johnlayton/asdf-batect
+asdf:timgluz/asdf-bats
+asdf:rajatvig/asdf-bazel
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:benthosdev/benthos-asdf
+asdf:virtualroot/asdf-bfs
+asdf:vixus0/asdf-bitwarden
+asdf:asdf-community/asdf-bitwarden-secrets-manager
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:bpkg/asdf-bpkg
+asdf:Ibotta/asdf-brig
+asdf:joschi/asdf-btrace
+asdf:johnlayton/asdf-buildpack
+asdf:jonathanmorley/asdf-bundler
+asdf:FeryET/asdf-calendarsync
+asdf:barmac/asdf-camunda-modeler
+asdf:mise-plugins/asdf-cargo-make
+asdf:susurri/asdf-carp
+asdf:younke/asdf-carthage
+asdf:asdf-community/asdf-ccache
+asdf:carnei-ro/asdf-certstrap
+asdf:mattysweeps/asdf-cf
+asdf:bosmak/asdf-checkov
+asdf:asdf-community/asdf-chezscheme
+asdf:evhan/asdf-chicken
+asdf:schinckel/asdf-chromedriver
+asdf:ORCID/asdf-cidr-merger
+asdf:ORCID/asdf-cidrchk
+asdf:NitriKx/asdf-cilium-hubble
+asdf:higebu/asdf-llvm
+asdf:higebu/asdf-llvm
+asdf:higebu/asdf-llvm
+asdf:alexgo-io/asdf-clarinet
+asdf:tinybirdco/asdf-clickhouse
+asdf:rynkowsg/asdf-clj-kondo
+asdf:abogoyavlensky/asdf-cljstyle
+asdf:asdf-community/asdf-clojure
+asdf:threkk/asdf-cloudflared
+asdf:kahun/asdf-clusterawsadm
+asdf:pfnet-research/asdf-clusterctl
+asdf:asdf-community/asdf-cmake
+asdf:salasrod/asdf-cockroach
+asdf:ronnnnn/asdf-cocoapods
+asdf:gurukulkarni/asdf-codefresh
+asdf:bored-engineer/asdf-codeql
+asdf:gmcabrita/asdf-conduit
+asdf:skyzyx/asdf-conform
+asdf:cgroschupp/asdf-container-diff
+asdf:shawon-crosen/asdf-cookiecutter
+asdf:vladlosev/asdf-copper
+asdf:gingerhot/asdf-coq
+asdf:s3than/asdf-coredns
+asdf:jiahuili430/asdf-coursier
+asdf:dmpe/asdf-crane
+asdf:sqtran/asdf-crc
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:joke/asdf-crossplane-cli
+asdf:asdf-community/asdf-crystal
+asdf:xeedio/asdf-cyclonedx
+asdf:MontakOleg/asdf-danger-js
+asdf:asdf-community/asdf-dapr-cli
+asdf:PatOConnor43/asdf-dart
+asdf:CrouchingMuppet/asdf-daytona
+asdf:paxosglobal/asdf-dep
+asdf:depot/asdf-depot
+asdf:aaaaninja/asdf-dhall
+asdf:jtakakura/asdf-digdag
+asdf:cross-language-cpp/asdf-djinni
+asdf:sylph01/asdf-dmd
+asdf:yilas/asdf-docker-compose-v1
+asdf:xataz/asdf-docker-slim
+asdf:joschi/asdf-doctoolchain
+asdf:jtakakura/asdf-dome
+asdf:takutakahashi/asdf-doppler
+asdf:hensou/asdf-dotnet
+asdf:emersonsoares/asdf-dotnet-core
+asdf:asdf-community/asdf-dotty
+asdf:zhenyuanlau/asdf-dtm
+asdf:fwfurtado/asdf-dvc
+asdf:nsaputro/asdf-monaco
+asdf:asdf-community/asdf-elasticsearch
+asdf:mise-plugins/mise-elixir
+asdf:juantascon/asdf-elixir-ls
+asdf:asdf-community/asdf-elm
+asdf:yuokada/asdf-embulk
+asdf:RobLoach/asdf-emsdk
+asdf:zekker6/asdf-envcli
+asdf:smashedtoatoms/asdf-ephemeral-postgres
+asdf:fxsalazar/asdf-esc
+asdf:asdf-community/asdf-esy
+asdf:lwiechec/asdf-eza
+asdf:acj/asdf-ffmpeg
+asdf:younke/asdf-figma-export
+asdf:jthegedus/asdf-firebase
+asdf:log2/asdf-flamingo
+asdf:mise-plugins/asdf-flarectl
+asdf:TheOpenDictionary/asdf-flatc
+asdf:oae/asdf-flutter
+asdf:FlutterGen/asdf-fluttergen
+asdf:stefansedich/asdf-fluxctl
+asdf:junminahn/asdf-flyway
+asdf:carnei-ro/asdf-func-e
+asdf:sighupio/asdf-furyctl
+asdf:iul1an/asdf-gallery-dl
+asdf:offbyone/asdf-gam
+asdf:sakuro/asdf-gauche
+asdf:dlech/asdf-gcc-arm-none-eabi
+asdf:jthegedus/asdf-gcloud
+asdf:asdf-community/asdf-getenvoy
+asdf:Honeypot95/asdf-ghidra
+asdf:jimmidyson/asdf-ginkgo
+asdf:0ghny/asdf-gitconfig
+asdf:particledecay/asdf-glab
+asdf:bradym/asdf-glen
+asdf:halilkaya/asdf-glooctl
+asdf:ryodocx/asdf-go-getter
+asdf:dguihal/asdf-go-jira
+asdf:jwillker/asdf-go-junit-report
+asdf:yacchi/asdf-go-sdk
+asdf:therounds-contrib/asdf-goconvey
+asdf:joschi/asdf-gomigrate
+asdf:asdf-community/asdf-graalvm
+asdf:rfrancis/asdf-gradle
+asdf:joschi/asdf-gradle-profiler
+asdf:weibemoura/asdf-grails
+asdf:cometkim/asdf-grain
+asdf:ouest/asdf-grex
+asdf:weibemoura/asdf-groovy
+asdf:indiebrain/asdf-guile
+asdf:scudelletti/asdf-hamler
+asdf:asdf-community/asdf-haskell
+asdf:gurukulkarni/asdf-hasura
+asdf:asdf-community/asdf-haxe
+asdf:chessmango/asdf-hcloud
+asdf:Antiarchitect/asdf-helm-cr
+asdf:tablexi/asdf-helm-ct
+asdf:dex4er/asdf-helm-diff
+asdf:mise-plugins/mise-heroku-cli
+asdf:raimon49/asdf-hey
+asdf:asdf-community/asdf-hishtory
+asdf:airtonix/asdf-hledger
+asdf:airtonix/asdf-hledger-flow
+asdf:brentjanderson/asdf-hygen
+asdf:triangletodd/asdf-ibmcloud
+asdf:asdf-community/asdf-idris
+asdf:asdf-community/asdf-idris2
+asdf:mangalakader/asdf-imagemagick
+asdf:nlamirault/asdf-inlets
+asdf:mracos/asdf-io
+asdf:Jakski/asdf-janet
+asdf:beardix/asdf-jb
+asdf:jbangdev/jbang-asdf
+asdf:LozanoMatheus/asdf-jfrog-cli
+asdf:joschi/asdf-jib
+asdf:skyzyx/asdf-jmespath
+asdf:comdotlinux/asdf-jmeter
+asdf:Banno/asdf-jsonnet
+asdf:rkyleg/asdf-julia
+asdf:k14s/asdf-k14s
+asdf:xanmanning/asdf-k3kcli
+asdf:dmpe/asdf-k3s
+asdf:ueisele/asdf-kafka
+asdf:douglasdgoulart/asdf-kcat
+asdf:joschi/asdf-kcctl
+asdf:starkers/asdf-kcl
+asdf:comdotlinux/asdf-ki
+asdf:joke/asdf-kn
+asdf:susurri/asdf-koka
+asdf:asdf-community/asdf-kotlin
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:asdf-community/asdf-kpack-cli
+asdf:nlamirault/asdf-kpt
+asdf:ohkrab/asdf-krab
+asdf:edgelevel/asdf-kscript
+asdf:Banno/asdf-ksonnet
+asdf:janpieper/asdf-ksops
+asdf:esensar/asdf-ktlint
+asdf:jimmidyson/asdf-kube-code-generator
+asdf:jimmidyson/asdf-kube-controller-tools
+asdf:looztra/asdf-kubectl-bindrole
+asdf:ezcater/asdf-kubectl-buildkit
+asdf:ganta/asdf-kubectl-kots
+asdf:kvokka/asdf-kubefedctl
+asdf:Claywd/asdf-kubefirst
+asdf:virtualstaticvoid/asdf-kubent
+asdf:stefansedich/asdf-kubeseal
+asdf:CodeReaper/asdf-lane
+asdf:asdf-community/asdf-lean
+asdf:miorimmax/asdf-lein
+asdf:asdf-community/asdf-lfe
+asdf:jonasb/asdf-libsql-server
+asdf:MacPaw/asdf-license-plist
+asdf:asdf-community/asdf-link
+asdf:kforsthoevel/asdf-linkerd
+asdf:pdemagny/asdf-liqoctl
+asdf:saliougaye/asdf-liquibase
+asdf:higebu/asdf-llvm
+asdf:higebu/asdf-llvm
+asdf:LogtalkDotOrg/asdf-logtalk
+asdf:comdotlinux/asdf-loki-logcli
+asdf:Stratus3D/asdf-lua
+asdf:smashedtoatoms/asdf-luaJIT
+asdf:cometkim/asdf-lucy
+asdf:dotanuki-labs/asdf-maestro
+asdf:yacchi/asdf-make
+asdf:anweber/asdf-mani
+asdf:jfreeland/asdf-mark
+asdf:mise-plugins/asdf-maven
+asdf:penpyt/asdf-mc
+asdf:cipherstash/asdf-mdbook
+asdf:cipherstash/asdf-mdbook-linkcheck
+asdf:chessmango/asdf-melt
+asdf:furkanural/asdf-memcached
+asdf:susurri/asdf-mercury
+asdf:asdf-community/asdf-meson
+asdf:weibemoura/asdf-micronaut
+asdf:asdf-community/asdf-mill
+asdf:aeons/asdf-minio
+asdf:mint-lang/asdf-mint
+asdf:metalbear-co/asdf-mirrord
+asdf:NeoHsu/asdf-mitmproxy
+asdf:asdf-community/asdf-mlton
+asdf:MontakOleg/asdf-mockolo
+asdf:nyuyuyu/asdf-monarch
+asdf:itspngu/asdf-mongo-tools
+asdf:sylph01/asdf-mongodb
+asdf:itspngu/asdf-mongosh
+asdf:SoriUR/asdf-mutanus
+asdf:joschi/asdf-mvnd
+asdf:iroddis/asdf-mysql
+asdf:mfakane/asdf-nano
+asdf:Dpbm/asdf-nasm
+asdf:asdf-community/asdf-neko
+asdf:dmpe/asdf-nerdctl
+asdf:asdf-community/asdf-nim
+asdf:asdf-community/asdf-hashicorp
+asdf:dex4er/asdf-nsc
+asdf:dylanrayboss/asdf-oapi-codegen
+asdf:sqtran/asdf-oc
+asdf:asdf-community/asdf-ocaml
+asdf:yasn77/asdf-oci
+asdf:jtakakura/asdf-odin
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:jtakakura/asdf-onyx
+asdf:asdf-community/asdf-opam
+asdf:zekker6/asdf-faas-cli
+asdf:smashedtoatoms/asdf-openresty
+asdf:randikabanura/asdf-opensearch
+asdf:iul1an/asdf-opensearch-cli
+asdf:hhemied/asdf-openshift-install
+asdf:ORCID/asdf-opsgenie-lamp
+asdf:nlamirault/asdf-osm
+asdf:davidecavestro/asdf-osqueryi
+asdf:abatilo/asdf-pachctl
+asdf:Fbrisset/asdf-pandoc
+asdf:airtonix/asdf-patat
+asdf:1oglop1/asdf-pdm
+asdf:MontakOleg/asdf-periphery
+asdf:ouest/asdf-perl
+asdf:asdf-community/asdf-php
+asdf:kogeletey/asdf-pipelight
+asdf:mise-plugins/mise-pipenv
+asdf:yozachar/asdf-pipx
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:tvon/asdf-podman
+asdf:mise-plugins/mise-poetry
+asdf:knu/asdf-postgis
+asdf:smashedtoatoms/asdf-postgres
+asdf:dex4er/asdf-powerline-go
+asdf:daveneeley/asdf-powershell-core
+asdf:asdf-community/asdf-promtool
+asdf:dylanrayboss/asdf-protoc-gen-connect-go
+asdf:pbr0ck3r/asdf-protoc-gen-go-grpc
+asdf:pbr0ck3r/asdf-protoc-gen-grpc-web
+asdf:pbr0ck3r/asdf-protoc-gen-js
+asdf:augustobmoura/asdf-protonge
+asdf:nsaunders/asdf-psc-package
+asdf:GoNZooo/asdf-purerl
+asdf:jrrom/asdf-purescript
+asdf:nsaunders/asdf-purty
+asdf:moritz-makandra/asdf-plugin-qdns
+asdf:asdf-community/asdf-quarkus
+asdf:asdf-community/asdf-r
+asdf:mise-plugins/asdf-rabbitmq
+asdf:asdf-community/asdf-racket
+asdf:m-dango/asdf-raku
+asdf:abinet/asdf-rancher
+asdf:Stratus3D/asdf-rebar
+asdf:FairwindsOps/asdf-reckoner
+asdf:smashedtoatoms/asdf-redis
+asdf:NeoHsu/asdf-redis-cli
+asdf:chessmango/asdf-redo
+asdf:sudermanjr/asdf-redskyctl
+asdf:xataz/asdf-restic
+asdf:abinet/asdf-riff
+asdf:asdf-community/asdf-rlwrap
+asdf:kichiemon/asdf-rome
+asdf:carlduevel/asdf-rstash
+asdf:code-lever/asdf-rust
+asdf:smashedtoatoms/asdf-sbcl
+asdf:bram2000/asdf-sbt
+asdf:asdf-community/asdf-scala
+asdf:asdf-community/asdf-scala-cli
+asdf:brandon-welsch/asdf-scalingo-cli
+asdf:software-mansion/asdf-scarb
+asdf:skyzyx/asdf-scenery
+asdf:davidecavestro/asdf-schemacrawler
+asdf:robzr/asdf-scie-pants
+asdf:susurri/asdf-seed7
+asdf:brentjanderson/asdf-semgrep
+asdf:junminahn/asdf-semtag
+asdf:mathew-fleisch/asdf-semver
+asdf:asdf-community/asdf-hashicorp
+asdf:asdf-community/asdf-hashicorp
+asdf:pdemagny/asdf-serverless
+asdf:pmalek/mise-setup-envtest
+asdf:luizm/asdf-shfmt
+asdf:valian-ca/asdf-shorebird
+asdf:aws/asdf-smithy
+asdf:samontea/asdf-smlnj
+asdf:nirfuchs/asdf-snyk
+asdf:chessmango/asdf-soft-serve
+asdf:diegodorado/asdf-solidity
+asdf:Nick-Triller/asdf-sonobuoy
+asdf:gr1m0h/asdf-soracom
+asdf:younke/asdf-sourcery
+asdf:jrrom/asdf-spago
+asdf:joshuaballoch/asdf-spark
+asdf:joschi/asdf-spring-boot
+asdf:cometkim/asdf-sqldef
+asdf:cLupus/asdf-sqlite
+asdf:xanmanning/asdf-sshuttle
+asdf:foundry-rs/asdf-starknet-foundry
+asdf:nikever/asdf-starport
+asdf:log2/asdf-step
+asdf:placeholder-soft/asdf-sui
+asdf:fcrespo82/asdf-swift
+asdf:MacPaw/asdf-swift-package-list
+asdf:younke/asdf-swiftformat
+asdf:younke/asdf-swiftgen
+asdf:klundberg/asdf-swiftlint
+asdf:mracos/asdf-swiprolog
+asdf:nwillc/syncher
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:johnhamelink/asdf-tekton-cli
+asdf:MaloPolese/asdf-teleport-community
+asdf:highb/asdf-teleport-ent
+asdf:eko/asdf-temporalite
+asdf:asdf-community/asdf-hashicorp
+asdf:asdf-community/asdf-hashicorp
+asdf:iul1an/asdf-tfswitch
+asdf:alisaifee/asdf-thrift
+asdf:mise-plugins/mise-tiny
+asdf:Fbrisset/asdf-tinytex
+asdf:gabitchov/asdf-titan
+asdf:0ghny/asdf-tlsgcli
+asdf:Dabolus/asdf-tmux
+asdf:mbutov/asdf-tomcat
+asdf:elementalvoid/asdf-tonnage
+asdf:Dabolus/asdf-traefik
+asdf:virtualstaticvoid/asdf-tsuru
+asdf:asdf-community/asdf-tuist
+asdf:ORCID/asdf-transifex
+asdf:vmware-tanzu/tanzu-plug-in-for-asdf
+asdf:susurri/asdf-unison
+asdf:ORCID/asdf-upt
+asdf:jimmidyson/asdf-upx
+asdf:jthegedus/asdf-v
+asdf:pdemagny/asdf-vela
+asdf:pdemagny/asdf-velad
+asdf:tsuyoshicho/asdf-vim
+asdf:tuist/asdf-virtualos
+asdf:asdf-community/asdf-hashicorp
+asdf:ikuradon/asdf-vultr-cli
+asdf:coolreader18/asdf-wasi-sdk
+asdf:tachyonicbytes/asdf-wasm3
+asdf:jtakakura/asdf-wasm4
+asdf:deas/asdf-weave-gitops
+asdf:jtakakura/asdf-wren-cli
+asdf:ivanvc/asdf-wrk
+asdf:NeoHsu/asdf-wtfutil
+asdf:mise-plugins/asdf-xcbeautify
+asdf:younke/asdf-xchtmlreport
+asdf:younke/asdf-xcodegen
+asdf:younke/asdf-xcodes
+asdf:MacPaw/asdf-xcresultparser
+asdf:particledecay/asdf-yadm
+asdf:ericcornelissen/asdf-yamllint
+asdf:FeryET/asdf-yamlscript
+asdf:mise-plugins/asdf-yarn
+asdf:aaaaninja/asdf-yay
+asdf:iul1an/asdf-youtube-dl
+asdf:duhow/asdf-yt-dlp
+asdf:camunda-community-hub/asdf-zbctl
+asdf:nsaunders/asdf-zephyr
diff --git a/src/backend/pipx.rs b/src/backend/pipx.rs
index a3297b34c4..1ab769490b 100644
--- a/src/backend/pipx.rs
+++ b/src/backend/pipx.rs
@@ -86,7 +86,6 @@ impl Backend for PIPXBackend {
tv: ToolVersion,
) -> eyre::Result {
let config = Config::try_get()?;
- SETTINGS.ensure_experimental("pipx backend")?;
let pipx_request = self
.tool_name()
.parse::()?