[rspec-users] Initial run of RSpec 1.0.8 on MS-WinXPproSP2

James B. Byrne byrnejb at harte-lyne.ca
Fri Nov 23 23:08:16 EST 2007


I found this message:

--->
aslak hellesoy aslak.hellesoy at gmail.com
Wed Nov 1 14:00:03 EST 2006

    * Previous message: [rspec-devel] [ rspec-Bugs-6411 ] Can't run Rails
specs with ruby
    * Next message: [rspec-devel] script/generate rspec issue on trunk
(rev 1021)
    * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

The short version: Developers *must* run pre_commit prior to
committing - it's more important than before.

The longer version:

Several people are experiencing problems because they have an RSpec on
Rails plugin that is incompatible with their installed RSpec gem.
Because I'm lazy I made RSpec on Rails able to detect
incompatibilities on its own.

There are now two files in our codebase that store the current svn
revision in their source (via the svn:externals feature -
http://svnbook.red-bean.com/en/1.0/ch07s02.html):

lib/spec/version.rb
vendor/rspec_on_rails/vendor/plugins/rspec/lib/spec/rails/version.rb

The latter, when loaded (it's required by rspec_on_rails.rb) will
check that the rev numbers are the same in those two files. If they
are not, an exception is thrown with a message to the user describing
what to do.

In order to ensure that these two files get updated with the current
svn revision numbers during a commit it is MANDATORY that rake
pre_commit be run prior to a commit. This will modify those files with
a random comment, which will in turn cause svn to update the
$LastChangedRevision tokens in those files during the next commit.
(Without this random modification svn will *not* update the
$LastChangedRevision tokens in those files).

It's a little bit of magic, but it will help us in the long run.

Aslak
<---

and this one:

--->
 Re: Incompatibility Issues after updating CURRENT
Posted by David Chelimsky (Guest)
on 11.10.2007 20:01
(Received via mailing list)

On 10/11/07, George Anderson <george at benevolentcode.com> wrote:
>  ----
>   Fetching remote repository's latest revision and UUID
> unchanged from revision 2338



> ############################################################################
> Your RSpec on Rails plugin is incompatible with your installed RSpec.
>
> RSpec          : 1.0.7 (r2332)
> RSpec on Rails : r2331
>
> Make sure your RSpec on Rails plugin is compatible with your RSpec gem.
> See
> http://rspec.rubyforge.org/documentation/rails/install.html
> for details.
> ############################################################################

That is VERY odd. That was a bug in the 1.0.7 release, which is why we
released 1.0.8 right on its heels. But that was over a month ago.

I see this in CURRENT/rspec/lib/spec/version.rb:

      MAJOR  = 1
      MINOR  = 0
      TINY   = 8
...
      REV = "$LastChangedRevision: 2338 $".match(/LastChangedRevision:
(\d+)/)[1]

... and this in CURRENT/rspec_on_rails/lib/spec/rails/version.rb

        REV = "$LastChangedRevision: 2338
$".match(/LastChangedRevision: (\d+)/)[1]

So they should be aligning just fine. Sounds like something's wrong
when you update from piston. Not sure how or why.


<---

Now, the version.rb that is loaded from
http://rspec.rubyforge.org/svn/trunk/rspec
has only this:

--->
module Spec
  module VERSION
    unless defined? MAJOR
      MAJOR  = 1
      MINOR  = 1
      TINY   = 0
      RELEASE_CANDIDATE = nil

      # RANDOM_TOKEN: 0.885013695004692
      REV = "$LastChangedRevision$".match(/LastChangedRevision: (\d+)/)[1]
<---

One cannot but notice the absence of any digits in the REV = string.  Is
this the source (sink) of the [] nil object?

Regards,

-- 
***          E-Mail is NOT a SECURE channel          ***
James B. Byrne                mailto:ByrneJB at Harte-Lyne.ca
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3



More information about the rspec-users mailing list