Ruby build system frustrations
The Ruby gem build system is really awful. I think Ruby is a pretty good language overall and I've been writing Ruby on a regular basis for 3 years now, but I can't defend this garbage.
First off, there's a widespread problem that could have been avoided: Everyone assumes you are building from a git checkout. Building from a source tarball? Go back to the 80's, neckbeard! All of our gemspecs have stuff like this in them: https://github.com/dchelimsky/rspec/blob/master/rspec.gemspec#L17
The unfortunate side-effect of requiring a git checkout is that you can kiss reproducibility goodbye. Every time someone commits to the repo, the hash of the source tree's contents changes because the .git
directory contains new data.
The other big problem is the large amount of circular dependencies. rspec depends on fakefs, but if you want to build fakefs and run its test suite, you need rspec! So, I guess that to build rspec, you would have to build a special version of fakefs whose recipe does not run tests.
<paroneayea> *sad trombone*
How can this problem be solved for purely functional package managers?
Christopher Allan Webber, Douglas Perkins likes this.
jrobertson, Christopher Allan Webber, Douglas Perkins, Douglas Perkins shared this.
David Thompson at 2015-02-23T02:08:36Z
Douglas Perkins likes this.
David Thompson at 2015-02-23T02:11:53Z
Douglas Perkins likes this.