Hey, #githubpages! That’s cool!
Oh, that’s only static pages.
But we can use #jekyll!
Oh, need to install #ruby.
But first install #chruby and #bundle.
Oh, wrong version of ruby, need to install again.
Good! Now install jekyll.
Oh, compile error on #eventmachine.
Checking out #xcode.
#homebrew doctor.
#Rabbithole alert! Fuck it.
brew remove githubpages cascade;

@jamiemccarthy @mistersql I don't have raw numbers because #chruby and #rbenv are not gems; they're shell hooks. However, @postmodern actively maintains chruby, and it doesn't need to be updated and rehashed for every upstream update or beta. It also has great support for the Fish shell.

All of them have good use cases & some edge cases. For example, #RVM is "batteries included." I didn't care about how it hooks `cd` until I started using other apps that did, too.

There's no wrong choice!

@jamiemccarthy @mistersql You missed #chruby and #asdf. I personally recommend chruby over the others, but have used all of them and they each have their good points. *Please* don't mess with your system Ruby or Bad Stuff™ is likely to happen.

#venv is now part of the #Python3 standard library these days, but #RubyLang offers more choices. Plus, there are various ways to install #RubyGems locally into your project even without #Bundler. See `gem install --help` for options.

For anyone using the #fish_shell, the following #shell_function definition will let you switch to the latest CRuby #chruby knows about. It could be simplified (e.g. setting a function-local variable is mostly for debugging) or use builtins instead of pipes in shells where that matters, but I still find it useful for myself. Maybe you will, too.

```fish
function chruby-latest
set latest (
chruby | tr -d '*' |
pcregrep -o '\bruby-[\d.]+' | tail -1)
chruby $latest
end
```

#RubyLang 3.3.1 is now out, and has some important #CVE fixes. If you use #chruby and #rubyinstall then this is all you need for a basic update without additional compilation options:

ruby-install -U
RUBYOPT="" ruby-install 3.3.1

Also, don't forget to chruby 3.3.1 and then run gem update. A lot of #RubyGems included in the default install have been updated since the patch was released too!

https://www.ruby-lang.org/en/news/2024/04/23/ruby-3-3-1-released/

Ruby 3.3.1 Released

#RubyLang 3.3.1 is now out, and has some important #CVE fixes. If you use #chruby and #rubyinstall then:

```
ruby-install -U
RUBYOPT="" ruby-install -c 3.3.1 -- --with-openssl-dir="$(brew --prefix openssl@3)"
```

will get you updated using the latest #OpenSSL v3 from #HomeBrew.

Also, don't forget to `chruby 3.3.1` and then run `gem update`. A lot of core gems have been updated in the past two days too!

https://www.ruby-lang.org/en/news/2024/04/23/ruby-3-3-1-released/

Ruby 3.3.1 Released

I also need to update the signing mechanism. Either I need to generate a new PGP 4096 bit key and load it onto a YubiKey, or switch to sigstore (which uses OpenID) which is what all of the cool kids are apparently using.
https://www.sigstore.dev/
#rubyinstall #chruby
sigstore

![sigstore logo][logo]

sigstore

What would people think about if I moved chruby, ruby-install, ruby-versions, and maybe rubygems-tasks, into a new GitHub Org? GitHub does support automatic redirects for moved repos. It would give it an air of official-ness, instead of going to my GitHub. I would probably have to do this in ruby-install 0.10.0 and change the URL for the ruby-versions repo, which it downloads version info from.

Only downside is it would automatically close *ALL* outstanding PRs.
#rubyinstall #chruby

I'm considering adding source options to chruby 1.0.0 which would control loading additional chruby "modules".

source /usr/local/share/chruby/chruby.sh --auto --bundler

#chruby

@postmodern BTW, this worked flawless on my M2:

ruby-install -c ruby-3.3.0-preview1 -- "--enable-yjit"
echo "RUBYOPT=--yjit" >> ~/.zshrc

I have been relying on #chruby and #rubyinstall for years. I'm not sure why they aren't everyone's favorites. :)