Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
Auto merge of #6309 - agrim123:disable_platform_warnings, r=colby-swa…
Browse files Browse the repository at this point in the history
…ndale

Add config variable and check for platform warnings

Thanks so much for the contribution!
To make reviewing this PR a bit easier, please fill out answers to the following questions.

### What was the end-user problem that led to this PR?

The user needed a way to turn off platform warnings.

### What was your diagnosis of the problem?

Creating a config variable to solve the above problem.

### What is your fix for the problem, implemented in this PR?

Added a key `disable_platform_warnings` in settings and placed check at the relevant place to disable warnings.

### Why did you choose this fix out of the possible options?

We will by default show warnings but the user might want to disable them, so using a config variable looked a good option.

Fixes #6124

(cherry picked from commit 23dfadc)
  • Loading branch information
bundlerbot authored and colby-swandale committed Sep 20, 2018
1 parent d970c3b commit a12b46c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/bundler/definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,7 @@ def expand_dependencies(dependencies, remote = false)
dep = Dependency.new(dep, ">= 0") unless dep.respond_to?(:name)
next if !remote && !dep.current_platform?
platforms = dep.gem_platforms(sorted_platforms)
if platforms.empty?
if platforms.empty? && !Bundler.settings[:disable_platform_warnings]
mapped_platforms = dep.platforms.map {|p| Dependency::PLATFORM_MAP[p] }
Bundler.ui.warn \
"The dependency #{dep} will be unused by any of the platforms Bundler is installing for. " \
Expand Down
1 change: 1 addition & 0 deletions lib/bundler/settings.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class Settings
disable_exec_load
disable_local_branch_check
disable_multisource
disable_platform_warnings
disable_shared_gems
disable_version_check
error_on_stderr
Expand Down
2 changes: 2 additions & 0 deletions man/bundle-config.ronn
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
When set, Gemfiles containing multiple sources will produce errors
instead of warnings.
Use `bundle config --delete disable_multisource` to unset.
* `disable_platform_warnings` (`BUNDLE_DISABLE_PLATFORM_WARNINGS`):
Disable warnings during bundle install when a dependency is unused on the current platform.
* `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):
Stop Bundler from accessing gems installed to RubyGems' normal location.
* `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):
Expand Down
19 changes: 19 additions & 0 deletions spec/install/gemfile/platform_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,25 @@
The dependency #{Gem::Dependency.new("rack", ">= 0")} will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
O
end

context "when disable_platform_warnings is true" do
before { bundle! "config disable_platform_warnings true" }

it "does not print the warning when a dependency is unused on any platform" do
simulate_platform "ruby"
simulate_ruby_engine "ruby"

gemfile <<-G
source "file://#{gem_repo1}"
gem "rack", :platform => [:mingw, :mswin, :x64_mingw, :jruby]
G

bundle! "install"

expect(out).not_to match(/The dependency (.*) will be unused/)
end
end
end

RSpec.describe "when a gem has no architecture" do
Expand Down

0 comments on commit a12b46c

Please sign in to comment.