line art of two overlapping gemstones Spinel

spinel.coop blog

Why are exec and run so confusing?

While working on rv, there’s a specific question that has come up over and over again, in many different forms. In the simplest possible form, it boils down to:

What is the difference between rv exec and rv run? Why have both?

We haven’t finished implementing either rv exec or rv run yet, but every time one or the other comes up in a conversation, everything instantly becomes more confusing.

This post will summarize the history of exec and run in Bundler, npm, Cargo, and uv. Once we have the history laid out, we can take a look at what we plan to do in rv, and you can give us your feedback.

Keep reading →

rv 0.3.0 released

We’re excited to announce rv version 0.3.0 has been released.

Highlights include support for Ruby versions 3.2.x, 3.5.0-preview1, and 4.0.0-preview2, as well as automatic Ruby installation during the rv ruby run command. We also added support for .tool-versions files, which are also used by the asdf and mise tools.

Just for fun, we also added the oldest version of Ruby that has released source code: 0.49! If you’d like to try it, there are some example scripts available in the repo where @sampersand modernized the code.

Keep reading →