bundler 1.0.14 → 1.0.15

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

@@ -1,3 +1,13 @@
1
+ ## 1.0.15 (June 9, 2011)
2
+
3
+ Features:
4
+
5
+ - Improved Rubygems integration, removed many deprecation notices
6
+
7
+ Bugfixes:
8
+
9
+ - Escape URL arguments to git correctly on Windows (1.0.14 regression)
10
+
1
11
  ## 1.0.14 (May 27, 2011)
2
12
 
3
13
  Features:
data/ISSUES.md CHANGED
@@ -8,7 +8,7 @@ Ruby Enterprise Edition users may see a `Zlib::GzipFile::Error` while installing
8
8
 
9
9
  ### Rake activation error
10
10
 
11
- Anyone who has installed the Spork gem may see activation errors while running `rake` directly. This is because installing Spork would [install the newest rake using a mkmf file](https://github.com/timcharper/spork/issues/119). To resolve the issue, update your Gemfile to include either the newest version of Rake or the newest version of Spork (which no longer installs Rake).
11
+ Anyone who has installed the Spork gem may see activation errors while running `rake` directly. This is because old versions of Spork would [install the newest rake using a mkmf file](https://github.com/timcharper/spork/issues/119). To resolve the issue, update the Spork version requirement in your Gemfile to at least `"~>0.8.5"` or `"~>0.9.0.rc8"`.
12
12
 
13
13
  ## Troubleshooting
14
14
 
@@ -49,6 +49,7 @@ Instructions that allow the Bundler team to reproduce your issue are vitally imp
49
49
  - What version of Ruby you are using (run `ruby -v`)
50
50
  - What version of Rubygems you are using (run `gem -v`)
51
51
  - Whether you are using RVM, and if so what version (run `rvm -v`)
52
+ - Whether you have the `rubygems-bundler` gem, which can break gem binares
52
53
 
53
54
 
54
55
  If you are using Rails 2.3, please also include:
data/Rakefile CHANGED
@@ -2,9 +2,18 @@
2
2
  $:.unshift File.expand_path("../lib", __FILE__)
3
3
  require 'bundler/gem_tasks'
4
4
 
5
+ namespace :spec do
6
+ desc "Ensure spec dependencies are installed"
7
+ task :deps do
8
+ sh "gem list ronn | (grep 'ronn' 1> /dev/null) || gem install ronn --no-ri --no-rdoc"
9
+ sh "gem list rspec | (grep 'rspec (2.' 1> /dev/null) || gem install rspec --no-ri --no-rdoc"
10
+ end
11
+ end
12
+
5
13
  begin
6
- # set up rspec tasks
14
+ # running the specs needs both rspec and ronn
7
15
  require 'rspec/core/rake_task'
16
+ require 'ronn'
8
17
 
9
18
  desc "Run specs"
10
19
  RSpec::Core::RakeTask.new do |t|
@@ -13,29 +22,6 @@ begin
13
22
  end
14
23
  task :spec => "man:build"
15
24
 
16
- begin
17
- require 'ci/reporter/rake/rspec'
18
-
19
- namespace :ci do
20
- desc "Run specs with Hudson output"
21
- RSpec::Core::RakeTask.new(:spec)
22
- task :spec => ["ci:setup:rspec", "man:build"]
23
- end
24
-
25
- rescue LoadError
26
- namespace :ci do
27
- task :spec do
28
- abort "Run `rake ci:deps` to be able to run the CI specs"
29
- end
30
-
31
- desc "Install CI dependencies"
32
- task :deps do
33
- sh "gem list ci_reporter | (grep 'ci_reporter' 1> /dev/null) || gem install ci_reporter --no-ri --no-rdoc"
34
- end
35
- task :deps => "spec:deps"
36
- end
37
- end
38
-
39
25
  namespace :spec do
40
26
  task :clean do
41
27
  rm_rf 'tmp'
@@ -130,10 +116,6 @@ begin
130
116
 
131
117
  end
132
118
 
133
-
134
- # set up man tasks that use ronn
135
- require 'ronn'
136
-
137
119
  namespace :man do
138
120
  directory "lib/bundler/man"
139
121
 
@@ -161,20 +143,33 @@ begin
161
143
  end
162
144
  end
163
145
 
146
+ begin
147
+ require 'ci/reporter/rake/rspec'
164
148
 
165
- rescue LoadError
166
- task :spec do
167
- abort "Run `rake spec:deps` to be able to run the specs"
168
- end
149
+ namespace :ci do
150
+ desc "Run specs with Hudson output"
151
+ RSpec::Core::RakeTask.new(:spec)
152
+ task :spec => ["ci:setup:rspec", "man:build"]
153
+ end
169
154
 
170
- namespace :spec do
171
- desc "Ensure spec dependencies are installed"
172
- task :deps do
173
- sh "gem list ronn | (grep 'ronn' 1> /dev/null) || gem install ronn --no-ri --no-rdoc"
174
- sh "gem list rspec | (grep 'rspec (2.0' 1> /dev/null) || gem install rspec --no-ri --no-rdoc"
155
+ rescue LoadError
156
+ namespace :ci do
157
+ task :spec do
158
+ abort "Run `rake ci:deps` to be able to run the CI specs"
159
+ end
160
+
161
+ desc "Install CI dependencies"
162
+ task :deps do
163
+ sh "gem list ci_reporter | (grep 'ci_reporter' 1> /dev/null) || gem install ci_reporter --no-ri --no-rdoc"
164
+ end
165
+ task :deps => "spec:deps"
175
166
  end
176
167
  end
177
168
 
169
+ rescue LoadError
170
+ task :spec do
171
+ abort "Run `rake spec:deps` to be able to run the specs"
172
+ end
178
173
  end
179
174
 
180
175
  namespace :vendor do
@@ -157,6 +157,16 @@ module Bundler
157
157
  end
158
158
  end
159
159
 
160
+ if defined? ::Deprecate
161
+ Deprecate = ::Deprecate
162
+ elsif defined? Gem::Deprecate
163
+ Deprecate = Gem::Deprecate
164
+ else
165
+ class Deprecate
166
+ def skip_during; yield; end
167
+ end
168
+ end
169
+
160
170
  def stub_source_index137(specs)
161
171
  # Rubygems versions lower than 1.7 use SourceIndex#from_gems_in
162
172
  source_index_class = (class << Gem::SourceIndex ; self ; end)
@@ -172,8 +182,19 @@ module Bundler
172
182
  def stub_source_index170(specs)
173
183
  Gem::SourceIndex.send(:define_method, :initialize) do |*args|
174
184
  @gems = {}
175
- self.spec_dirs = *args
176
- add_specs(*specs)
185
+ # You're looking at this thinking: Oh! This is how I make those
186
+ # rubygems deprecations go away!
187
+ #
188
+ # You'd be correct BUT using of this method in production code
189
+ # must be approved by the rubygems team itself!
190
+ #
191
+ # This is your warning. If you use this and don't have approval
192
+ # we can't protect you.
193
+ #
194
+ Deprecate.skip_during do
195
+ self.spec_dirs = *args
196
+ add_specs(*specs)
197
+ end
177
198
  end
178
199
  end
179
200
 
@@ -251,7 +272,7 @@ module Bundler
251
272
  end
252
273
  end
253
274
 
254
- # Rubygems 1.8
275
+ # Rubygems 1.8.5
255
276
  class Modern < RubygemsIntegration
256
277
  def stub_rubygems(specs)
257
278
  Gem::Specification.all = specs
@@ -270,10 +291,13 @@ module Bundler
270
291
  def find_name(name)
271
292
  Gem::Specification.find_all_by_name name
272
293
  end
294
+ end
273
295
 
274
- # Rubygems 1.8 changes Gem.dir when you call Gem::Installer#install with
275
- # an :install_path option. I guess this makes sense for them, but we have
276
- # to change it back for our sudo mode to work.
296
+ # Rubygems 1.8.0 to 1.8.4
297
+ class AlmostModern < Modern
298
+ # Rubygems [>= 1.8.0, < 1.8.5] has a bug that changes Gem.dir whenever
299
+ # you call Gem::Installer#install with an :install_dir set. We have to
300
+ # change it back for our sudo mode to work.
277
301
  def preserve_paths
278
302
  old_dir, old_path = gem_dir, gem_path
279
303
  yield
@@ -283,16 +307,13 @@ module Bundler
283
307
 
284
308
  end
285
309
 
286
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.7.0')
287
- if Gem::Specification.respond_to? :all=
288
- # >= 1.8
289
- @rubygems = RubygemsIntegration::Modern.new
290
- else
291
- # 1.7.x
292
- @rubygems = RubygemsIntegration::Transitional.new
293
- end
294
- else
295
- # < 1.7.0
310
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.5')
311
+ @rubygems = RubygemsIntegration::Modern.new
312
+ elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
313
+ @rubygems = RubygemsIntegration::AlmostModern.new
314
+ elsif Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.7.0')
315
+ @rubygems = RubygemsIntegration::Transitional.new
316
+ else # Rubygems 1.3.6 through 1.6.2
296
317
  @rubygems = RubygemsIntegration::Legacy.new
297
318
  end
298
319
 
@@ -8,6 +8,9 @@ if Bundler::SharedHelpers.in_bundle?
8
8
  rescue Bundler::BundlerError => e
9
9
  puts "\e[31m#{e.message}\e[0m"
10
10
  puts e.backtrace.join("\n") if ENV["DEBUG"]
11
+ if Bundler::GemNotFound === e
12
+ puts "\e[33mRun `bundle install` to install missing gems.\e[0m"
13
+ end
11
14
  exit e.status_code
12
15
  end
13
16
  else
@@ -608,11 +608,17 @@ module Bundler
608
608
  Digest::SHA1.hexdigest(input)
609
609
  end
610
610
 
611
- # Escape the URI for shell commands. To support a single quote
612
- # within the URI we must end the string, escape the quote and
613
- # restart.
611
+ # Escape the URI for git commands
614
612
  def uri_escaped
615
- "'#{uri.gsub("'") {|s| "'\\''"}}'"
613
+ if Bundler::WINDOWS
614
+ # Windows quoting requires double quotes only, with double quotes
615
+ # inside the string escaped by being doubled.
616
+ '"' + uri.gsub('"') {|s| '""'} + '"'
617
+ else
618
+ # Bash requires single quoted strings, with the single quotes escaped
619
+ # by ending the string, escaping the quote, and restarting the string.
620
+ "'" + uri.gsub("'") {|s| "'\\''"} + "'"
621
+ end
616
622
  end
617
623
 
618
624
  def cache_path
@@ -2,5 +2,5 @@ module Bundler
2
2
  # We're doing this because we might write tests that deal
3
3
  # with other versions of bundler and we are unsure how to
4
4
  # handle this better.
5
- VERSION = "1.0.14" unless defined?(::Bundler::VERSION)
5
+ VERSION = "1.0.15" unless defined?(::Bundler::VERSION)
6
6
  end
@@ -351,7 +351,6 @@ describe "bundle install with git sources" do
351
351
  out.should include("Git error:")
352
352
  err.should include("fatal")
353
353
  err.should include("omgomg")
354
- err.should include("fatal: The remote end hung up unexpectedly")
355
354
  end
356
355
 
357
356
  it "works when the gem path has spaces in it" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 14
10
- version: 1.0.14
9
+ - 15
10
+ version: 1.0.15
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Andr\xC3\xA9 Arko"
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2011-05-27 00:00:00 -07:00
21
+ date: 2011-06-09 00:00:00 -07:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency