Live data from Hacker News

Install Asdf: One Runtime Manager to Rule All Dev Environments

jdsalaro.com

91–100 of 132 posts

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#91
post #68

Earlier quoted context omitted.

https://en.wikipedia.org/wiki/Another_System_Definition_Faci... (it's bit like Python stealing the name of a CL compiler ...)

asdf is not Python specific.

Correct, asdf will work with other Common Lisp compilers.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#92
post #87

Earlier quoted context omitted.

> Just as one starts getting popular ... asdf hasn't just started getting popular. It's been popular for a long time already. IIRC I started using it ~8 years ago (~2016). asdf has been around since 2014. I believe Mise (rtx) has been around for a couple of years already too.

Fair. Honestly, I hadn't heard of it until about a year ago, up until then I was using pyenv and rbenv independently.

Same here. Never heard of it until a few months ago when I got back into Ruby on Rails after 12 years.

Also, contrary to the other comments in this chain I don't find it particularly slow..

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#93

Earlier quoted context omitted.

I recently started using https://github.com/prefix-dev/pixi for Python projects. I really love it so far, but this tool looks a bit more mature, which makes sense considering pixi is relatively new.

> I recently started using https://github.com/prefix-dev/pixi for Python projects Why is it based on the Conda ecosystem? Do you happen to know? I assume it's for portability, but that sounds heavy.

For as much improvement as there has been with what can be distributed via PyPI, there are still some domains that have gnarlier dependencies than wheels happily handle alone, and you either need to reach for the system package manager (and loose the ability to really control the dependency environment from that mismatch), or take advantage of the Conda ecosystem.

My org does a lot of work combining machine learning with oceanographic and climate modeling, which are both domains that have deep dependency chains that don't always mesh well, especially as our researchers mix in R and other languages as the same time, and the Conda ecosystem helps us a ton with that, but there are issues that `conda` and `mamba` don't help us out with.

Pixi takes a swing at some of what the Conda ecosystem hasn't been great at (at least without a lot of manual custom ceremony) that Cargo, Poetry, Pipenv, PDM, and other dependency and workflow management tools have demonstrated can be done such as lock files, cross platform dependency management, task running, and defining multiple related environments.

What's really cool when you have a mix of projects, Pixi can work almost entirely PyPI native out of a `pyproject.toml`, other than installing Python from Conda-Forge, so you can mix and match environments but stay with the same tool. https://prefix.dev/blog/using_python_projects_with_pixi docs: https://pixi.sh/latest/advanced/pyproject_toml/

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#94
post #12

Because of the insanity of python versions, paths, wheels etc and tiredness of spending time getting poetry install to work for project X due to also needing a full rust and c++ toolchain for some dependency etc.. .. I run everything for a project in a container. Each project then matches perfectly the container actually used in production, so if it works there, it also works on my machine. I just volume mount the pr…

Whish there were some CLI to speed up this process actually. Just cd:ing into a folder should pull everything down for you to run iex/irb/node/etc as if it was native but running through the container.

Nix with direnv does that, but without Docker.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#96
post #63

I've used asdf for years, but recently switched to https://github.com/jdx/mise It's a drop-in replacement for asdf, but I prefer some of the nice features it has to offer. See: https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

No disrespect to mise but this what’s so frustrating about the industry. Just as one starts getting popular, some people move on to something “better”.

You don’t have to stop using asdf if you like it.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#97

Because of the insanity of python versions, paths, wheels etc and tiredness of spending time getting poetry install to work for project X due to also needing a full rust and c++ toolchain for some dependency etc.. .. I run everything for a project in a container. Each project then matches perfectly the container actually used in production, so if it works there, it also works on my machine. I just volume mount the pr…

The sheer amount of wasted time is hard to comprehend. How many man-hounrs or rather man-centuries have we spent trying to make python fast and trying to install it?. We just keep on polishing that turd.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#98
post #74

Out of curiosity, how many dev environments do folks use? Is this for reproducible environments shared by members of a team or company? For a single user with one development machine, simply having say a time-machine backup could be sufficient. I haven't had challenges for personal projects where details mattered. e.g. a Maven pom.xml, or Go modules/packages was sufficient for my needs. Historically I'd only cared ab…

I routinely work in Ruby, Python, Javascript, Java, Go, and Rust. The thing that drives me to use asdf is that without such a tool, every language needs a different version or installation manager and they all work slightly differently. It's a hassle to remember 6 different sets of commands for how to install a new version, check which version is active, switch to a different version, and to remember the slightly dif…

Ok, so then it's like a package manager manager. Does it update each package manager's lock files too?

Thanks all for the replies. And sorry if I'm asking basic questions and should just read the asdf readme. On my custom layout I have to type A-S-R-H to get asdf.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#99
I loved asdf but since moving to immutable fedora I've started loving distrobox more.

By giving each box it's own home folder vscode in each has only the extensions for that language. E.g I don't have any python extensions in my nodejs box.

Been working like this for a couple of weeks now and it's pretty good.

If I end up breaking a box I can simply delete it and start over.

Re: Install Asdf: One Runtime Manager to Rule All Dev Environments

#100

I created https://github.com/jrz/container-shell to add a layer of security / isolation in addition to tools like asdf.

Nice, I've been thinking about building something similar. However, I'd still like to use my shell configuration/dotfiles inside the container (and I'd like my team mates to be able to do the same) and, so far, I haven't really found a good solution for that.
Post reply on HN