From 15354c3c7f988677d9e04b00d7a8ebd4069afd04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Sat, 23 Feb 2019 22:11:07 +0100 Subject: Remove unnecessary RSpec activation We are inside the RSpec helper file, so RSpec must be already activated at this point. --- spec/spec_helper.rb | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 92de792b1d..81c222ea6f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,19 +3,6 @@ $:.unshift File.expand_path("..", __FILE__) $:.unshift File.expand_path("../../lib", __FILE__) -require "rubygems" - -begin - require File.expand_path("../support/path.rb", __FILE__) - spec = Gem::Specification.load(Spec::Path.gemspec.to_s) - rspec = spec.dependencies.find {|d| d.name == "rspec" } - gem "rspec", rspec.requirement.to_s - require "rspec" - require "diff/lcs" -rescue LoadError - abort "Run rake spec:deps to install development dependencies" -end - require "bundler/psyched_yaml" require "bundler/vendored_fileutils" require "uri" -- cgit v1.2.1 From 4cf283fe747d78cf127fae76621bfe8469d7482c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Sat, 23 Feb 2019 22:27:46 +0100 Subject: Remove unnecessary pre-requisite This is already done from the spec helper right before the beginning of the test suite. --- Rakefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Rakefile b/Rakefile index bfaf1d964d..c539c400f2 100644 --- a/Rakefile +++ b/Rakefile @@ -97,7 +97,6 @@ begin desc "Run specs" RSpec::Core::RakeTask.new - task :spec => "man:build" require "rubocop/rake_task" rubocop = RuboCop::RakeTask.new -- cgit v1.2.1 From ef70be132706c56fda4f346c77d5a96e176d6b9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Sun, 24 Feb 2019 06:11:01 +0100 Subject: Make `bin/rspec` activate only `rspec` --- bin/rspec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/bin/rspec b/bin/rspec index 39109d66f2..4ef45c9b32 100755 --- a/bin/rspec +++ b/bin/rspec @@ -6,10 +6,17 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) -bundler_spec.dependencies.each do |dep| - gem dep.name, dep.requirement +rspec = bundler_spec.development_dependencies.find do |dep| + dep.name == "rspec" end -Gem.finish_resolve if Gem.respond_to?(:finish_resolve) +rspec_requirement = rspec.requirement.to_s -load Gem.bin_path("rspec-core", "rspec") +begin + gem "rspec", rspec_requirement + Gem.finish_resolve if Gem.respond_to?(:finish_resolve) + + load Gem.bin_path("rspec-core", "rspec") +rescue Gem::LoadError + warn "We couln't activate rspec (#{rspec_requirement}). Try `gem install rspec:'#{rspec_requirement}'`" +end -- cgit v1.2.1 From 561494712798e9f8ff9b6abffa1a774d1a883a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Tue, 26 Feb 2019 18:15:44 +0100 Subject: Simplify RSpec task We shell out to the binstubs, so we don't need any activation dance. --- Rakefile | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/Rakefile b/Rakefile index c539c400f2..ec4a520ac3 100644 --- a/Rakefile +++ b/Rakefile @@ -90,14 +90,12 @@ namespace :spec do end end -begin - rspec = bundler_spec.development_dependencies.find {|d| d.name == "rspec" } - gem "rspec", rspec.requirement.to_s - require "rspec/core/rake_task" - - desc "Run specs" - RSpec::Core::RakeTask.new +desc "Run specs" +task :spec do + sh("bin/rspec") +end +begin require "rubocop/rake_task" rubocop = RuboCop::RakeTask.new rubocop.options = ["--parallel"] @@ -143,9 +141,8 @@ begin releases = %w[v2.5.2 v2.6.14 v2.7.9 v3.0.3] (branches + releases).each do |rg| desc "Run specs with RubyGems #{rg}" - RSpec::Core::RakeTask.new(rg) do |t| - t.rspec_opts = %w[--format progress --color] - t.ruby_opts = %w[-w] + task rg do + sh("bin/rspec") end # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs @@ -184,9 +181,8 @@ begin end desc "Run specs under a RubyGems checkout (set RG=path)" - RSpec::Core::RakeTask.new("co") do |t| - t.rspec_opts = %w[--format documentation --color] - t.ruby_opts = %w[-w] + task "co" do + sh("bin/rspec") end task "setup_co" do @@ -235,10 +231,6 @@ begin end end rescue LoadError - task :spec do - abort "Run `rake spec:deps` to be able to run the specs" - end - task :rubocop do abort "Run `rake spec:deps` to be able to run rubocop" end -- cgit v1.2.1 From 7db55290eabeca9af70883a802ff6770bc88bf33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 17:40:03 +0100 Subject: Make `bin/rubocop` activate only `rubocop` --- bin/rubocop | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bin/rubocop b/bin/rubocop index 8014aff639..ac84b47963 100755 --- a/bin/rubocop +++ b/bin/rubocop @@ -6,12 +6,17 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) -bundler_spec.dependencies.each do |dep| - gem dep.name, dep.requirement +rubocop = bundler_spec.dependencies.find do |dep| + dep.name == "rubocop" end -gem "rubocop", "= 0.65.0" +rubocop_requirement = rubocop.requirement.to_s -Gem.finish_resolve if Gem.respond_to?(:finish_resolve) +begin + gem "rubocop", rubocop_requirement + Gem.finish_resolve if Gem.respond_to?(:finish_resolve) -load Gem.bin_path("rubocop", "rubocop") + load Gem.bin_path("rubocop", "rubocop") +rescue Gem::LoadError + warn "We couln't activate rubocop (#{rubocop_requirement}). Try `gem install rubocop:'#{rubocop_requirement}'`" +end -- cgit v1.2.1 From 3c229b275c4799067e62cec54e20283cc622b8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Sat, 23 Feb 2019 23:50:12 +0100 Subject: Remove unnecessary prerequisite --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index ec4a520ac3..e92f1a33de 100644 --- a/Rakefile +++ b/Rakefile @@ -176,7 +176,7 @@ begin puts "RUBYOPT=#{ENV["RUBYOPT"]}" end - task rg => ["man:build", "clone_rubygems_#{rg}"] + task rg => ["clone_rubygems_#{rg}"] task "rubygems:all" => rg end -- cgit v1.2.1 From 0f62ba3073b5371e427c882e3e63c3035861db4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 17:45:22 +0100 Subject: Simplify rubocop task We shell out to the binstub so we no longer need the activation dance. --- Rakefile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Rakefile b/Rakefile index e92f1a33de..3427f06bae 100644 --- a/Rakefile +++ b/Rakefile @@ -95,11 +95,12 @@ task :spec do sh("bin/rspec") end -begin - require "rubocop/rake_task" - rubocop = RuboCop::RakeTask.new - rubocop.options = ["--parallel"] +desc "Run RuboCop" +task :rubocop do + sh("bin/rubocop --parallel") +end +begin namespace :spec do task :clean do rm_rf "tmp" @@ -231,9 +232,7 @@ begin end end rescue LoadError - task :rubocop do - abort "Run `rake spec:deps` to be able to run rubocop" - end + nil end begin -- cgit v1.2.1 From cc2511da4cecb9f4fc20db5ddc4a5a0e2eb9573b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 17:46:24 +0100 Subject: Remove now dummy being-rescue-end block --- Rakefile | 198 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 97 insertions(+), 101 deletions(-) diff --git a/Rakefile b/Rakefile index 3427f06bae..f8f13a3f09 100644 --- a/Rakefile +++ b/Rakefile @@ -100,139 +100,135 @@ task :rubocop do sh("bin/rubocop --parallel") end -begin - namespace :spec do - task :clean do - rm_rf "tmp" - end +namespace :spec do + task :clean do + rm_rf "tmp" + end - desc "Run the real-world spec suite" - task :realworld => %w[set_realworld spec] + desc "Run the real-world spec suite" + task :realworld => %w[set_realworld spec] - namespace :realworld do - desc "Re-record cassettes for the realworld specs" - task :record => %w[set_record realworld] + namespace :realworld do + desc "Re-record cassettes for the realworld specs" + task :record => %w[set_record realworld] - task :set_record do - ENV["BUNDLER_SPEC_FORCE_RECORD"] = "TRUE" - end + task :set_record do + ENV["BUNDLER_SPEC_FORCE_RECORD"] = "TRUE" end + end - task :set_realworld do - ENV["BUNDLER_REALWORLD_TESTS"] = "1" - end + task :set_realworld do + ENV["BUNDLER_REALWORLD_TESTS"] = "1" + end - desc "Run the spec suite with the sudo tests" - task :sudo => %w[set_sudo spec clean_sudo] + desc "Run the spec suite with the sudo tests" + task :sudo => %w[set_sudo spec clean_sudo] - task :set_sudo do - ENV["BUNDLER_SUDO_TESTS"] = "1" - end + task :set_sudo do + ENV["BUNDLER_SUDO_TESTS"] = "1" + end - task :clean_sudo do - puts "Cleaning up sudo test files..." - system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}" - end + task :clean_sudo do + puts "Cleaning up sudo test files..." + system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}" + end - # RubyGems specs by version - namespace :rubygems do - rubyopt = ENV["RUBYOPT"] - # When editing this list, also edit .travis.yml! - branches = %w[master] - releases = %w[v2.5.2 v2.6.14 v2.7.9 v3.0.3] - (branches + releases).each do |rg| - desc "Run specs with RubyGems #{rg}" - task rg do - sh("bin/rspec") - end + # RubyGems specs by version + namespace :rubygems do + rubyopt = ENV["RUBYOPT"] + # When editing this list, also edit .travis.yml! + branches = %w[master] + releases = %w[v2.5.2 v2.6.14 v2.7.9 v3.0.3] + (branches + releases).each do |rg| + desc "Run specs with RubyGems #{rg}" + task rg do + sh("bin/rspec") + end - # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs - namespace rg do - task :sudo => ["set_sudo", rg, "clean_sudo"] - task :realworld => ["set_realworld", rg] - end + # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs + namespace rg do + task :sudo => ["set_sudo", rg, "clean_sudo"] + task :realworld => ["set_realworld", rg] + end - task "clone_rubygems_#{rg}" do - unless File.directory?(RUBYGEMS_REPO) - system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems") - end - hash = nil - - if RUBYGEMS_REPO.start_with?(Dir.pwd) - Dir.chdir(RUBYGEMS_REPO) do - system("git remote update") - if rg == "master" - system("git checkout origin/master") - else - system("git checkout #{rg}") || raise("Unknown RubyGems ref #{rg}") - end - hash = `git rev-parse HEAD`.chomp + task "clone_rubygems_#{rg}" do + unless File.directory?(RUBYGEMS_REPO) + system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems") + end + hash = nil + + if RUBYGEMS_REPO.start_with?(Dir.pwd) + Dir.chdir(RUBYGEMS_REPO) do + system("git remote update") + if rg == "master" + system("git checkout origin/master") + else + system("git checkout #{rg}") || raise("Unknown RubyGems ref #{rg}") end - elsif rg != "master" - raise "need to be running against master with bundler as a submodule" + hash = `git rev-parse HEAD`.chomp end - - puts "Checked out rubygems '#{rg}' at #{hash}" - ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}" - puts "RUBYOPT=#{ENV["RUBYOPT"]}" + elsif rg != "master" + raise "need to be running against master with bundler as a submodule" end - task rg => ["clone_rubygems_#{rg}"] - task "rubygems:all" => rg + puts "Checked out rubygems '#{rg}' at #{hash}" + ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}" + puts "RUBYOPT=#{ENV["RUBYOPT"]}" end - desc "Run specs under a RubyGems checkout (set RG=path)" - task "co" do - sh("bin/rspec") - end + task rg => ["clone_rubygems_#{rg}"] + task "rubygems:all" => rg + end - task "setup_co" do - rg = File.expand_path ENV["RG"] - puts "Running specs against RubyGems in #{rg}..." - ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}" - end + desc "Run specs under a RubyGems checkout (set RG=path)" + task "co" do + sh("bin/rspec") + end - task "co" => "setup_co" - task "rubygems:all" => "co" + task "setup_co" do + rg = File.expand_path ENV["RG"] + puts "Running specs against RubyGems in #{rg}..." + ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}" end - desc "Run the tests on Travis CI against a RubyGem version (using ENV['RGV'])" - task :travis do - rg = ENV["RGV"] || raise("RubyGems version is required on Travis!") + task "co" => "setup_co" + task "rubygems:all" => "co" + end - # disallow making network requests on CI - ENV["BUNDLER_SPEC_PRE_RECORDED"] = "TRUE" + desc "Run the tests on Travis CI against a RubyGem version (using ENV['RGV'])" + task :travis do + rg = ENV["RGV"] || raise("RubyGems version is required on Travis!") - puts "\n\e[1;33m[Travis CI] Running bundler specs against RubyGems #{rg}\e[m\n\n" - specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke } + # disallow making network requests on CI + ENV["BUNDLER_SPEC_PRE_RECORDED"] = "TRUE" - Rake::Task["spec:rubygems:#{rg}"].reenable + puts "\n\e[1;33m[Travis CI] Running bundler specs against RubyGems #{rg}\e[m\n\n" + specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke } - puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against RubyGems #{rg}\e[m\n\n" - sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo") - # clean up by chowning the newly root-owned tmp directory back to the travis user - system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}") + Rake::Task["spec:rubygems:#{rg}"].reenable - Rake::Task["spec:rubygems:#{rg}"].reenable + puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against RubyGems #{rg}\e[m\n\n" + sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo") + # clean up by chowning the newly root-owned tmp directory back to the travis user + system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}") - puts "\n\e[1;33m[Travis CI] Running bundler real world specs against RubyGems #{rg}\e[m\n\n" - realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke } + Rake::Task["spec:rubygems:#{rg}"].reenable - { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed| - if passed - puts "\e[0;32m[Travis CI] #{name} passed\e[m" - else - puts "\e[0;31m[Travis CI] #{name} failed\e[m" - end - end + puts "\n\e[1;33m[Travis CI] Running bundler real world specs against RubyGems #{rg}\e[m\n\n" + realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke } - unless specs && sudos && realworld - raise "Spec run failed, please review the log for more information" + { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed| + if passed + puts "\e[0;32m[Travis CI] #{name} passed\e[m" + else + puts "\e[0;31m[Travis CI] #{name} failed\e[m" end end + + unless specs && sudos && realworld + raise "Spec run failed, please review the log for more information" + end end -rescue LoadError - nil end begin -- cgit v1.2.1 From b98fca133f4fa4c670fe82c3cdbd1464a26e1512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 17:27:00 +0100 Subject: Make `bin/rake` activate only `rake` --- bin/rake | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/bin/rake b/bin/rake index 47fcb49888..6c08fb0b97 100755 --- a/bin/rake +++ b/bin/rake @@ -5,17 +5,18 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" -unless ARGV[0] == "spec:deps" - bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) - bundler_spec.dependencies.each do |dep| - begin - gem dep.name, dep.requirement - rescue Gem::LoadError => e - warn "#{e.message} (#{e.class})" - end - end +bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) +rake = bundler_spec.development_dependencies.find do |dep| + dep.name == "rake" +end + +rake_requirement = rake.requirement.to_s +begin + gem "rake", rake_requirement Gem.finish_resolve if Gem.respond_to?(:finish_resolve) -end -load Gem.bin_path("rake", "rake") + load Gem.bin_path("rake", "rake") +rescue Gem::LoadError + warn "We couln't activate rake (#{rake_requirement}). Run `gem install rake:'#{rake_requirement}'`" +end -- cgit v1.2.1 From 4e4911f1ce2e9f34096f0fdbdec5bb55cc1b181c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Wed, 27 Feb 2019 10:54:02 +0100 Subject: Simplify rubygems path transmission Since the RSpec task now uses the RSpec binstub, we can rely on all the dance done in there. --- Rakefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Rakefile b/Rakefile index f8f13a3f09..9df58df9fe 100644 --- a/Rakefile +++ b/Rakefile @@ -172,8 +172,7 @@ namespace :spec do end puts "Checked out rubygems '#{rg}' at #{hash}" - ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}" - puts "RUBYOPT=#{ENV["RUBYOPT"]}" + ENV["RGV"] = rg end task rg => ["clone_rubygems_#{rg}"] -- cgit v1.2.1 From ad9695eef7c26d5dd2872c7b737542530883bdb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 18:02:46 +0100 Subject: Merge the `:spec` namespace to a single block --- Rakefile | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Rakefile b/Rakefile index 9df58df9fe..97608dcce9 100644 --- a/Rakefile +++ b/Rakefile @@ -36,6 +36,11 @@ module Rake end end +desc "Run specs" +task :spec do + sh("bin/rspec") +end + namespace :spec do desc "Ensure spec dependencies are installed" task :deps do @@ -88,19 +93,7 @@ namespace :spec do Rake::Task["spec:deps"].invoke end end -end - -desc "Run specs" -task :spec do - sh("bin/rspec") -end -desc "Run RuboCop" -task :rubocop do - sh("bin/rubocop --parallel") -end - -namespace :spec do task :clean do rm_rf "tmp" end @@ -230,6 +223,11 @@ namespace :spec do end end +desc "Run RuboCop" +task :rubocop do + sh("bin/rubocop --parallel") +end + begin require "ronn" -- cgit v1.2.1 From c44bdcdc378700b111721957fce3d33ed890d6e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 18:24:16 +0100 Subject: Move the `safe_task` method into the :spec namespace --- Rakefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Rakefile b/Rakefile index 97608dcce9..d6bb2fe386 100644 --- a/Rakefile +++ b/Rakefile @@ -15,13 +15,6 @@ def bundler_spec @bundler_spec ||= Gem::Specification.load("bundler.gemspec") end -def safe_task(&block) - yield - true -rescue StandardError - false -end - # Benchmark task execution module Rake class Task @@ -42,6 +35,13 @@ task :spec do end namespace :spec do + def safe_task(&block) + yield + true + rescue StandardError + false + end + desc "Ensure spec dependencies are installed" task :deps do deps = Hash[bundler_spec.development_dependencies.map do |d| -- cgit v1.2.1 From cfef45c36cec31e5f4d7dd16ed3ec4b511ab9075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 18:09:34 +0100 Subject: Remove unused require --- Rakefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Rakefile b/Rakefile index d6bb2fe386..5a9fefb936 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,6 @@ # frozen_string_literal: true $:.unshift File.expand_path("../lib", __FILE__) -require "shellwords" require "benchmark" NULL_DEVICE = (Gem.win_platform? ? "NUL" : "/dev/null") -- cgit v1.2.1 From 2fc242800a6239b9720856ba24277536737ca4d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 18:10:05 +0100 Subject: Simplify globbing No .rb files in there. --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 5a9fefb936..530e1249f5 100644 --- a/Rakefile +++ b/Rakefile @@ -358,6 +358,6 @@ end task :default => :spec -Dir["task/*.{rb,rake}"].each(&method(:load)) +Dir["task/*.rake"].each(&method(:load)) task :generate_files => Rake::Task.tasks.select {|t| t.name.start_with?("lib/bundler/generated") } -- cgit v1.2.1 From 5d196ef0eaa2f9ff64dcc648cc6d7a3ad701731e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Mon, 4 Mar 2019 18:22:11 +0100 Subject: Improve `ronn` activation Previously having another gem with a `ronn` executable would silently work and fail later with a cryptic error. Now we activate the proper version, and give a proper error if it fails. --- Rakefile | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Rakefile b/Rakefile index 530e1249f5..e5b318858e 100644 --- a/Rakefile +++ b/Rakefile @@ -227,10 +227,21 @@ task :rubocop do sh("bin/rubocop --parallel") end -begin - require "ronn" +namespace :man do + ronn_dep = bundler_spec.development_dependencies.find do |dep| + dep.name == "ronn" + end + + ronn_requirement = ronn_dep.requirement.to_s - namespace :man do + begin + gem "ronn", ronn_requirement + + require "ronn" + rescue LoadError + task(:require) { abort "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to release!" } + task(:build) { warn "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to build the help pages" } + else directory "man" index = [] @@ -284,11 +295,6 @@ begin task(:require) {} end -rescue LoadError - namespace :man do - task(:require) { abort "Install the ronn gem to be able to release!" } - task(:build) { warn "Install the ronn gem to build the help pages" } - end end begin -- cgit v1.2.1 From f957d74e43f7db9f117585dbc95d5d7adf90a68c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Tue, 5 Mar 2019 10:59:04 +0100 Subject: Abort when building man pages without ronn --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index e5b318858e..364ba3ed1f 100644 --- a/Rakefile +++ b/Rakefile @@ -240,7 +240,7 @@ namespace :man do require "ronn" rescue LoadError task(:require) { abort "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to release!" } - task(:build) { warn "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to build the help pages" } + task(:build) { abort "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to build the help pages" } else directory "man" -- cgit v1.2.1 From 6f396645f41c3210c2dba3bcc86778103a01f71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Fri, 8 Mar 2019 12:03:59 +0100 Subject: `finish_resolve` is not actually needed --- bin/rake | 2 -- bin/rspec | 2 -- bin/rubocop | 2 -- 3 files changed, 6 deletions(-) diff --git a/bin/rake b/bin/rake index 6c08fb0b97..cf4131d5b0 100755 --- a/bin/rake +++ b/bin/rake @@ -14,8 +14,6 @@ rake_requirement = rake.requirement.to_s begin gem "rake", rake_requirement - Gem.finish_resolve if Gem.respond_to?(:finish_resolve) - load Gem.bin_path("rake", "rake") rescue Gem::LoadError warn "We couln't activate rake (#{rake_requirement}). Run `gem install rake:'#{rake_requirement}'`" diff --git a/bin/rspec b/bin/rspec index 4ef45c9b32..a3980e6744 100755 --- a/bin/rspec +++ b/bin/rspec @@ -14,8 +14,6 @@ rspec_requirement = rspec.requirement.to_s begin gem "rspec", rspec_requirement - Gem.finish_resolve if Gem.respond_to?(:finish_resolve) - load Gem.bin_path("rspec-core", "rspec") rescue Gem::LoadError warn "We couln't activate rspec (#{rspec_requirement}). Try `gem install rspec:'#{rspec_requirement}'`" diff --git a/bin/rubocop b/bin/rubocop index ac84b47963..ef86f084a9 100755 --- a/bin/rubocop +++ b/bin/rubocop @@ -14,8 +14,6 @@ rubocop_requirement = rubocop.requirement.to_s begin gem "rubocop", rubocop_requirement - Gem.finish_resolve if Gem.respond_to?(:finish_resolve) - load Gem.bin_path("rubocop", "rubocop") rescue Gem::LoadError warn "We couln't activate rubocop (#{rubocop_requirement}). Try `gem install rubocop:'#{rubocop_requirement}'`" -- cgit v1.2.1