dream2nix icon indicating copy to clipboard operation
dream2nix copied to clipboard

Language request: Ruby

Open anna328p opened this issue 3 years ago • 5 comments

ruby's package ecosystem has two parts: a package manager (gem) and a dependency manager (bundler).

gem is a system for defining and building packages, and rubygems is the main distribution server for these packages. nixpkgs has infrastructure to build gems, though it's not very refined. there's a big file with a list of gems to be included in nixpkgs, and all of their versions are bumped simultaneously every so often (rarely).

bundler is similar to rust's cargo (cargo was actually written by bundler's authors!) but works in different ways; its lockfiles don't list hashes, for example.

there's a bit of infrastructure to support ruby projects, namely bundix and bundlerEnv. but these projects are undermaintained; bundix runs into many errors with modern versions of ruby and bundler, and needs to be called in obscure sequences of operations and folder deletions to generate anything. it generates invalid, unbuildable derivations in common situations, like two gems separately pulled from the same git repo. and these tools work best with one specific kind of project structure, and everything else requires hacky changes. (example)

anna328p avatar Sep 25 '22 19:09 anna328p