Live data from Hacker News

Asdf – An Extendable Version Manager

asdf-vm.com

41–50 of 100 posts

Re: Asdf – An Extendable Version Manager

#43
post #18

Conan ( https://conan.io/ ) can do the same thing, and I think it is quite a lot more versatile at doing things like that.

I know that Conan claims to be a generic packager and tool manager (https://docs.conan.io/en/latest/howtos/other_languages_packa...) but is anyone using it for that?

asdf seems like it has much wider support

Re: Asdf – An Extendable Version Manager

#44
post #41

So, this in contrast to docker? Is this for development or for deployment?

It's for switching versions of your local CLI tools quickly.

> asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language’s plugin!

For example:

    $ asdf global python 3.6.2
    $ python -V
    Python 3.6.2

    $ asdf local python 3.9.1
    $ python -V
    Python 3.9.1
"asdf local" stores the version to use for the current directory across shells, which is neat. "shell" is for the current session, and "global" is for the system.

The supported CLI tools is extendable via plugins: https://asdf-vm.com/#/plugins-all

Re: Asdf – An Extendable Version Manager

#45
post #7

I've been using it and has contributed to it, but I wish it supported out of the box GitHub-based release binaries as 90% of my code for different vendors was relatively the same, so, instead of having multiple identical repositories, I created one, which uses introspection [0]. I wish this was available out of the box to handle literary 90% of the tools. Also, I typically pair it with direnv [1] for even more magic.…

I've also written a handful of plugins for asdf, and this is exactly my experience also - I even used the asdf-hashicorp library as the basis for https://github.com/vmware-tanzu/asdf-carvel

Seems like a lot of duplicated work across all these plugins

Re: Asdf – An Extendable Version Manager

#46
My greatest asdf wish (well, I guess not greatest since I've never taken the time to submit a patch...) is for supporting pre-compiled Erlang (see https://github.com/asdf-vm/asdf-erlang/issues/120). It's often an adventure getting the whole team updated whenever we bump our Erlang version.

Re: Asdf – An Extendable Version Manager

#47
post #7

I've been using it and has contributed to it, but I wish it supported out of the box GitHub-based release binaries as 90% of my code for different vendors was relatively the same, so, instead of having multiple identical repositories, I created one, which uses introspection [0]. I wish this was available out of the box to handle literary 90% of the tools. Also, I typically pair it with direnv [1] for even more magic.…

Thanks for sharing direnv, I didn’t know about that but I’ve wished for it before. Great find :)

I use nix/direnv/lorri to manage all my projects. It’s easily the best def experience, once you get over the learning curve for nix.

Re: Asdf – An Extendable Version Manager

#48
post #41

So, this in contrast to docker? Is this for development or for deployment?

No, it's one system to have in your shell rc - that does the work of nvm, pyenv, rbenv etc.

Main benefit is you no longer need N half-baked utilities fighting over your path and shell completions, just asdf.

And plug-ins mostly re-use other tools, so it's both simple to set up and mostly avoids duplicating effort.

Re: Asdf – An Extendable Version Manager

#50
post #7

I've been using it and has contributed to it, but I wish it supported out of the box GitHub-based release binaries as 90% of my code for different vendors was relatively the same, so, instead of having multiple identical repositories, I created one, which uses introspection [0]. I wish this was available out of the box to handle literary 90% of the tools. Also, I typically pair it with direnv [1] for even more magic.…

Can this replace the broken and horrible tools of rbenv, pyenv, and pipenv? I shudder whenever a new version comes out what it does to my shell when I have a broken version (included as the latest from the output from pyenv globals or some such)
Post reply on HN