You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@buildr.apache.org by Peter Donald <pe...@realityforge.org> on 2015/02/14 11:00:23 UTC

BUILDR-705 - Removing RSpec as a hard dependency

Hi,

Recently we received a request to remove RSpec as a hard dependency [1].
Essentially if the RSpec version, that buildr uses is not compatible with
the code you write, then this can cause issues. This is an issue I have
faced before a few times so I wanted to see if there a way it could be
easily addressed.

Buildr uses rspec within build files so that you can write checks to ensure
the packages contain the correct contents. An example of this in use is at
[2]. I don't believe this feature is widely used but I know I use it fairly
extensively.

However just removing the dependency, would be a backwards incompatible
change so what I decided to do was;
* remove rspec as a runtime dependency
* if the user adds a call to check() method in a buildfile, then load rspec
* If loading of rspec fails then fail the build and emit the error message:

=============================================================
RuntimeError : check() method invoked in buildfile but RSpec has not been
loaded.

Buildr prior to version 1.4.22, included rspec as a dependency but as
of version 1.4.22, it is expected users manually add RSpec to their
Gemfile. The following lines should be added to restore the version
of rspec included in 1.4.22:

gem 'rspec-expectations',   '= 2.14.3'
gem 'rspec-mocks',          '= 2.14.3'
gem 'rspec-core',           '= 2.14.5'
gem 'rspec',                '= 2.14.1'
=============================================================

I have put the changes in a branch at [3]. Does anyone have any problems
with going ahead with this change or can they suggest a better way of
solving this issue?

[1] https://issues.apache.org/jira/browse/BUILDR-705
[2]
https://github.com/realityforge/buildr-examples/blob/master/check-helloworld/buildfile#L8-L10
[3] https://github.com/apache/buildr/compare/BUILDR-705


-- 
Cheers,

Peter Donald