bundler 1.7.15 → 1.8.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bundler might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +5 -14
- data/.rspec +1 -0
- data/.travis.yml +22 -15
- data/CHANGELOG.md +43 -13
- data/CODE_OF_CONDUCT.md +40 -0
- data/CONTRIBUTING.md +14 -12
- data/DEVELOPMENT.md +4 -2
- data/ISSUES.md +1 -1
- data/README.md +10 -14
- data/Rakefile +10 -10
- data/bin/bundle +1 -1
- data/bundler.gemspec +5 -4
- data/lib/bundler.rb +22 -3
- data/lib/bundler/anonymizable_uri.rb +24 -8
- data/lib/bundler/cli.rb +103 -66
- data/lib/bundler/cli/cache.rb +1 -0
- data/lib/bundler/cli/clean.rb +11 -4
- data/lib/bundler/cli/common.rb +2 -0
- data/lib/bundler/cli/console.rb +22 -26
- data/lib/bundler/cli/exec.rb +29 -22
- data/lib/bundler/cli/gem.rb +125 -37
- data/lib/bundler/cli/install.rb +22 -9
- data/lib/bundler/cli/outdated.rb +1 -1
- data/lib/bundler/cli/package.rb +8 -1
- data/lib/bundler/cli/show.rb +29 -3
- data/lib/bundler/cli/update.rb +2 -2
- data/lib/bundler/cli/viz.rb +1 -1
- data/lib/bundler/definition.rb +14 -22
- data/lib/bundler/dependency.rb +8 -1
- data/lib/bundler/dsl.rb +17 -4
- data/lib/bundler/endpoint_specification.rb +1 -1
- data/lib/bundler/env.rb +44 -25
- data/lib/bundler/fetcher.rb +33 -25
- data/lib/bundler/friendly_errors.rb +38 -5
- data/lib/bundler/gem_helper.rb +16 -10
- data/lib/bundler/gem_helpers.rb +1 -0
- data/lib/bundler/graph.rb +4 -1
- data/lib/bundler/index.rb +15 -25
- data/lib/bundler/installer.rb +6 -6
- data/lib/bundler/lockfile_parser.rb +7 -7
- data/lib/bundler/resolver.rb +2 -1
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +1 -0
- data/lib/bundler/rubygems_integration.rb +1 -1
- data/lib/bundler/runtime.rb +22 -40
- data/lib/bundler/settings.rb +14 -5
- data/lib/bundler/setup.rb +2 -1
- data/lib/bundler/shared_helpers.rb +56 -4
- data/lib/bundler/source.rb +8 -9
- data/lib/bundler/source/git.rb +5 -1
- data/lib/bundler/source/git/git_proxy.rb +4 -0
- data/lib/bundler/source/path.rb +8 -11
- data/lib/bundler/source/path/installer.rb +0 -2
- data/lib/bundler/source/rubygems.rb +58 -72
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +13 -0
- data/lib/bundler/templates/newgem/LICENSE.txt.tt +17 -18
- data/lib/bundler/templates/newgem/README.md.tt +9 -1
- data/lib/bundler/templates/newgem/Rakefile.tt +2 -0
- data/lib/bundler/templates/newgem/bin/console.tt +14 -0
- data/lib/bundler/templates/newgem/bin/setup.tt +7 -0
- data/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
- data/lib/bundler/templates/newgem/gitignore.tt +2 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +1 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +17 -13
- data/lib/bundler/templates/newgem/test/test_newgem.rb.tt +1 -1
- data/lib/bundler/ui/shell.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +73 -0
- data/man/bundle-config.ronn +17 -15
- data/man/bundle-install.ronn +102 -93
- data/man/bundle-update.ronn +39 -30
- data/man/bundle.ronn +6 -0
- data/man/gemfile.5.ronn +74 -13
- metadata +10 -231
- data/lib/bundler/parallel_workers.rb +0 -18
- data/lib/bundler/parallel_workers/thread_worker.rb +0 -30
- data/lib/bundler/parallel_workers/unix_worker.rb +0 -101
- data/lib/bundler/parallel_workers/worker.rb +0 -69
- data/lib/bundler/templates/newgem/bin/newgem.tt +0 -3
- data/spec/bundler/anonymizable_uri_spec.rb +0 -32
- data/spec/bundler/bundler_spec.rb +0 -72
- data/spec/bundler/cli_spec.rb +0 -16
- data/spec/bundler/definition_spec.rb +0 -22
- data/spec/bundler/dsl_spec.rb +0 -82
- data/spec/bundler/friendly_errors_spec.rb +0 -13
- data/spec/bundler/gem_helper_spec.rb +0 -226
- data/spec/bundler/psyched_yaml_spec.rb +0 -8
- data/spec/bundler/retry_spec.rb +0 -59
- data/spec/bundler/settings_spec.rb +0 -13
- data/spec/bundler/source/rubygems_spec.rb +0 -25
- data/spec/bundler/source_list_spec.rb +0 -361
- data/spec/cache/gems_spec.rb +0 -284
- data/spec/cache/git_spec.rb +0 -188
- data/spec/cache/path_spec.rb +0 -121
- data/spec/cache/platform_spec.rb +0 -57
- data/spec/commands/binstubs_spec.rb +0 -219
- data/spec/commands/check_spec.rb +0 -278
- data/spec/commands/clean_spec.rb +0 -592
- data/spec/commands/config_spec.rb +0 -263
- data/spec/commands/console_spec.rb +0 -76
- data/spec/commands/exec_spec.rb +0 -309
- data/spec/commands/help_spec.rb +0 -39
- data/spec/commands/init_spec.rb +0 -39
- data/spec/commands/inject_spec.rb +0 -78
- data/spec/commands/licenses_spec.rb +0 -18
- data/spec/commands/newgem_spec.rb +0 -428
- data/spec/commands/open_spec.rb +0 -68
- data/spec/commands/outdated_spec.rb +0 -156
- data/spec/commands/package_spec.rb +0 -114
- data/spec/commands/show_spec.rb +0 -125
- data/spec/install/binstubs_spec.rb +0 -24
- data/spec/install/bundler_spec.rb +0 -146
- data/spec/install/deploy_spec.rb +0 -250
- data/spec/install/gemfile/gemspec_spec.rb +0 -170
- data/spec/install/gemfile/git_spec.rb +0 -967
- data/spec/install/gemfile/path_spec.rb +0 -500
- data/spec/install/gemfile_spec.rb +0 -44
- data/spec/install/gems/c_ext_spec.rb +0 -48
- data/spec/install/gems/dependency_api_spec.rb +0 -652
- data/spec/install/gems/env_spec.rb +0 -107
- data/spec/install/gems/flex_spec.rb +0 -314
- data/spec/install/gems/groups_spec.rb +0 -308
- data/spec/install/gems/mirror_spec.rb +0 -39
- data/spec/install/gems/platform_spec.rb +0 -195
- data/spec/install/gems/post_install_spec.rb +0 -121
- data/spec/install/gems/resolving_spec.rb +0 -124
- data/spec/install/gems/simple_case_spec.rb +0 -377
- data/spec/install/gems/sources_spec.rb +0 -386
- data/spec/install/gems/standalone_spec.rb +0 -260
- data/spec/install/gems/sudo_spec.rb +0 -136
- data/spec/install/gems/win32_spec.rb +0 -26
- data/spec/install/gemspecs_spec.rb +0 -50
- data/spec/install/path_spec.rb +0 -150
- data/spec/install/post_bundle_message_spec.rb +0 -142
- data/spec/install/prereleases_spec.rb +0 -43
- data/spec/install/security_policy_spec.rb +0 -77
- data/spec/install/upgrade_spec.rb +0 -26
- data/spec/lock/git_spec.rb +0 -34
- data/spec/lock/lockfile_spec.rb +0 -924
- data/spec/other/bundle_ruby_spec.rb +0 -142
- data/spec/other/cli_dispatch_spec.rb +0 -21
- data/spec/other/ext_spec.rb +0 -60
- data/spec/other/platform_spec.rb +0 -1285
- data/spec/other/ssl_cert_spec.rb +0 -23
- data/spec/quality_spec.rb +0 -88
- data/spec/realworld/dependency_api_spec.rb +0 -60
- data/spec/realworld/edgecases_spec.rb +0 -212
- data/spec/realworld/parallel_spec.rb +0 -71
- data/spec/resolver/basic_spec.rb +0 -66
- data/spec/resolver/platform_spec.rb +0 -88
- data/spec/runtime/executable_spec.rb +0 -149
- data/spec/runtime/load_spec.rb +0 -107
- data/spec/runtime/platform_spec.rb +0 -90
- data/spec/runtime/require_spec.rb +0 -332
- data/spec/runtime/setup_spec.rb +0 -853
- data/spec/runtime/with_clean_env_spec.rb +0 -91
- data/spec/spec_helper.rb +0 -123
- data/spec/support/artifice/endopint_marshal_fail_basic_authentication.rb +0 -13
- data/spec/support/artifice/endpoint.rb +0 -71
- data/spec/support/artifice/endpoint_500.rb +0 -37
- data/spec/support/artifice/endpoint_api_forbidden.rb +0 -11
- data/spec/support/artifice/endpoint_api_missing.rb +0 -16
- data/spec/support/artifice/endpoint_basic_authentication.rb +0 -13
- data/spec/support/artifice/endpoint_creds_diff_host.rb +0 -38
- data/spec/support/artifice/endpoint_extra.rb +0 -31
- data/spec/support/artifice/endpoint_extra_api.rb +0 -32
- data/spec/support/artifice/endpoint_extra_missing.rb +0 -15
- data/spec/support/artifice/endpoint_fallback.rb +0 -17
- data/spec/support/artifice/endpoint_host_redirect.rb +0 -15
- data/spec/support/artifice/endpoint_marshal_fail.rb +0 -11
- data/spec/support/artifice/endpoint_redirect.rb +0 -15
- data/spec/support/artifice/endpoint_strict_basic_authentication.rb +0 -18
- data/spec/support/artifice/endpoint_timeout.rb +0 -13
- data/spec/support/builders.rb +0 -693
- data/spec/support/fakeweb/rack-1.0.0.marshal +0 -2
- data/spec/support/fakeweb/windows.rb +0 -23
- data/spec/support/hax.rb +0 -22
- data/spec/support/helpers.rb +0 -361
- data/spec/support/indexes.rb +0 -280
- data/spec/support/matchers.rb +0 -77
- data/spec/support/path.rb +0 -85
- data/spec/support/permissions.rb +0 -10
- data/spec/support/platforms.rb +0 -94
- data/spec/support/ruby_ext.rb +0 -20
- data/spec/support/rubygems_ext.rb +0 -39
- data/spec/support/streams.rb +0 -13
- data/spec/support/sudo.rb +0 -16
- data/spec/update/gems_spec.rb +0 -201
- data/spec/update/git_spec.rb +0 -283
- data/spec/update/path_spec.rb +0 -18
@@ -1,107 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle install with ENV conditionals" do
|
4
|
-
describe "when just setting an ENV key as a string" do
|
5
|
-
before :each do
|
6
|
-
gemfile <<-G
|
7
|
-
source "file://#{gem_repo1}"
|
8
|
-
|
9
|
-
env "BUNDLER_TEST" do
|
10
|
-
gem "rack"
|
11
|
-
end
|
12
|
-
G
|
13
|
-
end
|
14
|
-
|
15
|
-
it "excludes the gems when the ENV variable is not set" do
|
16
|
-
bundle :install
|
17
|
-
should_not_be_installed "rack"
|
18
|
-
end
|
19
|
-
|
20
|
-
it "includes the gems when the ENV variable is set" do
|
21
|
-
ENV['BUNDLER_TEST'] = '1'
|
22
|
-
bundle :install
|
23
|
-
should_be_installed "rack 1.0"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "when just setting an ENV key as a symbol" do
|
28
|
-
before :each do
|
29
|
-
gemfile <<-G
|
30
|
-
source "file://#{gem_repo1}"
|
31
|
-
|
32
|
-
env :BUNDLER_TEST do
|
33
|
-
gem "rack"
|
34
|
-
end
|
35
|
-
G
|
36
|
-
end
|
37
|
-
|
38
|
-
it "excludes the gems when the ENV variable is not set" do
|
39
|
-
bundle :install
|
40
|
-
should_not_be_installed "rack"
|
41
|
-
end
|
42
|
-
|
43
|
-
it "includes the gems when the ENV variable is set" do
|
44
|
-
ENV['BUNDLER_TEST'] = '1'
|
45
|
-
bundle :install
|
46
|
-
should_be_installed "rack 1.0"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "when setting a string to match the env" do
|
51
|
-
before :each do
|
52
|
-
gemfile <<-G
|
53
|
-
source "file://#{gem_repo1}"
|
54
|
-
|
55
|
-
env "BUNDLER_TEST" => "foo" do
|
56
|
-
gem "rack"
|
57
|
-
end
|
58
|
-
G
|
59
|
-
end
|
60
|
-
|
61
|
-
it "excludes the gems when the ENV variable is not set" do
|
62
|
-
bundle :install
|
63
|
-
should_not_be_installed "rack"
|
64
|
-
end
|
65
|
-
|
66
|
-
it "excludes the gems when the ENV variable is set but does not match the condition" do
|
67
|
-
ENV['BUNDLER_TEST'] = '1'
|
68
|
-
bundle :install
|
69
|
-
should_not_be_installed "rack"
|
70
|
-
end
|
71
|
-
|
72
|
-
it "includes the gems when the ENV variable is set and matches the condition" do
|
73
|
-
ENV['BUNDLER_TEST'] = 'foo'
|
74
|
-
bundle :install
|
75
|
-
should_be_installed "rack 1.0"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "when setting a regex to match the env" do
|
80
|
-
before :each do
|
81
|
-
gemfile <<-G
|
82
|
-
source "file://#{gem_repo1}"
|
83
|
-
|
84
|
-
env "BUNDLER_TEST" => /foo/ do
|
85
|
-
gem "rack"
|
86
|
-
end
|
87
|
-
G
|
88
|
-
end
|
89
|
-
|
90
|
-
it "excludes the gems when the ENV variable is not set" do
|
91
|
-
bundle :install
|
92
|
-
should_not_be_installed "rack"
|
93
|
-
end
|
94
|
-
|
95
|
-
it "excludes the gems when the ENV variable is set but does not match the condition" do
|
96
|
-
ENV['BUNDLER_TEST'] = 'fo'
|
97
|
-
bundle :install
|
98
|
-
should_not_be_installed "rack"
|
99
|
-
end
|
100
|
-
|
101
|
-
it "includes the gems when the ENV variable is set and matches the condition" do
|
102
|
-
ENV['BUNDLER_TEST'] = 'foobar'
|
103
|
-
bundle :install
|
104
|
-
should_be_installed "rack 1.0"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,314 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle flex_install" do
|
4
|
-
it "installs the gems as expected" do
|
5
|
-
install_gemfile <<-G
|
6
|
-
source "file://#{gem_repo1}"
|
7
|
-
gem 'rack'
|
8
|
-
G
|
9
|
-
|
10
|
-
should_be_installed "rack 1.0.0"
|
11
|
-
should_be_locked
|
12
|
-
end
|
13
|
-
|
14
|
-
it "installs even when the lockfile is invalid" do
|
15
|
-
install_gemfile <<-G
|
16
|
-
source "file://#{gem_repo1}"
|
17
|
-
gem 'rack'
|
18
|
-
G
|
19
|
-
|
20
|
-
should_be_installed "rack 1.0.0"
|
21
|
-
should_be_locked
|
22
|
-
|
23
|
-
gemfile <<-G
|
24
|
-
source "file://#{gem_repo1}"
|
25
|
-
gem 'rack', '1.0'
|
26
|
-
G
|
27
|
-
|
28
|
-
bundle :install
|
29
|
-
should_be_installed "rack 1.0.0"
|
30
|
-
should_be_locked
|
31
|
-
end
|
32
|
-
|
33
|
-
it "keeps child dependencies at the same version" do
|
34
|
-
build_repo2
|
35
|
-
|
36
|
-
install_gemfile <<-G
|
37
|
-
source "file://#{gem_repo2}"
|
38
|
-
gem "rack-obama"
|
39
|
-
G
|
40
|
-
|
41
|
-
should_be_installed "rack 1.0.0", "rack-obama 1.0.0"
|
42
|
-
|
43
|
-
update_repo2
|
44
|
-
install_gemfile <<-G
|
45
|
-
source "file://#{gem_repo2}"
|
46
|
-
gem "rack-obama", "1.0"
|
47
|
-
G
|
48
|
-
|
49
|
-
should_be_installed "rack 1.0.0", "rack-obama 1.0.0"
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "adding new gems" do
|
53
|
-
it "installs added gems without updating previously installed gems" do
|
54
|
-
build_repo2
|
55
|
-
|
56
|
-
install_gemfile <<-G
|
57
|
-
source "file://#{gem_repo2}"
|
58
|
-
gem 'rack'
|
59
|
-
G
|
60
|
-
|
61
|
-
update_repo2
|
62
|
-
|
63
|
-
install_gemfile <<-G
|
64
|
-
source "file://#{gem_repo2}"
|
65
|
-
gem 'rack'
|
66
|
-
gem 'activesupport', '2.3.5'
|
67
|
-
G
|
68
|
-
|
69
|
-
should_be_installed "rack 1.0.0", 'activesupport 2.3.5'
|
70
|
-
end
|
71
|
-
|
72
|
-
it "keeps child dependencies pinned" do
|
73
|
-
build_repo2
|
74
|
-
|
75
|
-
install_gemfile <<-G
|
76
|
-
source "file://#{gem_repo2}"
|
77
|
-
gem "rack-obama"
|
78
|
-
G
|
79
|
-
|
80
|
-
update_repo2
|
81
|
-
|
82
|
-
install_gemfile <<-G
|
83
|
-
source "file://#{gem_repo2}"
|
84
|
-
gem "rack-obama"
|
85
|
-
gem "thin"
|
86
|
-
G
|
87
|
-
|
88
|
-
should_be_installed "rack 1.0.0", 'rack-obama 1.0', 'thin 1.0'
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "removing gems" do
|
93
|
-
it "removes gems without changing the versions of remaining gems" do
|
94
|
-
build_repo2
|
95
|
-
install_gemfile <<-G
|
96
|
-
source "file://#{gem_repo2}"
|
97
|
-
gem 'rack'
|
98
|
-
gem 'activesupport', '2.3.5'
|
99
|
-
G
|
100
|
-
|
101
|
-
update_repo2
|
102
|
-
|
103
|
-
install_gemfile <<-G
|
104
|
-
source "file://#{gem_repo2}"
|
105
|
-
gem 'rack'
|
106
|
-
G
|
107
|
-
|
108
|
-
should_be_installed "rack 1.0.0"
|
109
|
-
should_not_be_installed "activesupport 2.3.5"
|
110
|
-
|
111
|
-
install_gemfile <<-G
|
112
|
-
source "file://#{gem_repo2}"
|
113
|
-
gem 'rack'
|
114
|
-
gem 'activesupport', '2.3.2'
|
115
|
-
G
|
116
|
-
|
117
|
-
should_be_installed "rack 1.0.0", 'activesupport 2.3.2'
|
118
|
-
end
|
119
|
-
|
120
|
-
it "removes top level dependencies when removed from the Gemfile while leaving other dependencies intact" do
|
121
|
-
build_repo2
|
122
|
-
install_gemfile <<-G
|
123
|
-
source "file://#{gem_repo2}"
|
124
|
-
gem 'rack'
|
125
|
-
gem 'activesupport', '2.3.5'
|
126
|
-
G
|
127
|
-
|
128
|
-
update_repo2
|
129
|
-
|
130
|
-
install_gemfile <<-G
|
131
|
-
source "file://#{gem_repo2}"
|
132
|
-
gem 'rack'
|
133
|
-
G
|
134
|
-
|
135
|
-
should_not_be_installed "activesupport 2.3.5"
|
136
|
-
end
|
137
|
-
|
138
|
-
it "removes child dependencies" do
|
139
|
-
build_repo2
|
140
|
-
install_gemfile <<-G
|
141
|
-
source "file://#{gem_repo2}"
|
142
|
-
gem 'rack-obama'
|
143
|
-
gem 'activesupport'
|
144
|
-
G
|
145
|
-
|
146
|
-
should_be_installed "rack 1.0.0", "rack-obama 1.0.0", "activesupport 2.3.5"
|
147
|
-
|
148
|
-
update_repo2
|
149
|
-
install_gemfile <<-G
|
150
|
-
source "file://#{gem_repo2}"
|
151
|
-
gem 'activesupport'
|
152
|
-
G
|
153
|
-
|
154
|
-
should_be_installed 'activesupport 2.3.5'
|
155
|
-
should_not_be_installed "rack-obama", "rack"
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
describe "when Gemfile conflicts with lockfile" do
|
160
|
-
before(:each) do
|
161
|
-
build_repo2
|
162
|
-
install_gemfile <<-G
|
163
|
-
source "file://#{gem_repo2}"
|
164
|
-
gem "rack_middleware"
|
165
|
-
G
|
166
|
-
|
167
|
-
should_be_installed "rack_middleware 1.0", "rack 0.9.1"
|
168
|
-
|
169
|
-
build_repo2
|
170
|
-
update_repo2 do
|
171
|
-
build_gem "rack-obama", "2.0" do |s|
|
172
|
-
s.add_dependency "rack", "=1.2"
|
173
|
-
end
|
174
|
-
build_gem "rack_middleware", "2.0" do |s|
|
175
|
-
s.add_dependency "rack", ">=1.0"
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
|
-
gemfile <<-G
|
180
|
-
source "file://#{gem_repo2}"
|
181
|
-
gem "rack-obama", "2.0"
|
182
|
-
gem "rack_middleware"
|
183
|
-
G
|
184
|
-
end
|
185
|
-
|
186
|
-
it "does not install gems whose dependencies are not met" do
|
187
|
-
bundle :install
|
188
|
-
ruby <<-RUBY, :expect_err => true
|
189
|
-
require 'bundler/setup'
|
190
|
-
RUBY
|
191
|
-
expect(err).to match(/could not find gem 'rack-obama/i)
|
192
|
-
end
|
193
|
-
|
194
|
-
it "suggests bundle update when the Gemfile requires different versions than the lock" do
|
195
|
-
nice_error = <<-E.strip.gsub(/^ {8}/, '')
|
196
|
-
Fetching source index from file:#{gem_repo2}/
|
197
|
-
Resolving dependencies...
|
198
|
-
Bundler could not find compatible versions for gem "rack":
|
199
|
-
In snapshot (Gemfile.lock):
|
200
|
-
rack (0.9.1)
|
201
|
-
|
202
|
-
In Gemfile:
|
203
|
-
rack-obama (= 2.0) ruby depends on
|
204
|
-
rack (= 1.2) ruby
|
205
|
-
|
206
|
-
Running `bundle update` will rebuild your snapshot from scratch, using only
|
207
|
-
the gems in your Gemfile, which may resolve the conflict.
|
208
|
-
E
|
209
|
-
|
210
|
-
bundle :install, :retry => 0
|
211
|
-
expect(out).to eq(nice_error)
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
describe "subtler cases" do
|
216
|
-
before :each do
|
217
|
-
install_gemfile <<-G
|
218
|
-
source "file://#{gem_repo1}"
|
219
|
-
gem "rack"
|
220
|
-
gem "rack-obama"
|
221
|
-
G
|
222
|
-
|
223
|
-
gemfile <<-G
|
224
|
-
source "file://#{gem_repo1}"
|
225
|
-
gem "rack", "0.9.1"
|
226
|
-
gem "rack-obama"
|
227
|
-
G
|
228
|
-
end
|
229
|
-
|
230
|
-
it "does something" do
|
231
|
-
expect {
|
232
|
-
bundle "install"
|
233
|
-
}.not_to change { File.read(bundled_app('Gemfile.lock')) }
|
234
|
-
|
235
|
-
expect(out).to include('rack = 0.9.1')
|
236
|
-
expect(out).to include('locked at 1.0.0')
|
237
|
-
expect(out).to include('bundle update rack')
|
238
|
-
end
|
239
|
-
|
240
|
-
it "should work when you update" do
|
241
|
-
bundle "update rack"
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
245
|
-
describe "when adding a new source" do
|
246
|
-
it "updates the lockfile" do
|
247
|
-
build_repo2
|
248
|
-
install_gemfile <<-G
|
249
|
-
source "file://#{gem_repo1}"
|
250
|
-
gem "rack"
|
251
|
-
G
|
252
|
-
install_gemfile <<-G
|
253
|
-
source "file://#{gem_repo1}"
|
254
|
-
source "file://#{gem_repo2}"
|
255
|
-
gem "rack"
|
256
|
-
G
|
257
|
-
|
258
|
-
lockfile_should_be <<-L
|
259
|
-
GEM
|
260
|
-
remote: file:#{gem_repo1}/
|
261
|
-
remote: file:#{gem_repo2}/
|
262
|
-
specs:
|
263
|
-
rack (1.0.0)
|
264
|
-
|
265
|
-
PLATFORMS
|
266
|
-
ruby
|
267
|
-
|
268
|
-
DEPENDENCIES
|
269
|
-
rack
|
270
|
-
L
|
271
|
-
end
|
272
|
-
end
|
273
|
-
|
274
|
-
# This was written to test github issue #636, but it passed.
|
275
|
-
# It's insanoly slow (3.36s) so I'm not going to run it
|
276
|
-
# describe "when a locked child dependency conflicts" do
|
277
|
-
# before(:each) do
|
278
|
-
# build_repo2 do
|
279
|
-
# build_gem "capybara", "0.3.9" do |s|
|
280
|
-
# s.add_dependency "rack", ">= 1.0.0"
|
281
|
-
# end
|
282
|
-
#
|
283
|
-
# build_gem "rack", "1.1.0"
|
284
|
-
# build_gem "rails", "3.0.0.rc4" do |s|
|
285
|
-
# s.add_dependency "rack", "~> 1.1.0"
|
286
|
-
# end
|
287
|
-
#
|
288
|
-
# build_gem "rack", "1.2.1"
|
289
|
-
# build_gem "rails", "3.0.0" do |s|
|
290
|
-
# s.add_dependency "rack", "~> 1.2.1"
|
291
|
-
# end
|
292
|
-
# end
|
293
|
-
# end
|
294
|
-
#
|
295
|
-
# it "prints the correct error message" do
|
296
|
-
# # install Rails 3.0.0.rc
|
297
|
-
# install_gemfile <<-G
|
298
|
-
# source "file://#{gem_repo2}"
|
299
|
-
# gem "rails", "3.0.0.rc4"
|
300
|
-
# gem "capybara", "0.3.9"
|
301
|
-
# G
|
302
|
-
#
|
303
|
-
# # upgrade Rails to 3.0.0 and then install again
|
304
|
-
# install_gemfile <<-G
|
305
|
-
# source "file://#{gem_repo2}"
|
306
|
-
# gem "rails", "3.0.0"
|
307
|
-
# gem "capybara", "0.3.9"
|
308
|
-
# G
|
309
|
-
#
|
310
|
-
# out.should match(/Gemfile.lock/)
|
311
|
-
# end
|
312
|
-
# end
|
313
|
-
|
314
|
-
end
|
@@ -1,308 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle install with groups" do
|
4
|
-
|
5
|
-
describe "installing with no options" do
|
6
|
-
before :each do
|
7
|
-
install_gemfile <<-G
|
8
|
-
source "file://#{gem_repo1}"
|
9
|
-
gem "rack"
|
10
|
-
group :emo do
|
11
|
-
gem "activesupport", "2.3.5"
|
12
|
-
end
|
13
|
-
gem "thin", :groups => [:emo]
|
14
|
-
G
|
15
|
-
end
|
16
|
-
|
17
|
-
it "installs gems in the default group" do
|
18
|
-
should_be_installed "rack 1.0.0"
|
19
|
-
end
|
20
|
-
|
21
|
-
it "installs gems in a group block into that group" do
|
22
|
-
should_be_installed "activesupport 2.3.5"
|
23
|
-
|
24
|
-
load_error_run <<-R, 'activesupport', :default
|
25
|
-
require 'activesupport'
|
26
|
-
puts ACTIVESUPPORT
|
27
|
-
R
|
28
|
-
|
29
|
-
expect(err).to eq("ZOMG LOAD ERROR")
|
30
|
-
end
|
31
|
-
|
32
|
-
it "installs gems with inline :groups into those groups" do
|
33
|
-
should_be_installed "thin 1.0"
|
34
|
-
|
35
|
-
load_error_run <<-R, 'thin', :default
|
36
|
-
require 'thin'
|
37
|
-
puts THIN
|
38
|
-
R
|
39
|
-
|
40
|
-
expect(err).to eq("ZOMG LOAD ERROR")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "sets up everything if Bundler.setup is used with no groups" do
|
44
|
-
out = run("require 'rack'; puts RACK")
|
45
|
-
expect(out).to eq('1.0.0')
|
46
|
-
|
47
|
-
out = run("require 'activesupport'; puts ACTIVESUPPORT")
|
48
|
-
expect(out).to eq('2.3.5')
|
49
|
-
|
50
|
-
out = run("require 'thin'; puts THIN")
|
51
|
-
expect(out).to eq('1.0')
|
52
|
-
end
|
53
|
-
|
54
|
-
it "removes old groups when new groups are set up" do
|
55
|
-
load_error_run <<-RUBY, 'thin', :emo
|
56
|
-
Bundler.setup(:default)
|
57
|
-
require 'thin'
|
58
|
-
puts THIN
|
59
|
-
RUBY
|
60
|
-
|
61
|
-
expect(err).to eq("ZOMG LOAD ERROR")
|
62
|
-
end
|
63
|
-
|
64
|
-
it "sets up old groups when they have previously been removed" do
|
65
|
-
out = run <<-RUBY, :emo
|
66
|
-
Bundler.setup(:default)
|
67
|
-
Bundler.setup(:default, :emo)
|
68
|
-
require 'thin'; puts THIN
|
69
|
-
RUBY
|
70
|
-
expect(out).to eq('1.0')
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
describe "installing --without" do
|
75
|
-
describe "with gems assigned to a single group" do
|
76
|
-
before :each do
|
77
|
-
gemfile <<-G
|
78
|
-
source "file://#{gem_repo1}"
|
79
|
-
gem "rack"
|
80
|
-
group :emo do
|
81
|
-
gem "activesupport", "2.3.5"
|
82
|
-
end
|
83
|
-
G
|
84
|
-
end
|
85
|
-
|
86
|
-
it "installs gems in the default group" do
|
87
|
-
bundle :install, :without => "emo"
|
88
|
-
should_be_installed "rack 1.0.0", :groups => [:default]
|
89
|
-
end
|
90
|
-
|
91
|
-
it "does not install gems from the excluded group" do
|
92
|
-
bundle :install, :without => "emo"
|
93
|
-
should_not_be_installed "activesupport 2.3.5", :groups => [:default]
|
94
|
-
end
|
95
|
-
|
96
|
-
it "does not install gems from the previously excluded group" do
|
97
|
-
bundle :install, :without => "emo"
|
98
|
-
should_not_be_installed "activesupport 2.3.5"
|
99
|
-
bundle :install
|
100
|
-
should_not_be_installed "activesupport 2.3.5"
|
101
|
-
end
|
102
|
-
|
103
|
-
it "does not say it installed gems from the excluded group" do
|
104
|
-
bundle :install, :without => "emo"
|
105
|
-
expect(out).not_to include("activesupport")
|
106
|
-
end
|
107
|
-
|
108
|
-
it "allows Bundler.setup for specific groups" do
|
109
|
-
bundle :install, :without => "emo"
|
110
|
-
run("require 'rack'; puts RACK", :default)
|
111
|
-
expect(out).to eq('1.0.0')
|
112
|
-
end
|
113
|
-
|
114
|
-
it "does not effect the resolve" do
|
115
|
-
gemfile <<-G
|
116
|
-
source "file://#{gem_repo1}"
|
117
|
-
gem "activesupport"
|
118
|
-
group :emo do
|
119
|
-
gem "rails", "2.3.2"
|
120
|
-
end
|
121
|
-
G
|
122
|
-
|
123
|
-
bundle :install, :without => "emo"
|
124
|
-
should_be_installed "activesupport 2.3.2", :groups => [:default]
|
125
|
-
end
|
126
|
-
|
127
|
-
it "still works on a different machine and excludes gems" do
|
128
|
-
bundle :install, :without => "emo"
|
129
|
-
|
130
|
-
simulate_new_machine
|
131
|
-
bundle :install, :without => "emo"
|
132
|
-
|
133
|
-
should_be_installed "rack 1.0.0", :groups => [:default]
|
134
|
-
should_not_be_installed "activesupport 2.3.5", :groups => [:default]
|
135
|
-
end
|
136
|
-
|
137
|
-
it "still works when BUNDLE_WITHOUT is set" do
|
138
|
-
ENV["BUNDLE_WITHOUT"] = "emo"
|
139
|
-
|
140
|
-
bundle :install
|
141
|
-
expect(out).not_to include("activesupport")
|
142
|
-
|
143
|
-
should_be_installed "rack 1.0.0", :groups => [:default]
|
144
|
-
should_not_be_installed "activesupport 2.3.5", :groups => [:default]
|
145
|
-
|
146
|
-
ENV["BUNDLE_WITHOUT"] = nil
|
147
|
-
end
|
148
|
-
|
149
|
-
it "clears without when passed an empty list" do
|
150
|
-
bundle :install, :without => "emo"
|
151
|
-
|
152
|
-
bundle 'install --without ""'
|
153
|
-
should_be_installed "activesupport 2.3.5"
|
154
|
-
end
|
155
|
-
|
156
|
-
it "doesn't clear without when nothing is passed" do
|
157
|
-
bundle :install, :without => "emo"
|
158
|
-
|
159
|
-
bundle :install
|
160
|
-
should_not_be_installed "activesupport 2.3.5"
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
describe "with gems assigned to multiple groups" do
|
165
|
-
before :each do
|
166
|
-
gemfile <<-G
|
167
|
-
source "file://#{gem_repo1}"
|
168
|
-
gem "rack"
|
169
|
-
group :emo, :lolercoaster do
|
170
|
-
gem "activesupport", "2.3.5"
|
171
|
-
end
|
172
|
-
G
|
173
|
-
end
|
174
|
-
|
175
|
-
it "installs gems in the default group" do
|
176
|
-
bundle :install, :without => "emo lolercoaster"
|
177
|
-
should_be_installed "rack 1.0.0"
|
178
|
-
end
|
179
|
-
|
180
|
-
it "installs the gem if any of its groups are installed" do
|
181
|
-
bundle "install --without emo"
|
182
|
-
should_be_installed "rack 1.0.0", "activesupport 2.3.5"
|
183
|
-
end
|
184
|
-
|
185
|
-
describe "with a gem defined multiple times in different groups" do
|
186
|
-
before :each do
|
187
|
-
gemfile <<-G
|
188
|
-
source "file://#{gem_repo1}"
|
189
|
-
gem "rack"
|
190
|
-
|
191
|
-
group :emo do
|
192
|
-
gem "activesupport", "2.3.5"
|
193
|
-
end
|
194
|
-
|
195
|
-
group :lolercoaster do
|
196
|
-
gem "activesupport", "2.3.5"
|
197
|
-
end
|
198
|
-
G
|
199
|
-
end
|
200
|
-
|
201
|
-
it "installs the gem w/ option --without emo" do
|
202
|
-
bundle "install --without emo"
|
203
|
-
should_be_installed "activesupport 2.3.5"
|
204
|
-
end
|
205
|
-
|
206
|
-
it "installs the gem w/ option --without lolercoaster" do
|
207
|
-
bundle "install --without lolercoaster"
|
208
|
-
should_be_installed "activesupport 2.3.5"
|
209
|
-
end
|
210
|
-
|
211
|
-
it "does not install the gem w/ option --without emo lolercoaster" do
|
212
|
-
bundle "install --without emo lolercoaster"
|
213
|
-
should_not_be_installed "activesupport 2.3.5"
|
214
|
-
end
|
215
|
-
|
216
|
-
it "does not install the gem w/ option --without 'emo lolercoaster'" do
|
217
|
-
bundle "install --without 'emo lolercoaster'"
|
218
|
-
should_not_be_installed "activesupport 2.3.5"
|
219
|
-
end
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
|
-
describe "nesting groups" do
|
224
|
-
before :each do
|
225
|
-
gemfile <<-G
|
226
|
-
source "file://#{gem_repo1}"
|
227
|
-
gem "rack"
|
228
|
-
group :emo do
|
229
|
-
group :lolercoaster do
|
230
|
-
gem "activesupport", "2.3.5"
|
231
|
-
end
|
232
|
-
end
|
233
|
-
G
|
234
|
-
end
|
235
|
-
|
236
|
-
it "installs gems in the default group" do
|
237
|
-
bundle :install, :without => "emo lolercoaster"
|
238
|
-
should_be_installed "rack 1.0.0"
|
239
|
-
end
|
240
|
-
|
241
|
-
it "installs the gem if any of its groups are installed" do
|
242
|
-
bundle "install --without emo"
|
243
|
-
should_be_installed "rack 1.0.0", "activesupport 2.3.5"
|
244
|
-
end
|
245
|
-
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
describe "when loading only the default group" do
|
250
|
-
it "should not load all groups" do
|
251
|
-
install_gemfile <<-G
|
252
|
-
source "file://#{gem_repo1}"
|
253
|
-
gem "rack"
|
254
|
-
gem "activesupport", :groups => :development
|
255
|
-
G
|
256
|
-
|
257
|
-
ruby <<-R
|
258
|
-
require "bundler"
|
259
|
-
Bundler.setup :default
|
260
|
-
Bundler.require :default
|
261
|
-
puts RACK
|
262
|
-
begin
|
263
|
-
require "activesupport"
|
264
|
-
rescue LoadError
|
265
|
-
puts "no activesupport"
|
266
|
-
end
|
267
|
-
R
|
268
|
-
|
269
|
-
expect(out).to include("1.0")
|
270
|
-
expect(out).to include("no activesupport")
|
271
|
-
end
|
272
|
-
end
|
273
|
-
|
274
|
-
|
275
|
-
describe "when locked and installed with --without" do
|
276
|
-
before(:each) do
|
277
|
-
build_repo2
|
278
|
-
system_gems "rack-0.9.1" do
|
279
|
-
install_gemfile <<-G, :without => :rack
|
280
|
-
source "file://#{gem_repo2}"
|
281
|
-
gem "rack"
|
282
|
-
|
283
|
-
group :rack do
|
284
|
-
gem "rack_middleware"
|
285
|
-
end
|
286
|
-
G
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
|
-
it "uses the correct versions even if --without was used on the original" do
|
291
|
-
should_be_installed "rack 0.9.1"
|
292
|
-
should_not_be_installed "rack_middleware 1.0"
|
293
|
-
simulate_new_machine
|
294
|
-
|
295
|
-
bundle :install
|
296
|
-
|
297
|
-
should_be_installed "rack 0.9.1"
|
298
|
-
should_be_installed "rack_middleware 1.0"
|
299
|
-
end
|
300
|
-
|
301
|
-
it "does not hit the remote a second time" do
|
302
|
-
FileUtils.rm_rf gem_repo2
|
303
|
-
bundle "install --without rack"
|
304
|
-
expect(err).to be_empty
|
305
|
-
end
|
306
|
-
end
|
307
|
-
|
308
|
-
end
|