← Back to context

Comment by stouset

1 day ago

Mise is the answer to this. I no longer use chruby/rbenv/rvm. And it manages multiple languages, project-local environment, etc.

Well. GoboLinux solved that already. Back in 2005.

I never understood the real need for chruby rvm etc... - I manage everything, all programs, in a versioned AppDir manner. (Note: I am not using GoboLinux; I use a modified variant. GoboLinux gave the correct idea though.)

  • Context for anyone unfamiliar with GoboLinux:

    > each program in a GoboLinux system has its own subdirectory tree, where all of its files (including settings specific for that program) may be found. Thus, a program "Foo" has all of its specific files and libraries in /Programs/Foo, under the corresponding version of this program at hand. For example, the commonly known GCC compiler suite version 8.1.0, would reside under the directory /Programs/GCC/8.1.0

    https://en.wikipedia.org/wiki/GoboLinux

  • And the bank where I worked in mid 1990s had the same each program in its own versioned directory.

  • That takes me back. I haven't used GoboLinux since maybe 2007ish but I used to maintain several packages for it.

    It's not really that easy being really different in the Linux packaging world.

mise is pretty nice, though I don't use it for python, Python is handled by uv with poethepoet as the task runner.

  • Can you help me understand what the value or use case of poethepoet is?

    • It allows you to define common tasks such as linting, running tests, building docs, etc under an alias.

      So you can run

      uv run poe docs

      Instead of

      uv run sphinx-build -W -b dirhtml docs/source docs/build

      Many languages have a task runners baked into their package manager, but many others don’t. In Ruby it’s roughly the equivalent of Rake.

      1 reply →

How does it compare to asdf?

  • https://mise.jdx.dev/dev-tools/comparison-to-asdf.html

    > mise can be used as a drop-in replacement for asdf. It supports the same .tool-versions files that you may have used with asdf and can use asdf plugins through the asdf backend.

    > It will not, however, reuse existing asdf directories (so you'll need to either reinstall them or move them), and 100% compatibility is not a design goal. That said, if you're coming from asdf-bash (0.15 and below), mise actually has fewer breaking changes than asdf-go (0.16 and above) despite 100% compatibility not being a design goal of mise.

    > Casual users coming from asdf have generally found mise to just be a faster, easier to use asdf.