Manage multiple runtime versions with a single CLI tool
と、いうもの。
anyenv的なものだけど、プラグインで拡張できてどんなツールでもどんなバージョンでも入れられる、という雰囲気を感じる。
Homebrewならスッと入るし、aptもdnfもあるのでLinuxな環境でもスッと入りそう。 シェルとツールでの組み合わせによるサポートのバリエーションもあるので、私の使っているFishがない!!というケースがよくあるんだけど、そういうところもカバーされていてすごいなと思った。
asdf-vm/asdf-plugins: Central plugin repository for asdf
有志が作ってくれているプラグインがむちゃくちゃあって、バージョン依存しそうなツールなんかは全部asdfでカバーできるんじゃないかという気もする。
実際に私が遭遇した場面としては
kubectl create job --from=cronjob/foobar foobar-test
をしようとしたときに、Clientが1.22、Serverが1.19だったためにv1betaなんてないよ!といったエラーが出てしまい困ったケース。
Clientのバージョンを1.19にするか、Serverのバージョンを1.22に上げれば解消するんだろうな〜〜と思っているところで、asdfの存在を教えてもらった。
$ asdf plugin-add kubectl
$ asdf install kubectl 1.19.14
$ asdf global kubectl 1.19.14