This Time Self-Hosted
dark mode light mode Search

The Ruby packager blues

Okay after ranting and implementing it’s time for crying. Because this whole day of work depressed me in a way that I wouldn’t have expected to be possible for Free Software.

Indeed, even though I added support for using the gems as base for the installation of packages in Gentoo, this does not solve one of my most important issues: tests that weren’t run and that’s bothering me.

It bothers me because for instance, running gruff’s tests, I found two bugs that are now in github (but not yet merged in the original master). It bothers me because it would take very little extra steps to get the things working properly, and nobody follows it.

If I started listing all the problems I found and I needed to cope with or workaround, I’d probably be feeling even more depressed. So I’ll just try to repeat some of the rules-of-thumb that you should follow:

  • please try to provide tgz as well as gems: while even Gentoo can deal with gems at this point, it still requires a double-extraction;
  • provide the tests and the framework to run them; without those, it’s difficult to understand whether the code works as intended or not;
  • always good, but especially if you don’t release the tgz: tag your releases! This allows to go look at eventually missing files (in tgz or gem) for executing tests, or to look for further changes that might have fixed things; if you use github, providing proper tags also provides automatic tarball downloads, so you don’t have to do anything else than provide the gem and tags;
  • try your own tests before releasing so that you’ll avoid releasing code that does not pass the tests in the first place; this is true also when the bugs are in the testsuite rather than in the code logic.

Unfortunately, the more I try to package software for Ruby, the more I see that these rules are blatantly ignored and people just release out whatever crap works for them. I’m seriously surprised that this stuff can be used in production, most of the times!

And if you feel like my work is worth something, and you’d like to say “thank you”, you can always look at my wishlist which also has useful technical elements; for instance I’d really like to read that OpenMP book so that I could learn some new tricks for making software behave better with multicore systems.

Comments 2
  1. sorry if i can’t give you any money or presents. but at least i will thank you for your work!thanks!

  2. I’ve beat my head against the ruby wall a few times trying to package some things for Debian. I share your pain, worse is when the Ruby/Rails people don’t seem to get it when you explain to them.I love it when some “gem” is posted as a blog post, no release number, no tarball, no license, no tag, gahhh, don’t get me started about all the vendoring of code, or lack of ABI versioning of libraries.Comon folks, it makes you look like noobs.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.