Re: Let's discuss big changes in Ruby packaging for squeeze+1
On 22/04/10 at 08:56 -0600, Joshua Timberman wrote:
> Can we also please have RubyGems on Debian install in
> /usr/local/lib/site_ruby, with binaries in /usr/local/bin? The
> installation location of the current RubyGems is considered messy
> and unexpected, and binaries are not in the default $PATH.
This has been discussed at length in #448639 (/usr/local/lib vs
/var/lib) and #403407 (executables not in $PATH).
> >5) Regarding test suites, we should really try to execute them
> >during the
> > build (for every ruby implementation), as this will allow to detect
> > regressions.
> We need to determine which test suites are acceptable. Do we simply
> do 'rake test' or 'rake spec'? Or try to determine from the Rakefile
> which? A lot of projects are using Cucumber, too, but I think its
> use should be avoided when building packages because it often has
> more intrusive development/build dependencies because of integration
> type tests.
Using Rake is usually a bit painful, because the Rakefile itself often
requires adding dependencies (like rubygems). It's better to keep
rubygems out of build dependencies since it allows to detect when the
scripts try to use it.
> For example, Chef uses:
> * Rspec - Unit/functional testing
> * Cucumber - Integration testing
> Rspec is pretty straightforward, but for running Chef's Cucumber
> suite, it needs to have a full sandboxed Chef server environment
> including CouchDB, RabbitMQ, and SOLR. Obviously this isn't the case
> for every Ruby project, and package maintainers can probably
> determine which test suite(s) for a project to run.
The rule should probably be something like: "maintainers should make a
reasonable effort to run the test suite, provided it's not required to
install a myriad of dependencies and set up a complex test environment.
> > + various QA scripts, including one to grep for "require 'rubygems'"
> Suggestion: Such a script should also look for 'bundler' and other
> gem-specific dependency handling as well. For example, merb has
> 'dependency' methods.
| Lucas Nussbaum
| email@example.com http://www.lucas-nussbaum.net/ |
| jabber: firstname.lastname@example.org GPG: 1024D/023B3F4F |