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,39 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle install with a mirror configured" do
|
4
|
-
describe "when the mirror does not match the gem source" do
|
5
|
-
before :each do
|
6
|
-
gemfile <<-G
|
7
|
-
source "file://#{gem_repo1}"
|
8
|
-
|
9
|
-
gem "rack"
|
10
|
-
G
|
11
|
-
bundle "config --local mirror.http://gems.example.org http://gem-mirror.example.org"
|
12
|
-
end
|
13
|
-
|
14
|
-
it "installs from the normal location" do
|
15
|
-
bundle :install
|
16
|
-
expect(out).to include("Fetching source index from file:#{gem_repo1}")
|
17
|
-
should_be_installed "rack 1.0"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "when the gem source matches a configured mirror" do
|
22
|
-
before :each do
|
23
|
-
gemfile <<-G
|
24
|
-
# This source is bogus and doesn't have the gem we're looking for
|
25
|
-
source "file://#{gem_repo2}"
|
26
|
-
|
27
|
-
gem "rack"
|
28
|
-
G
|
29
|
-
bundle "config --local mirror.file://#{gem_repo2} file://#{gem_repo1}"
|
30
|
-
end
|
31
|
-
|
32
|
-
it "installs the gem from the mirror" do
|
33
|
-
bundle :install
|
34
|
-
expect(out).to include("Fetching source index from file:#{gem_repo1}")
|
35
|
-
expect(out).not_to include("Fetching source index from file:#{gem_repo2}")
|
36
|
-
should_be_installed "rack 1.0"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,195 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle install across platforms" do
|
4
|
-
it "maintains the same lockfile if all gems are compatible across platforms" do
|
5
|
-
lockfile <<-G
|
6
|
-
GEM
|
7
|
-
remote: file:#{gem_repo1}/
|
8
|
-
specs:
|
9
|
-
rack (0.9.1)
|
10
|
-
|
11
|
-
PLATFORMS
|
12
|
-
#{not_local}
|
13
|
-
|
14
|
-
DEPENDENCIES
|
15
|
-
rack
|
16
|
-
G
|
17
|
-
|
18
|
-
install_gemfile <<-G
|
19
|
-
source "file://#{gem_repo1}"
|
20
|
-
|
21
|
-
gem "rack"
|
22
|
-
G
|
23
|
-
|
24
|
-
should_be_installed "rack 0.9.1"
|
25
|
-
end
|
26
|
-
|
27
|
-
it "pulls in the correct platform specific gem" do
|
28
|
-
lockfile <<-G
|
29
|
-
GEM
|
30
|
-
remote: file:#{gem_repo1}
|
31
|
-
specs:
|
32
|
-
platform_specific (1.0)
|
33
|
-
platform_specific (1.0-java)
|
34
|
-
platform_specific (1.0-x86-mswin32)
|
35
|
-
|
36
|
-
PLATFORMS
|
37
|
-
ruby
|
38
|
-
|
39
|
-
DEPENDENCIES
|
40
|
-
platform_specific
|
41
|
-
G
|
42
|
-
|
43
|
-
simulate_platform "java"
|
44
|
-
install_gemfile <<-G
|
45
|
-
source "file://#{gem_repo1}"
|
46
|
-
|
47
|
-
gem "platform_specific"
|
48
|
-
G
|
49
|
-
|
50
|
-
should_be_installed "platform_specific 1.0 JAVA"
|
51
|
-
end
|
52
|
-
|
53
|
-
it "works with gems that have different dependencies" do
|
54
|
-
simulate_platform "java"
|
55
|
-
install_gemfile <<-G
|
56
|
-
source "file://#{gem_repo1}"
|
57
|
-
|
58
|
-
gem "nokogiri"
|
59
|
-
G
|
60
|
-
|
61
|
-
should_be_installed "nokogiri 1.4.2 JAVA", "weakling 0.0.3"
|
62
|
-
|
63
|
-
simulate_new_machine
|
64
|
-
|
65
|
-
simulate_platform "ruby"
|
66
|
-
install_gemfile <<-G
|
67
|
-
source "file://#{gem_repo1}"
|
68
|
-
|
69
|
-
gem "nokogiri"
|
70
|
-
G
|
71
|
-
|
72
|
-
should_be_installed "nokogiri 1.4.2"
|
73
|
-
should_not_be_installed "weakling"
|
74
|
-
end
|
75
|
-
|
76
|
-
it "works the other way with gems that have different dependencies" do
|
77
|
-
simulate_platform "ruby"
|
78
|
-
install_gemfile <<-G
|
79
|
-
source "file://#{gem_repo1}"
|
80
|
-
|
81
|
-
gem "nokogiri"
|
82
|
-
G
|
83
|
-
|
84
|
-
simulate_platform "java"
|
85
|
-
bundle "install"
|
86
|
-
|
87
|
-
should_be_installed "nokogiri 1.4.2 JAVA", "weakling 0.0.3"
|
88
|
-
end
|
89
|
-
|
90
|
-
it "fetches gems again after changing the version of Ruby" do
|
91
|
-
gemfile <<-G
|
92
|
-
source "file://#{gem_repo1}"
|
93
|
-
|
94
|
-
gem "rack", "1.0.0"
|
95
|
-
G
|
96
|
-
|
97
|
-
bundle "install --path vendor/bundle"
|
98
|
-
|
99
|
-
new_version = Gem::ConfigMap[:ruby_version] == "1.8" ? "1.9.1" : "1.8"
|
100
|
-
FileUtils.mv(vendored_gems, bundled_app("vendor/bundle", Gem.ruby_engine, new_version))
|
101
|
-
|
102
|
-
bundle "install --path vendor/bundle"
|
103
|
-
expect(vendored_gems("gems/rack-1.0.0")).to exist
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "bundle install with platform conditionals" do
|
108
|
-
it "installs gems tagged w/ the current platforms" do
|
109
|
-
install_gemfile <<-G
|
110
|
-
source "file://#{gem_repo1}"
|
111
|
-
|
112
|
-
platforms :#{local_tag} do
|
113
|
-
gem "nokogiri"
|
114
|
-
end
|
115
|
-
G
|
116
|
-
|
117
|
-
should_be_installed "nokogiri 1.4.2"
|
118
|
-
end
|
119
|
-
|
120
|
-
it "does not install gems tagged w/ another platforms" do
|
121
|
-
install_gemfile <<-G
|
122
|
-
source "file://#{gem_repo1}"
|
123
|
-
gem "rack"
|
124
|
-
platforms :#{not_local_tag} do
|
125
|
-
gem "nokogiri"
|
126
|
-
end
|
127
|
-
G
|
128
|
-
|
129
|
-
should_be_installed "rack 1.0"
|
130
|
-
should_not_be_installed "nokogiri 1.4.2"
|
131
|
-
end
|
132
|
-
|
133
|
-
it "installs gems tagged w/ the current platforms inline" do
|
134
|
-
install_gemfile <<-G
|
135
|
-
source "file://#{gem_repo1}"
|
136
|
-
gem "nokogiri", :platforms => :#{local_tag}
|
137
|
-
G
|
138
|
-
should_be_installed "nokogiri 1.4.2"
|
139
|
-
end
|
140
|
-
|
141
|
-
it "does not install gems tagged w/ another platforms inline" do
|
142
|
-
install_gemfile <<-G
|
143
|
-
source "file://#{gem_repo1}"
|
144
|
-
gem "rack"
|
145
|
-
gem "nokogiri", :platforms => :#{not_local_tag}
|
146
|
-
G
|
147
|
-
should_be_installed "rack 1.0"
|
148
|
-
should_not_be_installed "nokogiri 1.4.2"
|
149
|
-
end
|
150
|
-
|
151
|
-
it "installs gems tagged w/ the current platform inline" do
|
152
|
-
install_gemfile <<-G
|
153
|
-
source "file://#{gem_repo1}"
|
154
|
-
gem "nokogiri", :platform => :#{local_tag}
|
155
|
-
G
|
156
|
-
should_be_installed "nokogiri 1.4.2"
|
157
|
-
end
|
158
|
-
|
159
|
-
it "doesn't install gems tagged w/ another platform inline" do
|
160
|
-
install_gemfile <<-G
|
161
|
-
source "file://#{gem_repo1}"
|
162
|
-
gem "nokogiri", :platform => :#{not_local_tag}
|
163
|
-
G
|
164
|
-
should_not_be_installed "nokogiri 1.4.2"
|
165
|
-
end
|
166
|
-
|
167
|
-
it "does not blow up on sources with all platform-excluded specs" do
|
168
|
-
build_git "foo"
|
169
|
-
|
170
|
-
install_gemfile <<-G
|
171
|
-
platform :#{not_local_tag} do
|
172
|
-
gem "foo", :git => "#{lib_path('foo-1.0')}"
|
173
|
-
end
|
174
|
-
G
|
175
|
-
|
176
|
-
bundle :show, :exitstatus => true
|
177
|
-
expect(exitstatus).to eq(0)
|
178
|
-
end
|
179
|
-
|
180
|
-
end
|
181
|
-
|
182
|
-
describe "when a gem has no architecture" do
|
183
|
-
it "still installs correctly" do
|
184
|
-
simulate_platform mswin
|
185
|
-
|
186
|
-
gemfile <<-G
|
187
|
-
# Try to install gem with nil arch
|
188
|
-
source "http://localgemserver.test/"
|
189
|
-
gem "rcov"
|
190
|
-
G
|
191
|
-
|
192
|
-
bundle :install, :fakeweb => "windows"
|
193
|
-
should_be_installed "rcov 1.0.0"
|
194
|
-
end
|
195
|
-
end
|
@@ -1,121 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "bundle install with gem sources" do
|
4
|
-
describe "when gems include post install messages" do
|
5
|
-
it "should display the post-install messages after installing" do
|
6
|
-
gemfile <<-G
|
7
|
-
source "file://#{gem_repo1}"
|
8
|
-
gem 'rack'
|
9
|
-
gem 'thin'
|
10
|
-
gem 'rack-obama'
|
11
|
-
G
|
12
|
-
|
13
|
-
bundle :install
|
14
|
-
expect(out).to include("Post-install message from rack:")
|
15
|
-
expect(out).to include("Rack's post install message")
|
16
|
-
expect(out).to include("Post-install message from thin:")
|
17
|
-
expect(out).to include("Thin's post install message")
|
18
|
-
expect(out).to include("Post-install message from rack-obama:")
|
19
|
-
expect(out).to include("Rack-obama's post install message")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "when gems do not include post install messages" do
|
24
|
-
it "should not display any post-install messages" do
|
25
|
-
gemfile <<-G
|
26
|
-
source "file://#{gem_repo1}"
|
27
|
-
gem "activesupport"
|
28
|
-
G
|
29
|
-
|
30
|
-
bundle :install
|
31
|
-
expect(out).not_to include("Post-install message")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "when a dependecy includes a post install message" do
|
36
|
-
it "should display the post install message" do
|
37
|
-
gemfile <<-G
|
38
|
-
source "file://#{gem_repo1}"
|
39
|
-
gem 'rack_middleware'
|
40
|
-
G
|
41
|
-
|
42
|
-
bundle :install
|
43
|
-
expect(out).to include("Post-install message from rack:")
|
44
|
-
expect(out).to include("Rack's post install message")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "bundle install with git sources" do
|
50
|
-
describe "when gems include post install messages" do
|
51
|
-
it "should display the post-install messages after installing" do
|
52
|
-
build_git "foo" do |s|
|
53
|
-
s.post_install_message = "Foo's post install message"
|
54
|
-
end
|
55
|
-
gemfile <<-G
|
56
|
-
source "file://#{gem_repo1}"
|
57
|
-
gem 'foo', :git => '#{lib_path("foo-1.0")}'
|
58
|
-
G
|
59
|
-
|
60
|
-
bundle :install
|
61
|
-
expect(out).to include("Post-install message from foo:")
|
62
|
-
expect(out).to include("Foo's post install message")
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should display the post-install messages if repo is updated" do
|
66
|
-
build_git "foo" do |s|
|
67
|
-
s.post_install_message = "Foo's post install message"
|
68
|
-
end
|
69
|
-
gemfile <<-G
|
70
|
-
source "file://#{gem_repo1}"
|
71
|
-
gem 'foo', :git => '#{lib_path("foo-1.0")}'
|
72
|
-
G
|
73
|
-
bundle :install
|
74
|
-
|
75
|
-
build_git "foo", "1.1" do |s|
|
76
|
-
s.post_install_message = "Foo's 1.1 post install message"
|
77
|
-
end
|
78
|
-
gemfile <<-G
|
79
|
-
source "file://#{gem_repo1}"
|
80
|
-
gem 'foo', :git => '#{lib_path("foo-1.1")}'
|
81
|
-
G
|
82
|
-
bundle :install
|
83
|
-
|
84
|
-
expect(out).to include("Post-install message from foo:")
|
85
|
-
expect(out).to include("Foo's 1.1 post install message")
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should not display the post-install messages if repo is not updated" do
|
89
|
-
build_git "foo" do |s|
|
90
|
-
s.post_install_message = "Foo's post install message"
|
91
|
-
end
|
92
|
-
gemfile <<-G
|
93
|
-
source "file://#{gem_repo1}"
|
94
|
-
gem 'foo', :git => '#{lib_path("foo-1.0")}'
|
95
|
-
G
|
96
|
-
|
97
|
-
bundle :install
|
98
|
-
expect(out).to include("Post-install message from foo:")
|
99
|
-
expect(out).to include("Foo's post install message")
|
100
|
-
|
101
|
-
bundle :install
|
102
|
-
expect(out).not_to include("Post-install message")
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "when gems do not include post install messages" do
|
107
|
-
it "should not display any post-install messages" do
|
108
|
-
build_git "foo" do |s|
|
109
|
-
s.post_install_message = nil
|
110
|
-
end
|
111
|
-
gemfile <<-G
|
112
|
-
source "file://#{gem_repo1}"
|
113
|
-
gem 'foo', :git => '#{lib_path("foo-1.0")}'
|
114
|
-
G
|
115
|
-
|
116
|
-
bundle :install
|
117
|
-
expect(out).not_to include("Post-install message")
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
end
|
@@ -1,124 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "bundle install with gem sources" do
|
4
|
-
describe "install time dependencies" do
|
5
|
-
it "installs gems with implicit rake dependencies" do
|
6
|
-
install_gemfile <<-G
|
7
|
-
source "file://#{gem_repo1}"
|
8
|
-
gem "with_implicit_rake_dep"
|
9
|
-
gem "another_implicit_rake_dep"
|
10
|
-
gem "rake"
|
11
|
-
G
|
12
|
-
|
13
|
-
run <<-R
|
14
|
-
require 'implicit_rake_dep'
|
15
|
-
require 'another_implicit_rake_dep'
|
16
|
-
puts IMPLICIT_RAKE_DEP
|
17
|
-
puts ANOTHER_IMPLICIT_RAKE_DEP
|
18
|
-
R
|
19
|
-
expect(out).to eq("YES\nYES")
|
20
|
-
end
|
21
|
-
|
22
|
-
it "installs gems with a dependency with no type" do
|
23
|
-
build_repo2
|
24
|
-
|
25
|
-
path = "#{gem_repo2}/#{Gem::MARSHAL_SPEC_DIR}/actionpack-2.3.2.gemspec.rz"
|
26
|
-
spec = Marshal.load(Gem.inflate(File.read(path)))
|
27
|
-
spec.dependencies.each do |d|
|
28
|
-
d.instance_variable_set(:@type, :fail)
|
29
|
-
end
|
30
|
-
File.open(path, 'w') do |f|
|
31
|
-
f.write Gem.deflate(Marshal.dump(spec))
|
32
|
-
end
|
33
|
-
|
34
|
-
install_gemfile <<-G
|
35
|
-
source "file://#{gem_repo2}"
|
36
|
-
gem "actionpack", "2.3.2"
|
37
|
-
G
|
38
|
-
|
39
|
-
should_be_installed "actionpack 2.3.2", "activesupport 2.3.2"
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "with crazy rubygem plugin stuff" do
|
43
|
-
it "installs plugins" do
|
44
|
-
install_gemfile <<-G
|
45
|
-
source "file://#{gem_repo1}"
|
46
|
-
gem "net_b"
|
47
|
-
G
|
48
|
-
|
49
|
-
should_be_installed "net_b 1.0"
|
50
|
-
end
|
51
|
-
|
52
|
-
it "installs plugins depended on by other plugins" do
|
53
|
-
install_gemfile <<-G
|
54
|
-
source "file://#{gem_repo1}"
|
55
|
-
gem "net_a"
|
56
|
-
G
|
57
|
-
|
58
|
-
should_be_installed "net_a 1.0", "net_b 1.0"
|
59
|
-
end
|
60
|
-
|
61
|
-
it "installs multiple levels of dependencies" do
|
62
|
-
install_gemfile <<-G
|
63
|
-
source "file://#{gem_repo1}"
|
64
|
-
gem "net_c"
|
65
|
-
gem "net_e"
|
66
|
-
G
|
67
|
-
|
68
|
-
should_be_installed "net_a 1.0", "net_b 1.0", "net_c 1.0", "net_d 1.0", "net_e 1.0"
|
69
|
-
end
|
70
|
-
|
71
|
-
context "with ENV['DEBUG_RESOLVER'] set" do
|
72
|
-
it "produces debug output" do
|
73
|
-
gemfile <<-G
|
74
|
-
source "file://#{gem_repo1}"
|
75
|
-
gem "net_c"
|
76
|
-
gem "net_e"
|
77
|
-
G
|
78
|
-
|
79
|
-
resolve_output = capture(:stdout) do
|
80
|
-
bundle :install, :env => {"DEBUG_RESOLVER" => "1"}
|
81
|
-
end
|
82
|
-
|
83
|
-
expect(resolve_output).to include("==== Iterating ====")
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
context "with ENV['DEBUG_RESOLVER_TREE'] set" do
|
88
|
-
it "produces debug output" do
|
89
|
-
gemfile <<-G
|
90
|
-
source "file://#{gem_repo1}"
|
91
|
-
gem "net_c"
|
92
|
-
gem "net_e"
|
93
|
-
G
|
94
|
-
|
95
|
-
resolve_output = capture(:stdout) do
|
96
|
-
bundle :install, :env => {"DEBUG_RESOLVER_TREE" => "1"}
|
97
|
-
end
|
98
|
-
|
99
|
-
expect(resolve_output).to include(" net_b (>= 0) ruby")
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
describe "when some gems require a different version of ruby" do
|
106
|
-
it "does not try to install those gems" do
|
107
|
-
pending "waiting for a rubygems index that includes ruby version"
|
108
|
-
|
109
|
-
update_repo gem_repo1 do
|
110
|
-
build_gem "require_ruby" do |s|
|
111
|
-
s.required_ruby_version = "> 9000"
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
install_gemfile <<-G
|
116
|
-
source "file://#{gem_repo1}"
|
117
|
-
gem 'require_ruby'
|
118
|
-
G
|
119
|
-
|
120
|
-
expect(out).to_not include("Gem::InstallError: require_ruby requires Ruby version > 9000")
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|