Skip to content

v0.8.0.pre1

Pre-release
Pre-release
Compare
Choose a tag to compare
@matthewd matthewd released this 08 Jul 09:42
· 11 commits to main since this release

This is the first public (pre)release after a long hiatus of minor polishing-through-usage. It contains a broad accumulation of API compatibility improvements as well as several new features (including e.g. gel install-gem rubocop to system-install a gem without a lockfile). If you're upgrading or installing on a system that previously had an earlier version of Gel present, please see the following notes on compatibility.

Incompatibility: SDBM support removed
If you've been using an older version exclusively with Ruby 3.0 or earlier, you might have been using the SDBM store format (~/.local/gel/ruby/libs.pag instead of ~/.local/gel/ruby/libs.pstore). SDBM support was removed from the Ruby stdlib in 3.1 -- so any instance that was working with current Ruby versions has already made this transition -- but this release fully drops support for SDBM, even when running on older Rubies. If you're in this situation, I'm afraid you'll need to delete your ~/.local/gel store and re-gel install inside your application directories; a database conversion script was unfortunately impractical in this case.

More reliable datastore management
Earlier versions could occasionally lose track of some files that had been installed as part of a gem, which would generally manifest as those files being missed by the fast-path require handler and falling back to a Ruby LOAD_PATH scan. While v0.8 will work with (non-SDBM) datastores generated by v0.3, if you encounter any misbehaviour (or just prefer to start from a more confidently-correct base), please consider resetting the datastore (rm -rf ~/.local/gel; gel install).

Improved binstubs
v0.8 retains compatibility with v0.3-generated binstubs, but it now generates using a new, better, template: it's more POSIX-compliant, it's compatible with ruby -S, and it can bootstrap into a Gel environment when run from a non-Gel Ruby instance. If you have not reset your datastore for either of the above reasons, and your binstubs work, you're welcome to keep them as they are -- but you can also gel stub --rebuild to easily rewrite all the binstubs into the new format.