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.