bundler 1.2.0.pre → 1.2.0.pre.1
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.
- data/CHANGELOG.md +30 -1
- data/ISSUES.md +16 -20
- data/bin/bundle +10 -27
- data/lib/bundler/capistrano.rb +1 -1
- data/lib/bundler/cli.rb +4 -1
- data/lib/bundler/deployment.rb +4 -4
- data/lib/bundler/fetcher.rb +13 -3
- data/lib/bundler/friendly_errors.rb +22 -0
- data/lib/bundler/installer.rb +1 -0
- data/lib/bundler/settings.rb +10 -2
- data/lib/bundler/source.rb +1 -2
- data/lib/bundler/vendored_persistent.rb +3 -0
- data/lib/bundler/vendored_thor.rb +2 -1
- data/lib/bundler/version.rb +1 -1
- data/man/bundle-config.ronn +32 -0
- data/man/gemfile.5.ronn +27 -0
- data/spec/install/gems/dependency_api_spec.rb +34 -0
- data/spec/other/check_spec.rb +14 -0
- data/spec/other/platform_spec.rb +2 -2
- metadata +134 -74
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,24 @@
|
|
1
|
-
## 1.2.0.pre
|
1
|
+
## 1.2.0.pre.1 (May 27, 2012)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- Import git submodules of submodules recursively (@nwwatson, #1935)
|
6
|
+
|
7
|
+
Bugfixes:
|
8
|
+
|
9
|
+
- Exit from `check` with a non-zero status when frozen with no lock
|
10
|
+
- Use `latest_release` in Capistrano and Vlad integration (#1264)
|
11
|
+
- Work around a Ruby 1.9.3p194 bug in Psych when config files are empty
|
12
|
+
|
13
|
+
Documentation:
|
14
|
+
|
15
|
+
- Add instructions for local git repos to the `config` manpage
|
16
|
+
- Update the `Gemfile` manpage to include ruby versions (@stevenh512)
|
17
|
+
- When OpenSSL is missing, provide instructions for fixing (#1776 etc.)
|
18
|
+
- Unknown exceptions now link to ISSUES for help instead of a new ticket
|
19
|
+
- Correct inline help for `clean --force` (@dougbarth, #1911)
|
20
|
+
|
21
|
+
## 1.2.0.pre (May 4, 2012)
|
2
22
|
|
3
23
|
Features:
|
4
24
|
|
@@ -32,6 +52,15 @@ Documentation:
|
|
32
52
|
- Add basic documentation for bin_path and bundle_path (@radar)
|
33
53
|
- Add documentation for the run method in Bundler::Installer
|
34
54
|
|
55
|
+
## 1.1.4 (May 27, 2012)
|
56
|
+
|
57
|
+
Bugfixes:
|
58
|
+
|
59
|
+
- Use `latest_release` in Capistrano and Vlad integration (#1264)
|
60
|
+
- Unknown exceptions now link to ISSUES for help instead of a new ticket
|
61
|
+
- When OpenSSL is missing, provide instructions for fixing (#1776 etc.)
|
62
|
+
- Correct inline help for `clean --force` (@dougbarth, #1911)
|
63
|
+
- Work around a Ruby 1.9.3p194 bug in Psych when config files are empty
|
35
64
|
|
36
65
|
## 1.1.3 (March 23, 2012)
|
37
66
|
|
data/ISSUES.md
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
# Bundler Issues
|
2
2
|
|
3
|
-
|
3
|
+
So! You're having problems with Bundler. This file is here to help. If you're running into an error, try reading the rest of this file for help. If you can't figure out how to solve your problem, there are also instructions on how to report a bug.
|
4
|
+
|
5
|
+
## Documentation
|
4
6
|
|
5
|
-
Instructions for common Bundler
|
7
|
+
Instructions for common Bundler uses can be found on the [Bundler documentation site](http://gembundler.com/v1.1/).
|
6
8
|
|
7
9
|
Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://gembundler.com/man/bundle.1.html).
|
8
10
|
|
11
|
+
## Troubleshooting
|
12
|
+
|
13
|
+
### Heroku errors
|
14
|
+
|
15
|
+
Please open a ticket with Heroku if you're having trouble deploying. They have a professional support team who can help you resolve Heroku issues far better than the Bundler team can. If the problem that you are having turns out to be a bug in Bundler itself, Heroku support can get the exact details to us.
|
16
|
+
|
17
|
+
### Something else
|
18
|
+
|
9
19
|
After reading the documentation, try these troubleshooting steps:
|
10
20
|
|
11
21
|
# remove user-specific gems and git repos
|
@@ -26,24 +36,9 @@ After reading the documentation, try these troubleshooting steps:
|
|
26
36
|
# try to install one more time
|
27
37
|
bundle install
|
28
38
|
|
29
|
-
## Frequently encountered issues
|
30
|
-
|
31
|
-
### Heroku errors
|
32
|
-
|
33
|
-
Open a ticket with Heroku. If the issue somehow turns out to be with Bundler itself, the Heroku support team will forward the details of your issue to us.
|
34
|
-
|
35
|
-
### REE and Zlib::GzipFile::Error
|
36
|
-
|
37
|
-
Ruby Enterprise Edition users may see a `Zlib::GzipFile::Error` while installing gems. It is due to [a bug in REE](http://code.google.com/p/rubyenterpriseedition/issues/detail?id=45). You may be able to resolve the issue by upgrading REE, or changing to a different interpreter.
|
38
|
-
|
39
|
-
### Rake activation error
|
40
|
-
|
41
|
-
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"`.
|
42
|
-
|
43
|
-
|
44
39
|
## Reporting unresolved problems
|
45
40
|
|
46
|
-
|
41
|
+
The Bundler team needs to know some things in order to diagnose and hopefully fix the bug you've found. When you report a bug, please include the following information:
|
47
42
|
|
48
43
|
- The command you ran
|
49
44
|
- Exception backtrace(s), if any
|
@@ -57,11 +52,12 @@ Instructions that allow the Bundler team to reproduce your issue are vitally imp
|
|
57
52
|
- Whether you have the `rubygems-bundler` gem, which can break gem binares
|
58
53
|
- Whether you have the `open_gem` gem, which can cause rake activation conflicts
|
59
54
|
|
60
|
-
|
61
55
|
If you are using Rails 2.3, please also include:
|
62
56
|
|
63
57
|
- Your boot.rb file
|
64
58
|
- Your preinitializer.rb file
|
65
59
|
- Your environment.rb file
|
66
60
|
|
67
|
-
[Create a gist](https://gist.github.com) containing all of that information, then visit the [Bundler issue tracker](https://github.com/carlhuda/bundler) and create a new ticket describing your problem and linking to your gist.
|
61
|
+
[Create a gist](https://gist.github.com) containing all of that information, then visit the [Bundler issue tracker](https://github.com/carlhuda/bundler/issues) and [create a new ticket](https://github.com/carlhuda/bundler/issues/new) describing your problem and linking to your gist.
|
62
|
+
|
63
|
+
Thanks for reporting issues and making Bundler better!
|
data/bin/bundle
CHANGED
@@ -1,31 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'bundler'
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
abort(err)
|
10
|
-
end
|
3
|
+
# Check if an older version of bundler is installed
|
4
|
+
$:.each do |path|
|
5
|
+
if path =~ %r'/bundler-0.(\d+)' && $1.to_i < 9
|
6
|
+
err = "Please remove Bundler 0.8 versions."
|
7
|
+
err << "This can be done by running `gem cleanup bundler`."
|
8
|
+
abort(err)
|
11
9
|
end
|
12
|
-
require 'bundler/cli'
|
13
|
-
Bundler::CLI.start
|
14
|
-
rescue Bundler::BundlerError => e
|
15
|
-
Bundler.ui.error e.message
|
16
|
-
Bundler.ui.debug e.backtrace.join("\n")
|
17
|
-
exit e.status_code
|
18
|
-
rescue Interrupt => e
|
19
|
-
Bundler.ui.error "\nQuitting..."
|
20
|
-
Bundler.ui.debug e.backtrace.join("\n")
|
21
|
-
exit 1
|
22
|
-
rescue SystemExit => e
|
23
|
-
exit e.status
|
24
|
-
rescue Exception => e
|
25
|
-
Bundler.ui.error "Unfortunately, a fatal error has occurred. " +
|
26
|
-
"Please report this error to the Bundler issue tracker at " +
|
27
|
-
"https://github.com/carlhuda/bundler/issues so that we can fix it. " +
|
28
|
-
"Please include the full output of the command, your Gemfile and Gemfile.lock. " +
|
29
|
-
"Thanks!"
|
30
|
-
raise e
|
31
10
|
end
|
11
|
+
|
12
|
+
require 'bundler/cli'
|
13
|
+
require 'bundler/friendly_errors'
|
14
|
+
Bundler.with_friendly_errors { Bundler::CLI.start }
|
data/lib/bundler/capistrano.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
require 'bundler/deployment'
|
6
6
|
|
7
7
|
Capistrano::Configuration.instance(:must_exist).load do
|
8
|
-
|
8
|
+
before "deploy:finalize_update", "bundle:install"
|
9
9
|
Bundler::Deployment.define_task(self, :task, :except => { :no_release => true })
|
10
10
|
set :rake, lambda { "#{fetch(:bundle_cmd, "bundle")} exec rake" }
|
11
11
|
end
|
data/lib/bundler/cli.rb
CHANGED
@@ -113,6 +113,9 @@ module Bundler
|
|
113
113
|
not_installed.each { |s| Bundler.ui.error " * #{s.name} (#{s.version})" }
|
114
114
|
Bundler.ui.warn "Install missing gems with `bundle install`"
|
115
115
|
exit 1
|
116
|
+
elsif !Bundler.default_lockfile.exist? && Bundler.settings[:frozen]
|
117
|
+
Bundler.ui.error "This bundle has been frozen, but there is no Gemfile.lock present"
|
118
|
+
exit 1
|
116
119
|
else
|
117
120
|
Bundler.load.lock
|
118
121
|
Bundler.ui.info "The Gemfile's dependencies are satisfied"
|
@@ -616,7 +619,7 @@ module Bundler
|
|
616
619
|
|
617
620
|
desc "clean", "Cleans up unused gems in your bundler directory"
|
618
621
|
method_option "force", :type => :boolean, :default => false, :banner =>
|
619
|
-
"forces clean even if --path is set"
|
622
|
+
"forces clean even if --path is not set"
|
620
623
|
def clean
|
621
624
|
if Bundler.settings[:path] || options[:force]
|
622
625
|
Bundler.load.clean
|
data/lib/bundler/deployment.rb
CHANGED
@@ -41,16 +41,16 @@ module Bundler
|
|
41
41
|
bundle_dir = context.fetch(:bundle_dir, File.join(context.fetch(:shared_path), 'bundle'))
|
42
42
|
bundle_gemfile = context.fetch(:bundle_gemfile, "Gemfile")
|
43
43
|
bundle_without = [*context.fetch(:bundle_without, [:development, :test])].compact
|
44
|
-
|
45
|
-
if
|
44
|
+
app_path = context.fetch(:latest_release)
|
45
|
+
if app_path.to_s.empty?
|
46
46
|
raise error_type.new("Cannot detect current release path - make sure you have deployed at least once.")
|
47
47
|
end
|
48
|
-
args = ["--gemfile #{File.join(
|
48
|
+
args = ["--gemfile #{File.join(app_path, bundle_gemfile)}"]
|
49
49
|
args << "--path #{bundle_dir}" unless bundle_dir.to_s.empty?
|
50
50
|
args << bundle_flags.to_s
|
51
51
|
args << "--without #{bundle_without.join(" ")}" unless bundle_without.empty?
|
52
52
|
|
53
|
-
run "cd #{
|
53
|
+
run "cd #{app_path} && #{bundle_cmd} install #{args.join(' ')}"
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
data/lib/bundler/fetcher.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'uri'
|
2
|
-
require '
|
2
|
+
require 'bundler/vendored_persistent'
|
3
3
|
|
4
4
|
module Bundler
|
5
5
|
# Handles all the fetching with the rubygems server
|
@@ -104,6 +104,16 @@ module Bundler
|
|
104
104
|
end
|
105
105
|
|
106
106
|
index
|
107
|
+
rescue LoadError => e
|
108
|
+
if e.message.include?("cannot load such file -- openssl")
|
109
|
+
raise InstallError,
|
110
|
+
"\nCould not load OpenSSL." \
|
111
|
+
"\nYou must recompile Ruby with OpenSSL support or change the sources in your" \
|
112
|
+
"\nGemfile from 'https' to 'http'. Instructions for compiling with OpenSSL" \
|
113
|
+
"\nusing RVM are available at rvm.io/packages/openssl."
|
114
|
+
else
|
115
|
+
raise e
|
116
|
+
end
|
107
117
|
end
|
108
118
|
|
109
119
|
# fetch index
|
@@ -170,7 +180,7 @@ module Bundler
|
|
170
180
|
name, requirement = d
|
171
181
|
dep = Gem::Dependency.new(name, requirement.split(", "))
|
172
182
|
rescue ArgumentError => e
|
173
|
-
if e.message.include?('
|
183
|
+
if e.message.include?('Ill-formed requirement ["#<YAML::Syck::DefaultKey')
|
174
184
|
puts # we shouldn't print the error message on the "fetching info" status line
|
175
185
|
raise GemspecError, %{Unfortunately, the gem #{s[:name]} (#{s[:number]}) } +
|
176
186
|
%{has an invalid gemspec. As a result, Bundler cannot install this Gemfile. } +
|
@@ -208,7 +218,7 @@ module Bundler
|
|
208
218
|
Bundler.ui.debug "Could not fetch prerelease specs from #{strip_user_pass_from_uri(@remote_uri)}"
|
209
219
|
end
|
210
220
|
rescue Gem::RemoteFetcher::FetchError
|
211
|
-
raise
|
221
|
+
raise HTTPError, "Could not reach #{strip_user_pass_from_uri(@remote_uri)}"
|
212
222
|
end
|
213
223
|
|
214
224
|
return spec_list
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Bundler
|
2
|
+
def self.with_friendly_errors
|
3
|
+
begin
|
4
|
+
yield
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
Bundler.ui.error e.message
|
7
|
+
Bundler.ui.debug e.backtrace.join("\n")
|
8
|
+
exit e.status_code
|
9
|
+
rescue Interrupt => e
|
10
|
+
Bundler.ui.error "\nQuitting..."
|
11
|
+
Bundler.ui.debug e.backtrace.join("\n")
|
12
|
+
exit 1
|
13
|
+
rescue SystemExit => e
|
14
|
+
exit e.status
|
15
|
+
rescue Exception => e
|
16
|
+
Bundler.ui.error(
|
17
|
+
"Unfortunately, a fatal error has occurred. Please see the Bundler \n" \
|
18
|
+
"troubleshooting documentation at http://bit.ly/bundler-issues. Thanks! \n")
|
19
|
+
raise e
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/bundler/installer.rb
CHANGED
@@ -124,6 +124,7 @@ module Bundler
|
|
124
124
|
msg = "An error occurred while installing #{spec.name} (#{spec.version}),"
|
125
125
|
msg << " and Bundler cannot continue.\nMake sure that `gem install"
|
126
126
|
msg << " #{spec.name} -v '#{spec.version}'` succeeds before bundling."
|
127
|
+
Bundler.ui.debug e.backtrace.join("\n")
|
127
128
|
raise Bundler::InstallError, msg
|
128
129
|
end
|
129
130
|
|
data/lib/bundler/settings.rb
CHANGED
@@ -2,8 +2,8 @@ module Bundler
|
|
2
2
|
class Settings
|
3
3
|
def initialize(root)
|
4
4
|
@root = root
|
5
|
-
@local_config = (
|
6
|
-
@global_config = (
|
5
|
+
@local_config = load_config(local_config_file)
|
6
|
+
@global_config = load_config(global_config_file)
|
7
7
|
end
|
8
8
|
|
9
9
|
def [](key)
|
@@ -124,5 +124,13 @@ module Bundler
|
|
124
124
|
def local_config_file
|
125
125
|
Pathname.new("#{@root}/config")
|
126
126
|
end
|
127
|
+
|
128
|
+
def load_config(config_file)
|
129
|
+
if config_file.exist? && !config_file.size.zero?
|
130
|
+
yaml = YAML.load_file(config_file)
|
131
|
+
end
|
132
|
+
yaml || {}
|
133
|
+
end
|
134
|
+
|
127
135
|
end
|
128
136
|
end
|
data/lib/bundler/source.rb
CHANGED
@@ -2,6 +2,7 @@ if defined?(Thor)
|
|
2
2
|
Bundler.ui.warn "Thor has already been required. " +
|
3
3
|
"This may cause Bundler to malfunction in unexpected ways."
|
4
4
|
end
|
5
|
-
|
5
|
+
vendor = File.expand_path('../vendor', __FILE__)
|
6
|
+
$:.unshift(vendor) unless $:.include?(vendor)
|
6
7
|
require 'thor'
|
7
8
|
require 'thor/actions'
|
data/lib/bundler/version.rb
CHANGED
@@ -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.2.0.pre" unless defined?(::Bundler::VERSION)
|
5
|
+
VERSION = "1.2.0.pre.1" unless defined?(::Bundler::VERSION)
|
6
6
|
end
|
data/man/bundle-config.ronn
CHANGED
@@ -96,3 +96,35 @@ You can set them globally either via environment variables or `bundle config`,
|
|
96
96
|
whichever is preferable for your setup. If you use both, environment variables
|
97
97
|
will take preference over global settings.
|
98
98
|
|
99
|
+
## LOCAL GIT REPOS
|
100
|
+
|
101
|
+
Bundler also allows you to work against a git repository locally
|
102
|
+
instead of using the remote version. This can be achieved by setting
|
103
|
+
up a local override:
|
104
|
+
|
105
|
+
bundle config local.GEM_NAME /path/to/local/git/repository
|
106
|
+
|
107
|
+
For example, in order to use a local Rack repository, a developer could call:
|
108
|
+
|
109
|
+
bundle config local.rack ~/Work/git/rack
|
110
|
+
|
111
|
+
Now instead of checking out the remote git repository, the local
|
112
|
+
override will be used. Similar to a path source, every time the local
|
113
|
+
git repository change, changes will be automatically picked up by
|
114
|
+
Bundler. This means a commit in the local git repo will update the
|
115
|
+
revision in the `Gemfile.lock` to the local git repo revision. This
|
116
|
+
requires the same attention as git submodules. Before pushing to
|
117
|
+
the remote, you need to ensure the local override was pushed, otherwise
|
118
|
+
you may point to a commit that only exists in your local machine.
|
119
|
+
|
120
|
+
Bundler does many checks to ensure a developer won't work with
|
121
|
+
invalid references. Particularly, we force a developer to specify
|
122
|
+
a branch in the `Gemfile` in order to use this feature. If the branch
|
123
|
+
specified in the `Gemfile` and the current branch in the local git
|
124
|
+
repository do not match, Bundler will abort. This ensures that
|
125
|
+
a developer is always working against the correct branches, avoiding
|
126
|
+
a reference to be accidentally updated.
|
127
|
+
|
128
|
+
Finally, Bundler also ensures that the current revision in the
|
129
|
+
`Gemfile.lock` exists in the local git repository. By doing this, Bundler
|
130
|
+
forces you to fetch the latest changes in the remotes.
|
data/man/gemfile.5.ronn
CHANGED
@@ -25,6 +25,33 @@ might contain the gems listed in the `Gemfile`.
|
|
25
25
|
|
26
26
|
Each of these _source_s `MUST` be a valid Rubygems repository.
|
27
27
|
|
28
|
+
## RUBY (#ruby)
|
29
|
+
|
30
|
+
If your application requires a specific Ruby version or engine, specify your
|
31
|
+
requirements using the `ruby` method, with the following arguments.
|
32
|
+
All parameters are `OPTIONAL` unless otherwise specified.
|
33
|
+
|
34
|
+
### VERSION (required)
|
35
|
+
|
36
|
+
The version of Ruby that your application requires. If your application
|
37
|
+
requires an alternate Ruby engine, such as JRuby or Rubinius, this should be
|
38
|
+
the Ruby version that the engine is compatible with.
|
39
|
+
|
40
|
+
ruby "1.9.3"
|
41
|
+
|
42
|
+
### ENGINE (:engine)
|
43
|
+
|
44
|
+
Each application _may_ specify a Ruby engine. If an engine is specified, an
|
45
|
+
engine version _must_ also be specified.
|
46
|
+
|
47
|
+
### ENGINE VERSION (:engine_version)
|
48
|
+
|
49
|
+
Each application _may_ specify a Ruby engine version. If an engine version is
|
50
|
+
specified, an engine _must_ also be specified. If the engine is "ruby" the
|
51
|
+
engine version specified _must_ match the Ruby version.
|
52
|
+
|
53
|
+
ruby "1.8.7", :engine => "jruby", :engine_version => "1.6.7"
|
54
|
+
|
28
55
|
## GEMS (#gem)
|
29
56
|
|
30
57
|
Specify gem requirements using the `gem` method, with the following arguments.
|
@@ -399,4 +399,38 @@ OUTPUT
|
|
399
399
|
out.should_not include("#{user}:#{password}")
|
400
400
|
end
|
401
401
|
end
|
402
|
+
|
403
|
+
context "when ruby is compiled without openssl" do
|
404
|
+
before do
|
405
|
+
# Install a monkeypatch that reproduces the effects of openssl being
|
406
|
+
# missing when the fetcher runs, as happens in real life. The reason
|
407
|
+
# we can't just overwrite openssl.rb is that Artifice uses it.
|
408
|
+
bundled_app("broken_ssl").mkpath
|
409
|
+
bundled_app("broken_ssl/openssl.rb").open("w") do |f|
|
410
|
+
f.write <<-RUBY
|
411
|
+
$:.delete File.expand_path("..", __FILE__)
|
412
|
+
require 'openssl'
|
413
|
+
|
414
|
+
require 'bundler'
|
415
|
+
class Bundler::Fetcher
|
416
|
+
def fetch(*)
|
417
|
+
raise LoadError, "cannot load such file -- openssl"
|
418
|
+
end
|
419
|
+
end
|
420
|
+
RUBY
|
421
|
+
end
|
422
|
+
end
|
423
|
+
|
424
|
+
it "explains what to do to get it" do
|
425
|
+
gemfile <<-G
|
426
|
+
source "#{source_uri.gsub(/http/, 'https')}"
|
427
|
+
gem "rack"
|
428
|
+
G
|
429
|
+
|
430
|
+
bundle :install, :artifice => "endpoint",
|
431
|
+
:env => {"RUBYOPT" => "-I#{bundled_app("broken_ssl")}"}
|
432
|
+
out.should include("Could not load OpenSSL.")
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
402
436
|
end
|
data/spec/other/check_spec.rb
CHANGED
@@ -201,6 +201,20 @@ describe "bundle check" do
|
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
|
+
it "fails when there's no lock file and frozen is set" do
|
205
|
+
gemfile <<-G
|
206
|
+
source "file://#{gem_repo1}"
|
207
|
+
gem "foo"
|
208
|
+
G
|
209
|
+
|
210
|
+
bundle "install"
|
211
|
+
bundle "install --deployment"
|
212
|
+
FileUtils.rm(bundled_app("Gemfile.lock"))
|
213
|
+
|
214
|
+
bundle :check, :exitstatus => true
|
215
|
+
exitstatus.should_not eq(0)
|
216
|
+
end
|
217
|
+
|
204
218
|
context "--path" do
|
205
219
|
before do
|
206
220
|
gemfile <<-G
|
data/spec/other/platform_spec.rb
CHANGED
@@ -594,9 +594,9 @@ G
|
|
594
594
|
it "fails when the engine version doesn't match" do
|
595
595
|
simulate_ruby_engine "jruby" do
|
596
596
|
gemfile <<-G
|
597
|
-
|
597
|
+
gem "rack", "0.9.1"
|
598
598
|
|
599
|
-
|
599
|
+
#{engine_version_incorrect}
|
600
600
|
G
|
601
601
|
|
602
602
|
bundle "exec rackup", :exitstatus => true
|
metadata
CHANGED
@@ -1,65 +1,60 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.0.pre.1
|
5
5
|
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
- pre
|
11
|
-
version: 1.2.0.pre
|
12
6
|
platform: ruby
|
13
|
-
authors:
|
14
|
-
-
|
7
|
+
authors:
|
8
|
+
- André Arko
|
15
9
|
- Terence Lee
|
16
10
|
- Carl Lerche
|
17
11
|
- Yehuda Katz
|
18
12
|
autorequire:
|
19
13
|
bindir: bin
|
20
14
|
cert_chain: []
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
date: 2012-05-28 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
25
18
|
name: ronn
|
26
|
-
|
27
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
28
20
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
33
|
-
segments:
|
34
|
-
- 0
|
35
|
-
version: "0"
|
21
|
+
requirements:
|
22
|
+
- - ! '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0'
|
36
25
|
type: :development
|
37
|
-
version_requirements: *id001
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rspec
|
40
26
|
prerelease: false
|
41
|
-
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
42
36
|
none: false
|
43
|
-
requirements:
|
37
|
+
requirements:
|
44
38
|
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
segments:
|
48
|
-
- 2
|
49
|
-
- 0
|
50
|
-
version: "2.0"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
51
41
|
type: :development
|
52
|
-
|
53
|
-
|
54
|
-
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '2.0'
|
49
|
+
description: Bundler manages an application's dependencies through its entire life,
|
50
|
+
across many machines, systematically and repeatably
|
51
|
+
email:
|
55
52
|
- andre@arko.net
|
56
|
-
executables:
|
53
|
+
executables:
|
57
54
|
- bundle
|
58
55
|
extensions: []
|
59
|
-
|
60
56
|
extra_rdoc_files: []
|
61
|
-
|
62
|
-
files:
|
57
|
+
files:
|
63
58
|
- .gitignore
|
64
59
|
- .travis.yml
|
65
60
|
- CHANGELOG.md
|
@@ -81,6 +76,7 @@ files:
|
|
81
76
|
- lib/bundler/endpoint_specification.rb
|
82
77
|
- lib/bundler/environment.rb
|
83
78
|
- lib/bundler/fetcher.rb
|
79
|
+
- lib/bundler/friendly_errors.rb
|
84
80
|
- lib/bundler/gem_helper.rb
|
85
81
|
- lib/bundler/gem_helpers.rb
|
86
82
|
- lib/bundler/gem_installer.rb
|
@@ -147,6 +143,7 @@ files:
|
|
147
143
|
- lib/bundler/vendor/thor/task.rb
|
148
144
|
- lib/bundler/vendor/thor/util.rb
|
149
145
|
- lib/bundler/vendor/thor/version.rb
|
146
|
+
- lib/bundler/vendored_persistent.rb
|
150
147
|
- lib/bundler/vendored_thor.rb
|
151
148
|
- lib/bundler/version.rb
|
152
149
|
- lib/bundler/vlad.rb
|
@@ -235,56 +232,119 @@ files:
|
|
235
232
|
- spec/update/gems_spec.rb
|
236
233
|
- spec/update/git_spec.rb
|
237
234
|
- spec/update/source_spec.rb
|
238
|
-
- lib/bundler/man/bundle-exec
|
239
235
|
- lib/bundler/man/bundle
|
236
|
+
- lib/bundler/man/bundle-config
|
237
|
+
- lib/bundler/man/bundle-config.txt
|
238
|
+
- lib/bundler/man/bundle-exec
|
239
|
+
- lib/bundler/man/bundle-exec.txt
|
240
240
|
- lib/bundler/man/bundle-install
|
241
|
-
- lib/bundler/man/
|
241
|
+
- lib/bundler/man/bundle-install.txt
|
242
242
|
- lib/bundler/man/bundle-package
|
243
|
+
- lib/bundler/man/bundle-package.txt
|
243
244
|
- lib/bundler/man/bundle-update
|
244
|
-
- lib/bundler/man/bundle-exec.txt
|
245
|
-
- lib/bundler/man/gemfile.5.txt
|
246
245
|
- lib/bundler/man/bundle-update.txt
|
247
|
-
- lib/bundler/man/bundle-config
|
248
|
-
- lib/bundler/man/bundle-config.txt
|
249
246
|
- lib/bundler/man/bundle.txt
|
250
|
-
- lib/bundler/man/
|
251
|
-
- lib/bundler/man/
|
247
|
+
- lib/bundler/man/gemfile.5
|
248
|
+
- lib/bundler/man/gemfile.5.txt
|
252
249
|
homepage: http://gembundler.com
|
253
250
|
licenses: []
|
254
|
-
|
255
251
|
post_install_message:
|
256
252
|
rdoc_options: []
|
257
|
-
|
258
|
-
require_paths:
|
253
|
+
require_paths:
|
259
254
|
- lib
|
260
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
255
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
261
256
|
none: false
|
262
|
-
requirements:
|
263
|
-
- -
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
hash: 57
|
266
|
-
segments:
|
267
|
-
- 1
|
268
|
-
- 8
|
269
|
-
- 7
|
257
|
+
requirements:
|
258
|
+
- - ! '>='
|
259
|
+
- !ruby/object:Gem::Version
|
270
260
|
version: 1.8.7
|
271
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
261
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
262
|
none: false
|
273
|
-
requirements:
|
274
|
-
- -
|
275
|
-
- !ruby/object:Gem::Version
|
276
|
-
hash: 23
|
277
|
-
segments:
|
278
|
-
- 1
|
279
|
-
- 3
|
280
|
-
- 6
|
263
|
+
requirements:
|
264
|
+
- - ! '>='
|
265
|
+
- !ruby/object:Gem::Version
|
281
266
|
version: 1.3.6
|
282
267
|
requirements: []
|
283
|
-
|
284
268
|
rubyforge_project: bundler
|
285
269
|
rubygems_version: 1.8.21
|
286
270
|
signing_key:
|
287
271
|
specification_version: 3
|
288
272
|
summary: The best way to manage your application's dependencies
|
289
|
-
test_files:
|
290
|
-
|
273
|
+
test_files:
|
274
|
+
- spec/bundler/dsl_spec.rb
|
275
|
+
- spec/bundler/gem_helper_spec.rb
|
276
|
+
- spec/bundler/source_spec.rb
|
277
|
+
- spec/cache/gems_spec.rb
|
278
|
+
- spec/cache/git_spec.rb
|
279
|
+
- spec/cache/path_spec.rb
|
280
|
+
- spec/cache/platform_spec.rb
|
281
|
+
- spec/install/deploy_spec.rb
|
282
|
+
- spec/install/gems/c_ext_spec.rb
|
283
|
+
- spec/install/gems/dependency_api_spec.rb
|
284
|
+
- spec/install/gems/env_spec.rb
|
285
|
+
- spec/install/gems/flex_spec.rb
|
286
|
+
- spec/install/gems/groups_spec.rb
|
287
|
+
- spec/install/gems/packed_spec.rb
|
288
|
+
- spec/install/gems/platform_spec.rb
|
289
|
+
- spec/install/gems/post_install_spec.rb
|
290
|
+
- spec/install/gems/resolving_spec.rb
|
291
|
+
- spec/install/gems/simple_case_spec.rb
|
292
|
+
- spec/install/gems/standalone_spec.rb
|
293
|
+
- spec/install/gems/sudo_spec.rb
|
294
|
+
- spec/install/gems/win32_spec.rb
|
295
|
+
- spec/install/gemspec_spec.rb
|
296
|
+
- spec/install/git_spec.rb
|
297
|
+
- spec/install/invalid_spec.rb
|
298
|
+
- spec/install/path_spec.rb
|
299
|
+
- spec/install/upgrade_spec.rb
|
300
|
+
- spec/lock/git_spec.rb
|
301
|
+
- spec/lock/lockfile_spec.rb
|
302
|
+
- spec/other/check_spec.rb
|
303
|
+
- spec/other/clean_spec.rb
|
304
|
+
- spec/other/config_spec.rb
|
305
|
+
- spec/other/console_spec.rb
|
306
|
+
- spec/other/exec_spec.rb
|
307
|
+
- spec/other/ext_spec.rb
|
308
|
+
- spec/other/help_spec.rb
|
309
|
+
- spec/other/init_spec.rb
|
310
|
+
- spec/other/newgem_spec.rb
|
311
|
+
- spec/other/open_spec.rb
|
312
|
+
- spec/other/outdated_spec.rb
|
313
|
+
- spec/other/platform_spec.rb
|
314
|
+
- spec/other/show_spec.rb
|
315
|
+
- spec/quality_spec.rb
|
316
|
+
- spec/realworld/edgecases_spec.rb
|
317
|
+
- spec/resolver/basic_spec.rb
|
318
|
+
- spec/resolver/platform_spec.rb
|
319
|
+
- spec/runtime/executable_spec.rb
|
320
|
+
- spec/runtime/load_spec.rb
|
321
|
+
- spec/runtime/platform_spec.rb
|
322
|
+
- spec/runtime/require_spec.rb
|
323
|
+
- spec/runtime/setup_spec.rb
|
324
|
+
- spec/runtime/with_clean_env_spec.rb
|
325
|
+
- spec/spec_helper.rb
|
326
|
+
- spec/support/artifice/endopint_marshal_fail_basic_authentication.rb
|
327
|
+
- spec/support/artifice/endpoint.rb
|
328
|
+
- spec/support/artifice/endpoint_500.rb
|
329
|
+
- spec/support/artifice/endpoint_api_missing.rb
|
330
|
+
- spec/support/artifice/endpoint_basic_authentication.rb
|
331
|
+
- spec/support/artifice/endpoint_extra.rb
|
332
|
+
- spec/support/artifice/endpoint_extra_missing.rb
|
333
|
+
- spec/support/artifice/endpoint_fallback.rb
|
334
|
+
- spec/support/artifice/endpoint_marshal_fail.rb
|
335
|
+
- spec/support/artifice/endpoint_redirect.rb
|
336
|
+
- spec/support/builders.rb
|
337
|
+
- spec/support/fakeweb/rack-1.0.0.marshal
|
338
|
+
- spec/support/fakeweb/windows.rb
|
339
|
+
- spec/support/helpers.rb
|
340
|
+
- spec/support/indexes.rb
|
341
|
+
- spec/support/matchers.rb
|
342
|
+
- spec/support/path.rb
|
343
|
+
- spec/support/platforms.rb
|
344
|
+
- spec/support/ruby_ext.rb
|
345
|
+
- spec/support/rubygems_ext.rb
|
346
|
+
- spec/support/rubygems_hax/platform.rb
|
347
|
+
- spec/support/sudo.rb
|
348
|
+
- spec/update/gems_spec.rb
|
349
|
+
- spec/update/git_spec.rb
|
350
|
+
- spec/update/source_spec.rb
|