[Rake-devel] Rake 0.8.7 broken on Windows

Hartin, Brian Brian.Hartin at pearson.com
Thu May 27 13:39:26 EDT 2010


Luis,

Thanks for your help.  There does indeed seem to be something wrong on my end.  Kernel.system('call ...') executes in a different directory than Kernel.system('...'), but for my co-worker, it does not.  We have the exact same version of ruby, too.

Brian 

> -----Original Message-----
> From: rake-devel-bounces at rubyforge.org 
> [mailto:rake-devel-bounces at rubyforge.org] On Behalf Of Luis Lavena
> Sent: Wednesday, May 26, 2010 5:43 PM
> To: Rake Development and Discussion
> Subject: Re: [Rake-devel] Rake 0.8.7 broken on Windows
> 
> On Wed, May 26, 2010 at 7:17 PM, Hartin, Brian 
> <Brian.Hartin at pearson.com> wrote:
> > Luis,
> >
> > I have created three one-line ruby scripts to demonstrate 
> the issue with 'call'.  Please note the directory locations:
> >
> > c:\temp\print_working_directory.rb:
> >
> >        puts "Working directory is #{Dir.pwd}"
> >
> > c:\temp\invoke_ruby.rb
> >
> >        Kernel.system('c:\ruby\bin\ruby.exe 
> c:\temp\print_working_directory.rb')
> >
> > c:\temp\invoke_ruby_using_call.rb
> >
> >        Kernel.system('call c:\ruby\bin\ruby.exe 
> c:\temp\print_working_directory.rb')
> >
> > Next, I opened a command window and executed the following commands:
> >
> >        c:\>cd c:\temp
> >        c:\temp>ruby invoke_ruby.rb (prints "Working 
> directory is C:/temp")
> >        c:\temp>ruby invoke_ruby_using_call.rb (prints 
> "Working directory is C:/Documents and Settings/hartbr")
> >
> >
> > When I run 'rake test' from my project directory 
> (C:\workspaces\project), I see the same thing.  To 
> demonstrate, here's what you need to do:
> >
> > 1) gem install rake 0.7.3
> > 2) Modify rake_test_loader.rb to print the working directory.
> > 3) Run 'rake:test' from the root directory of any Rails 
> project.  You should see that the forked ruby process runs 
> the tests from that directory.
> > 4) Uninstall rake 0.7.3 (Just for clarity's sake)
> > 5) Install rake 0.8.7
> > 6) Repeat step 2
> > 7) Repeat step 3, and I think it will fail to find the unit tests.
> >
> > I traced things from the Rails rake tasks all the way to 
> alt_system.rb, and this doesn't seem to be a Rails issue.  
> Rails correctly assembles the file list, consisting of 
> relative paths like "test/unit/foo_test.rb".  The directory 
> issue causes Rake 0.8.7 to fail with a "No such file to load" error.
> >
> > I did a fresh install of Ruby today, to make sure my Ruby 
> installation wasn't part of the problem.
> >
> 
> The only one reporting me "No such file to load" is Ruby 1.9.2 that do
> not add "." to the $LOAD_PATH
> 
> Invoking "rake test" or "rake spec" in any project I've used takes the
> directory where Rakefile is found and executed.
> 
> That had worked and still works for me.
> 
> There was several back and forth on alt_system issues because Ruby
> 1.8.x is flawed to handle system calls. "call" was required to handle
> *args calls to system.
> 
> -- 
> Luis Lavena
> AREA 17
> -
> Perfection in design is achieved not when there is nothing 
> more to add,
> but rather when there is nothing more to take away.
> Antoine de Saint-Exupéry
> _______________________________________________
> Rake-devel mailing list
> Rake-devel at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rake-devel
> 


More information about the Rake-devel mailing list