diff options
Diffstat (limited to 'tasks/dependencies.rb')
-rw-r--r-- | tasks/dependencies.rb | 104 |
1 files changed, 47 insertions, 57 deletions
diff --git a/tasks/dependencies.rb b/tasks/dependencies.rb index 2faf3b883a..eb4bb1f44f 100644 --- a/tasks/dependencies.rb +++ b/tasks/dependencies.rb @@ -22,8 +22,8 @@ require_relative "../version_policy" desc "Tasks to update and check dependencies" namespace :dependencies do # Update all dependencies to the latest constraint-matching version - desc "Update all dependencies. dependencies:update[conservative] to update as little as possible." - task :update, [:conservative] => %w{ + desc "Update all dependencies. dependencies:update to update as little as possible." + task :update => %w{ dependencies:update_gemfile_lock dependencies:update_omnibus_overrides dependencies:update_omnibus_gemfile_lock @@ -32,28 +32,22 @@ namespace :dependencies do dependencies:update_kitchen_tests_berksfile_lock } - desc "Update Gemfile.lock and all Gemfile.<platform>.locks. update_gemfile_lock[conservative] to update as little as possible." - task :update_gemfile_lock, [:conservative] do |t, rake_args| - conservative = rake_args[:conservative] - if conservative - Rake::Task["bundle:install"].invoke - else - Rake::Task["bundle:update"].invoke - end + desc "Update Gemfile.lock and all Gemfile.<platform>.locks." + task :update_gemfile_lock do |t, rake_args| + Rake::Task["bundle:update"].invoke end def gemfile_lock_task(task_name, dirs: [], other_platforms: true, leave_frozen: true) dirs.each do |dir| - desc "Update #{dir}/Gemfile.lock. #{task_name}[conservative] to update as little as possible." - task task_name, [:conservative] do |t, rake_args| + desc "Update #{dir}/Gemfile.lock." + task task_name do |t, rake_args| extend BundleUtil - conservative = rake_args[:conservative] puts "" puts "-------------------------------------------------------------------" - puts "Updating #{dir}/Gemfile.lock#{conservative ? " (conservatively)" : ""} ..." + puts "Updating #{dir}/Gemfile.lock ..." puts "-------------------------------------------------------------------" with_bundle_unfrozen(cwd: dir, leave_frozen: leave_frozen) do - bundle "install", cwd: dir, delete_gemfile_lock: !conservative + bundle "install", cwd: dir, delete_gemfile_lock: true if other_platforms # Include all other supported platforms into the lockfile as well platforms.each do |platform| @@ -67,15 +61,14 @@ namespace :dependencies do def berksfile_lock_task(task_name, dirs: []) dirs.each do |dir| - desc "Update #{dir}/Berksfile.lock. #{task_name}[conservative] to update as little as possible." - task task_name, [:conservative] do |t, rake_args| + desc "Update #{dir}/Berksfile.lock." + task task_name do |t, rake_args| extend BundleUtil - conservative = rake_args[:conservative] puts "" puts "-------------------------------------------------------------------" - puts "Updating #{dir}/Berksfile.lock#{conservative ? " (conservatively)" : ""} ..." + puts "Updating #{dir}/Berksfile.lock ..." puts "-------------------------------------------------------------------" - if !conservative && File.exist?("#{project_root}/#{dir}/Berksfile.lock") + if File.exist?("#{project_root}/#{dir}/Berksfile.lock") File.delete("#{project_root}/#{dir}/Berksfile.lock") end Dir.chdir("#{project_root}/#{dir}") do @@ -100,48 +93,45 @@ namespace :dependencies do } # kitchen-tests/cookbooks/webapp isn't solving right now .... - desc "Update omnibus overrides, including versions in version_policy.rb and latest version of gems: #{OMNIBUS_RUBYGEMS_AT_LATEST_VERSION.keys}. update_omnibus_overrides[conservative] does nothing." - task :update_omnibus_overrides, [:conservative] do |t, rake_args| - conservative = rake_args[:conservative] - unless conservative - puts "" - puts "-------------------------------------------------------------------" - puts "Updating omnibus_overrides.rb ..." - puts "-------------------------------------------------------------------" - - # Generate the new overrides file - overrides = "# DO NOT EDIT. Generated by \"rake dependencies\". Edit version_policy.rb instead.\n" + desc "Update omnibus overrides, including versions in version_policy.rb and latest version of gems: #{OMNIBUS_RUBYGEMS_AT_LATEST_VERSION.keys}." + task :update_omnibus_overrides do |t, rake_args| + puts "" + puts "-------------------------------------------------------------------" + puts "Updating omnibus_overrides.rb ..." + puts "-------------------------------------------------------------------" - # Replace the bundler and rubygems versions - OMNIBUS_RUBYGEMS_AT_LATEST_VERSION.each do |override_name, gem_name| - # Get the latest bundler version - puts "Running gem list -r #{gem_name} ..." - gem_list = `gem list -r #{gem_name}` - unless gem_list =~ /^#{gem_name}\s*\(([^)]*)\)$/ - raise "gem list -r #{gem_name} failed with output:\n#{gem_list}" - end + # Generate the new overrides file + overrides = "# DO NOT EDIT. Generated by \"rake dependencies\". Edit version_policy.rb instead.\n" - # Emit it - puts "Latest version of #{gem_name} is #{$1}" - overrides << "override #{override_name.inspect}, version: #{$1.inspect}\n" + # Replace the bundler and rubygems versions + OMNIBUS_RUBYGEMS_AT_LATEST_VERSION.each do |override_name, gem_name| + # Get the latest bundler version + puts "Running gem list -r #{gem_name} ..." + gem_list = `gem list -r #{gem_name}` + unless gem_list =~ /^#{gem_name}\s*\(([^)]*)\)$/ + raise "gem list -r #{gem_name} failed with output:\n#{gem_list}" end - # Add explicit overrides - OMNIBUS_OVERRIDES.each do |override_name, version| - overrides << "override #{override_name.inspect}, version: #{version.inspect}\n" - end + # Emit it + puts "Latest version of #{gem_name} is #{$1}" + overrides << "override #{override_name.inspect}, version: #{$1.inspect}\n" + end - # Write the file out (if changed) - overrides_path = File.expand_path("../../omnibus_overrides.rb", __FILE__) - if overrides != IO.read(overrides_path) - puts "Overrides changed!" - puts `git diff #{overrides_path}` - puts "Writing modified #{overrides_path} ..." - IO.write(overrides_path, overrides) - end + # Add explicit overrides + OMNIBUS_OVERRIDES.each do |override_name, version| + overrides << "override #{override_name.inspect}, version: #{version.inspect}\n" + end + + # Write the file out (if changed) + overrides_path = File.expand_path("../../omnibus_overrides.rb", __FILE__) + if overrides != IO.read(overrides_path) + puts "Overrides changed!" + puts `git diff #{overrides_path}` + puts "Writing modified #{overrides_path} ..." + IO.write(overrides_path, overrides) end end end -desc "Update all dependencies and check for outdated gems. Call dependencies[conservative] to update as little as possible." -task :dependencies, [:conservative] => [ "dependencies:update", "bundle:outdated" ] -task :update, [:conservative] => [ "dependencies:update", "bundle:outdated"] +desc "Update all dependencies and check for outdated gems." +task :dependencies => [ "dependencies:update", "bundle:outdated" ] +task :update => [ "dependencies:update", "bundle:outdated"] |