Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-bundler for openSUSE:Factory checked in at 2021-08-27 21:43:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-bundler (Old) and /work/SRC/openSUSE:Factory/.rubygem-bundler.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-bundler" Fri Aug 27 21:43:32 2021 rev:53 rq:912491 version:2.2.24 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-bundler/rubygem-bundler.changes 2021-07-02 13:28:23.856327394 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-bundler.new.1899/rubygem-bundler.changes 2021-08-27 21:43:46.293961289 +0200 @@ -1,0 +2,48 @@ +Mon Jul 26 05:49:13 UTC 2021 - Stephan Kulow <co...@suse.com> + +updated to version 2.2.24 + see installed CHANGELOG.md + + # 2.2.24 (July 15, 2021) + + ## Bug fixes: + + - Fix development gem unintentionally removed on an edge case [#4751](https://github.com/rubygems/rubygems/pull/4751) + - Fix dangling empty plugin hooks [#4755](https://github.com/rubygems/rubygems/pull/4755) + - Fix `bundle plugin install --help` showing `bundle install`'s help [#4756](https://github.com/rubygems/rubygems/pull/4756) + - Make sure `bundle check` shows uniq missing gems [#4749](https://github.com/rubygems/rubygems/pull/4749) + + ## Performance: + + - Slightly speed up `bundler/setup` [#4750](https://github.com/rubygems/rubygems/pull/4750) + + # 2.2.23 (July 9, 2021) + + ## Enhancements: + + - Fix `bundle install` on truffleruby selecting incorrect variant for `sorbet-static` gem [#4625](https://github.com/rubygems/rubygems/pull/4625) + - Spare meaningless warning on read-only bundle invocations [#4724](https://github.com/rubygems/rubygems/pull/4724) + + ## Bug fixes: + + - Fix incorrect warning about duplicated gems in the Gemfile [#4732](https://github.com/rubygems/rubygems/pull/4732) + - Fix `bundle plugin install foo` crashing [#4734](https://github.com/rubygems/rubygems/pull/4734) + + # 2.2.22 (July 6, 2021) + + ## Enhancements: + + - Never downgrade indirect dependencies when running `bundle update` [#4713](https://github.com/rubygems/rubygems/pull/4713) + - Fix `getaddrinfo` errors not treated as fatal on non darwin platforms [#4703](https://github.com/rubygems/rubygems/pull/4703) + + ## Bug fixes: + + - Fix `bundle update <gem>` sometimes hanging and `bundle lock --update` not being able to update an insecure lockfile to the new format if it requires downgrades [#4652](https://github.com/rubygems/rubygems/pull/4652) + - Fix edge case combination of DSL methods and duplicated sources causing gems to not be found [#4711](https://github.com/rubygems/rubygems/pull/4711) + - Fix `bundle doctor` crashing when finding a broken symlink [#4707](https://github.com/rubygems/rubygems/pull/4707) + - Fix incorrect re-resolve edge case [#4700](https://github.com/rubygems/rubygems/pull/4700) + - Fix some gems being unintentionally locked under multiple lockfile sections [#4701](https://github.com/rubygems/rubygems/pull/4701) + - Fix `--conservative` flag unexpectedly updating indirect dependencies [#4692](https://github.com/rubygems/rubygems/pull/4692) + + +------------------------------------------------------------------- Old: ---- bundler-2.2.21.gem New: ---- bundler-2.2.24.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-bundler.spec ++++++ --- /var/tmp/diff_new_pack.2qJb3Z/_old 2021-08-27 21:43:47.721962940 +0200 +++ /var/tmp/diff_new_pack.2qJb3Z/_new 2021-08-27 21:43:47.721962940 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-bundler -Version: 2.2.21 +Version: 2.2.24 Release: 0 %define mod_name bundler %define mod_full_name %{mod_name}-%{version} ++++++ bundler-2.2.21.gem -> bundler-2.2.24.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md --- old/CHANGELOG.md 2021-06-23 15:25:56.000000000 +0200 +++ new/CHANGELOG.md 2021-07-15 17:00:51.000000000 +0200 @@ -1,3 +1,44 @@ +# 2.2.24 (July 15, 2021) + +## Bug fixes: + + - Fix development gem unintentionally removed on an edge case [#4751](https://github.com/rubygems/rubygems/pull/4751) + - Fix dangling empty plugin hooks [#4755](https://github.com/rubygems/rubygems/pull/4755) + - Fix `bundle plugin install --help` showing `bundle install`'s help [#4756](https://github.com/rubygems/rubygems/pull/4756) + - Make sure `bundle check` shows uniq missing gems [#4749](https://github.com/rubygems/rubygems/pull/4749) + +## Performance: + + - Slightly speed up `bundler/setup` [#4750](https://github.com/rubygems/rubygems/pull/4750) + +# 2.2.23 (July 9, 2021) + +## Enhancements: + + - Fix `bundle install` on truffleruby selecting incorrect variant for `sorbet-static` gem [#4625](https://github.com/rubygems/rubygems/pull/4625) + - Spare meaningless warning on read-only bundle invocations [#4724](https://github.com/rubygems/rubygems/pull/4724) + +## Bug fixes: + + - Fix incorrect warning about duplicated gems in the Gemfile [#4732](https://github.com/rubygems/rubygems/pull/4732) + - Fix `bundle plugin install foo` crashing [#4734](https://github.com/rubygems/rubygems/pull/4734) + +# 2.2.22 (July 6, 2021) + +## Enhancements: + + - Never downgrade indirect dependencies when running `bundle update` [#4713](https://github.com/rubygems/rubygems/pull/4713) + - Fix `getaddrinfo` errors not treated as fatal on non darwin platforms [#4703](https://github.com/rubygems/rubygems/pull/4703) + +## Bug fixes: + + - Fix `bundle update <gem>` sometimes hanging and `bundle lock --update` not being able to update an insecure lockfile to the new format if it requires downgrades [#4652](https://github.com/rubygems/rubygems/pull/4652) + - Fix edge case combination of DSL methods and duplicated sources causing gems to not be found [#4711](https://github.com/rubygems/rubygems/pull/4711) + - Fix `bundle doctor` crashing when finding a broken symlink [#4707](https://github.com/rubygems/rubygems/pull/4707) + - Fix incorrect re-resolve edge case [#4700](https://github.com/rubygems/rubygems/pull/4700) + - Fix some gems being unintentionally locked under multiple lockfile sections [#4701](https://github.com/rubygems/rubygems/pull/4701) + - Fix `--conservative` flag unexpectedly updating indirect dependencies [#4692](https://github.com/rubygems/rubygems/pull/4692) + # 2.2.21 (June 23, 2021) ## Security fixes: Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/build_metadata.rb new/lib/bundler/build_metadata.rb --- old/lib/bundler/build_metadata.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/build_metadata.rb 2021-07-15 17:00:51.000000000 +0200 @@ -4,8 +4,8 @@ # Represents metadata from when the Bundler gem was built. module BuildMetadata # begin ivars - @built_at = "2021-06-23".freeze - @git_commit_sha = "0b5db72094".freeze + @built_at = "2021-07-15".freeze + @git_commit_sha = "d78b1ee235".freeze @release = true # end ivars diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/cli/doctor.rb new/lib/bundler/cli/doctor.rb --- old/lib/bundler/cli/doctor.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/cli/doctor.rb 2021-07-15 17:00:51.000000000 +0200 @@ -100,8 +100,11 @@ files_not_readable_or_writable = [] files_not_rw_and_owned_by_different_user = [] files_not_owned_by_current_user_but_still_rw = [] + broken_symlinks = [] Find.find(Bundler.bundle_path.to_s).each do |f| - if !File.writable?(f) || !File.readable?(f) + if !File.exist?(f) + broken_symlinks << f + elsif !File.writable?(f) || !File.readable?(f) if File.stat(f).uid != Process.uid files_not_rw_and_owned_by_different_user << f else @@ -113,6 +116,13 @@ end ok = true + + if broken_symlinks.any? + Bundler.ui.warn "Broken links exist in the Bundler home. Please report them to the offending gem's upstream repo. These files are:\n - #{broken_symlinks.join("\n - ")}" + + ok = false + end + if files_not_owned_by_current_user_but_still_rw.any? Bundler.ui.warn "Files exist in the Bundler home that are owned by another " \ "user, but are still readable/writable. These files are:\n - #{files_not_owned_by_current_user_but_still_rw.join("\n - ")}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/cli/install.rb new/lib/bundler/cli/install.rb --- old/lib/bundler/cli/install.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/cli/install.rb 2021-07-15 17:00:51.000000000 +0200 @@ -104,7 +104,7 @@ private def warn_if_root - return if Bundler.settings[:silence_root_warning] || Bundler::WINDOWS || !Process.uid.zero? + return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero? Bundler.ui.warn "Don't run Bundler as root. Bundler can ask for sudo " \ "if it is needed, and installing your bundle as root will break this " \ "application for all non-root users on this machine.", :wrap => true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/cli/lock.rb new/lib/bundler/cli/lock.rb --- old/lib/bundler/cli/lock.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/cli/lock.rb 2021-07-15 17:00:51.000000000 +0200 @@ -21,9 +21,13 @@ Bundler::Fetcher.disable_endpoint = options["full-index"] update = options[:update] + conservative = options[:conservative] + if update.is_a?(Array) # unlocking specific gems Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update) - update = { :gems => update, :lock_shared_dependencies => options[:conservative] } + update = { :gems => update, :conservative => conservative } + elsif update + update = { :conservative => conservative } if conservative end definition = Bundler.definition(update) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/cli/update.rb new/lib/bundler/cli/update.rb --- old/lib/bundler/cli/update.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/cli/update.rb 2021-07-15 17:00:51.000000000 +0200 @@ -27,9 +27,14 @@ raise InvalidOption, "Cannot specify --all along with specific options." end + conservative = options[:conservative] + if full_update - # We're doing a full update - Bundler.definition(true) + if conservative + Bundler.definition(:conservative => conservative) + else + Bundler.definition(true) + end else unless Bundler.default_lockfile.exist? raise GemfileLockNotFound, "This Bundle hasn't been installed yet. " \ @@ -43,7 +48,7 @@ end Bundler.definition(:gems => gems, :sources => sources, :ruby => options[:ruby], - :lock_shared_dependencies => options[:conservative], + :conservative => conservative, :bundler => options[:bundler]) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/cli.rb new/lib/bundler/cli.rb --- old/lib/bundler/cli.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/cli.rb 2021-07-15 17:00:51.000000000 +0200 @@ -14,6 +14,7 @@ COMMAND_ALIASES = { "check" => "c", "install" => "i", + "plugin" => "", "list" => "ls", "exec" => ["e", "ex", "exe"], "cache" => ["package", "pack"], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/current_ruby.rb new/lib/bundler/current_ruby.rb --- old/lib/bundler/current_ruby.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/current_ruby.rb 2021-07-15 17:00:51.000000000 +0200 @@ -65,19 +65,19 @@ end def mswin? - Bundler::WINDOWS + Gem.win_platform? end def mswin64? - Bundler::WINDOWS && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mswin64" && Bundler.local_platform.cpu == "x64" + Gem.win_platform? && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mswin64" && Bundler.local_platform.cpu == "x64" end def mingw? - Bundler::WINDOWS && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mingw32" && Bundler.local_platform.cpu != "x64" + Gem.win_platform? && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mingw32" && Bundler.local_platform.cpu != "x64" end def x64_mingw? - Bundler::WINDOWS && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mingw32" && Bundler.local_platform.cpu == "x64" + Gem.win_platform? && Bundler.local_platform != Gem::Platform::RUBY && Bundler.local_platform.os == "mingw32" && Bundler.local_platform.cpu == "x64" end (KNOWN_MINOR_VERSIONS + KNOWN_MAJOR_VERSIONS).each do |version| diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/definition.rb new/lib/bundler/definition.rb --- old/lib/bundler/definition.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/definition.rb 2021-07-15 17:00:51.000000000 +0200 @@ -56,10 +56,8 @@ @unlocking_bundler = false @unlocking = unlock else - unlock = unlock.dup @unlocking_bundler = unlock.delete(:bundler) - unlock.delete_if {|_k, v| Array(v).empty? } - @unlocking = !unlock.empty? + @unlocking = unlock.any? {|_k, v| !Array(v).empty? } end @dependencies = dependencies @@ -106,8 +104,8 @@ @locked_platforms = [] end - @locked_gem_sources = @locked_sources.select {|s| s.is_a?(Source::Rubygems) } - @multisource_allowed = @locked_gem_sources.any?(&:multiple_remotes?) && (sources.aggregate_global_source? || Bundler.frozen_bundle?) + locked_gem_sources = @locked_sources.select {|s| s.is_a?(Source::Rubygems) } + @multisource_allowed = locked_gem_sources.size == 1 && locked_gem_sources.first.multiple_remotes? && Bundler.frozen_bundle? if @multisource_allowed unless sources.aggregate_global_source? @@ -116,10 +114,9 @@ Bundler::SharedHelpers.major_deprecation 2, msg end - @sources.merged_gem_lockfile_sections! + @sources.merged_gem_lockfile_sections!(locked_gem_sources.first) end - @unlock[:gems] ||= [] @unlock[:sources] ||= [] @unlock[:ruby] ||= if @ruby_version && locked_ruby_version_object @ruby_version.diff(locked_ruby_version_object) @@ -132,9 +129,11 @@ @path_changes = converge_paths @source_changes = converge_sources - unless @unlock[:lock_shared_dependencies] - eager_unlock = expand_dependencies(@unlock[:gems], true) - @unlock[:gems] = @locked_specs.for(eager_unlock, [], false, false, false).map(&:name) + if @unlock[:conservative] + @unlock[:gems] ||= @dependencies.map(&:name) + else + eager_unlock = expand_dependencies(@unlock[:gems] || [], true) + @unlock[:gems] = @locked_specs.for(eager_unlock, false, false, false).map(&:name) end @dependency_changes = converge_dependencies @@ -186,25 +185,15 @@ # # @return [Bundler::SpecSet] def specs - @specs ||= begin - begin - specs = resolve.materialize(requested_dependencies) - rescue GemNotFound => e # Handle yanked gem - gem_name, gem_version = extract_gem_info(e) - locked_gem = @locked_specs[gem_name].last - raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote - raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \ - "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \ - "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \ - "removed in order to install." - end - unless specs["bundler"].any? - bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last - specs["bundler"] = bundler - end - - specs - end + @specs ||= add_bundler_to(resolve.materialize(requested_dependencies)) + rescue GemNotFound => e # Handle yanked gem + gem_name, gem_version = extract_gem_info(e) + locked_gem = @locked_specs[gem_name].last + raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote + raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \ + "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \ + "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \ + "removed in order to install." end def new_specs @@ -236,17 +225,11 @@ end def requested_specs - @requested_specs ||= begin - groups = requested_groups - groups.map!(&:to_sym) - specs_for(groups) - end + specs_for(requested_groups) end def requested_dependencies - groups = requested_groups - groups.map!(&:to_sym) - dependencies_for(groups) + dependencies_for(requested_groups) end def current_dependencies @@ -256,11 +239,13 @@ end def specs_for(groups) + groups = requested_groups if groups.empty? deps = dependencies_for(groups) - specs.for(expand_dependencies(deps)) + add_bundler_to(resolve.materialize(expand_dependencies(deps))) end def dependencies_for(groups) + groups.map!(&:to_sym) current_dependencies.reject do |d| (d.groups & groups).empty? end @@ -498,9 +483,6 @@ attr_reader :sources private :sources - attr_reader :locked_gem_sources - private :locked_gem_sources - def nothing_changed? !@source_changes && !@dependency_changes && !@new_platform && !@path_changes && !@local_changes && !@locked_specs_incomplete_for_platform end @@ -511,6 +493,15 @@ private + def add_bundler_to(specs) + unless specs["bundler"].any? + bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last + specs["bundler"] = bundler + end + + specs + end + def precompute_source_requirements_for_indirect_dependencies? sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source? end @@ -628,35 +619,11 @@ end end - def converge_rubygems_sources - return false unless multisource_allowed? - - return false if locked_gem_sources.empty? - - # Get the RubyGems remotes from the Gemfile - actual_remotes = sources.rubygems_remotes - return false if actual_remotes.empty? - - changes = false - - # If there is a RubyGems source in both - locked_gem_sources.each do |locked_gem_source| - # Merge the remotes from the Gemfile into the Gemfile.lock - changes |= locked_gem_source.replace_remotes(actual_remotes, Bundler.settings[:allow_deployment_source_credential_changes]) - end - - changes - end - def converge_sources - changes = false - - changes |= converge_rubygems_sources - # Replace the sources from the Gemfile with the sources from the Gemfile.lock, # if they exist in the Gemfile.lock and are `==`. If you can't find an equivalent # source in the Gemfile.lock, use the one from the Gemfile. - changes |= sources.replace_sources!(@locked_sources) + changes = sources.replace_sources!(@locked_sources) sources.all_sources.each do |source| # If the source is unlockable and the current command allows an unlock of @@ -741,8 +708,6 @@ end end - unlock_source_unlocks_spec = Bundler.feature_flag.unlock_source_unlocks_spec? - converged = [] @locked_specs.each do |s| # Replace the locked dependency's source with the equivalent source from the Gemfile @@ -754,11 +719,6 @@ next if s.source.nil? next if @unlock[:sources].include?(s.source.name) - # XXX This is a backwards-compatibility fix to preserve the ability to - # unlock a single gem by passing its name via `--source`. See issue #3759 - # TODO: delete in Bundler 2 - next if unlock_source_unlocks_spec && @unlock[:sources].include?(s.name) - # If the spec is from a path source and it doesn't exist anymore # then we unlock it. @@ -770,7 +730,7 @@ # if we won't need the source (according to the lockfile), # don't error if the path/git source isn't available next if @locked_specs. - for(requested_dependencies, [], false, true, false). + for(requested_dependencies, false, true, false). none? {|locked_spec| locked_spec.source == s.source } raise @@ -789,8 +749,8 @@ end resolve = SpecSet.new(converged) - @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), @unlock[:gems], true, true) - resolve = resolve.for(expand_dependencies(deps, true), @unlock[:gems], false, false, false) + @locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), true, true) + resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false, false).reject{|s| @unlock[:gems].include?(s.name) }) diff = nil # Now, we unlock any sources that do not have anymore gems pinned to it @@ -912,14 +872,13 @@ end def additional_base_requirements_for_resolve - return [] unless @locked_gems + return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources) dependencies_by_name = dependencies.inject({}) {|memo, dep| memo.update(dep.name => dep) } @locked_gems.specs.reduce({}) do |requirements, locked_spec| name = locked_spec.name dependency = dependencies_by_name[name] - next requirements unless dependency next requirements if @locked_gems.dependencies[name] != dependency - next requirements if dependency.source.is_a?(Source::Path) + next requirements if dependency && dependency.source.is_a?(Source::Path) dep = Gem::Dependency.new(name, ">= #{locked_spec.version}") requirements[name] = DepProxy.get_proxy(dep, locked_spec.platform) requirements diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/dsl.rb new/lib/bundler/dsl.rb --- old/lib/bundler/dsl.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/dsl.rb 2021-07-15 17:00:51.000000000 +0200 @@ -24,9 +24,6 @@ def initialize @source = nil @sources = SourceList.new - - @global_rubygems_sources = [] - @git_sources = {} @dependencies = [] @groups = [] @@ -48,7 +45,6 @@ @gemfiles << expanded_gemfile_path contents ||= Bundler.read_file(@gemfile.to_s) instance_eval(contents.dup.tap{|x| x.untaint if RUBY_VERSION < "2.7" }, gemfile.to_s, 1) - check_primary_source_safety rescue Exception => e # rubocop:disable Lint/RescueException message = "There was an error " \ "#{e.is_a?(GemfileEvalError) ? "evaluating" : "parsing"} " \ @@ -107,8 +103,8 @@ if current = @dependencies.find {|d| d.name == dep.name } deleted_dep = @dependencies.delete(current) if current.type == :development - if current.requirement != dep.requirement - unless deleted_dep + unless deleted_dep + if current.requirement != dep.requirement return if dep.type == :development update_prompt = "" @@ -126,17 +122,14 @@ raise GemfileError, "You cannot specify the same gem twice with different version requirements.\n" \ "You specified: #{current.name} (#{current.requirement}) and #{dep.name} (#{dep.requirement})" \ "#{update_prompt}" + else + Bundler.ui.warn "Your Gemfile lists the gem #{current.name} (#{current.requirement}) more than once.\n" \ + "You should probably keep only one of them.\n" \ + "Remove any duplicate entries and specify the gem only once.\n" \ + "While it's not a problem now, it could cause errors if you change the version of one of them later." end - else - Bundler.ui.warn "Your Gemfile lists the gem #{current.name} (#{current.requirement}) more than once.\n" \ - "You should probably keep only one of them.\n" \ - "Remove any duplicate entries and specify the gem only once.\n" \ - "While it's not a problem now, it could cause errors if you change the version of one of them later." - end - - if current.source != dep.source - unless deleted_dep + if current.source != dep.source return if dep.type == :development raise GemfileError, "You cannot specify the same gem twice coming from different sources.\n" \ "You specified that #{dep.name} (#{dep.requirement}) should come from " \ @@ -168,7 +161,7 @@ elsif block_given? with_source(@sources.add_rubygems_source("remotes" => source), &blk) else - @global_rubygems_sources << source + @sources.add_global_rubygems_remote(source) end end @@ -222,6 +215,7 @@ end def to_definition(lockfile, unlock) + check_primary_source_safety Definition.new(lockfile, @dependencies, @sources, unlock, @ruby_version, @optional_groups, @gemfiles) end @@ -453,12 +447,7 @@ end def check_rubygems_source_safety - @sources.global_rubygems_source = @global_rubygems_sources.shift - return if @global_rubygems_sources.empty? - - @global_rubygems_sources.each do |source| - @sources.add_rubygems_remote(source) - end + return unless @sources.aggregate_global_source? if Bundler.feature_flag.bundler_3_mode? msg = "This Gemfile contains multiple primary sources. " \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/feature_flag.rb new/lib/bundler/feature_flag.rb --- old/lib/bundler/feature_flag.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/feature_flag.rb 2021-07-15 17:00:51.000000000 +0200 @@ -38,7 +38,6 @@ settings_flag(:print_only_version_number) { bundler_3_mode? } settings_flag(:setup_makes_kernel_gem_public) { !bundler_3_mode? } settings_flag(:suppress_install_using_messages) { bundler_3_mode? } - settings_flag(:unlock_source_unlocks_spec) { !bundler_3_mode? } settings_flag(:update_requires_all_flag) { bundler_4_mode? } settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_3_mode? } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/fetcher/downloader.rb new/lib/bundler/fetcher/downloader.rb --- old/lib/bundler/fetcher/downloader.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/fetcher/downloader.rb 2021-07-15 17:00:51.000000000 +0200 @@ -68,8 +68,7 @@ raise CertificateFailureError.new(uri) rescue *HTTP_ERRORS => e Bundler.ui.trace e - case e.message - when /host down:/, /getaddrinfo: nodename nor servname provided/ + if e.is_a?(SocketError) || e.message =~ /host down:/ raise NetworkDownError, "Could not reach host #{uri.host}. Check your network " \ "connection and try again." else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/index.rb new/lib/bundler/index.rb --- old/lib/bundler/index.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/index.rb 2021-07-15 17:00:51.000000000 +0200 @@ -195,11 +195,7 @@ if base # allow all platforms when searching from a lockfile dependency.matches_spec?(spec) else - if Gem::Platform.respond_to? :match_spec? - dependency.matches_spec?(spec) && Gem::Platform.match_spec?(spec) - else - dependency.matches_spec?(spec) && Gem::Platform.match(spec.platform) - end + dependency.matches_spec?(spec) && Gem::Platform.match_spec?(spec) end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/installer/standalone.rb new/lib/bundler/installer/standalone.rb --- old/lib/bundler/installer/standalone.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/installer/standalone.rb 2021-07-15 17:00:51.000000000 +0200 @@ -3,7 +3,7 @@ module Bundler class Standalone def initialize(groups, definition) - @specs = groups.empty? ? definition.requested_specs : definition.specs_for(groups.map(&:to_sym)) + @specs = definition.specs_for(groups) end def generate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/installer.rb new/lib/bundler/installer.rb --- old/lib/bundler/installer.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/installer.rb 2021-07-15 17:00:51.000000000 +0200 @@ -135,7 +135,7 @@ next end - mode = Bundler::WINDOWS ? "wb:UTF-8" : "w" + mode = Gem.win_platform? ? "wb:UTF-8" : "w" require "erb" content = if RUBY_VERSION >= "2.6" ERB.new(template, :trim_mode => "-").result(binding) @@ -144,7 +144,7 @@ end File.write(binstub_path, content, :mode => mode, :perm => 0o777 & ~File.umask) - if Bundler::WINDOWS || options[:all_platforms] + if Gem.win_platform? || options[:all_platforms] prefix = "@ruby -x \"%~f0\" %*\n@exit /b %ERRORLEVEL%\n\n" File.write("#{binstub_path}.cmd", prefix + content, :mode => mode) end @@ -182,7 +182,7 @@ executable_path = Pathname(spec.full_gem_path).join(spec.bindir, executable).relative_path_from(bin_path) executable_path = executable_path - mode = Bundler::WINDOWS ? "wb:UTF-8" : "w" + mode = Gem.win_platform? ? "wb:UTF-8" : "w" require "erb" content = if RUBY_VERSION >= "2.6" ERB.new(template, :trim_mode => "-").result(binding) @@ -191,7 +191,7 @@ end File.write("#{bin_path}/#{executable}", content, :mode => mode, :perm => 0o755) - if Bundler::WINDOWS || options[:all_platforms] + if Gem.win_platform? || options[:all_platforms] prefix = "@ruby -x \"%~f0\" %*\n@exit /b %ERRORLEVEL%\n\n" File.write("#{bin_path}/#{executable}.cmd", prefix + content, :mode => mode) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/lockfile_parser.rb new/lib/bundler/lockfile_parser.rb --- old/lib/bundler/lockfile_parser.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/lockfile_parser.rb 2021-07-15 17:00:51.000000000 +0200 @@ -1,16 +1,5 @@ # frozen_string_literal: true -#-- -# Some versions of the Bundler 1.1 RC series introduced corrupted -# lockfiles. There were two major problems: -# -# * multiple copies of the same GIT section appeared in the lockfile -# * when this happened, those sections got multiple copies of gems -# in those sections. -# -# As a result, Bundler 1.1 contains code that fixes the earlier -# corruption. We will remove this fix-up code in Bundler 1.2. - module Bundler class LockfileParser attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version @@ -124,12 +113,7 @@ @sources << @current_source when GIT @current_source = TYPES[@type].from_lock(@opts) - # Strip out duplicate GIT sections - if @sources.include?(@current_source) - @current_source = @sources.find {|s| s == @current_source } - else - @sources << @current_source - end + @sources << @current_source when GEM @opts["remotes"] = Array(@opts.delete("remote")).reverse @current_source = TYPES[@type].from_lock(@opts) @@ -212,9 +196,7 @@ @current_spec = LazySpecification.new(name, version, platform) @current_spec.source = @current_source - # Avoid introducing multiple copies of the same spec (caused by - # duplicate GIT sections) - @specs[@current_spec.identifier] ||= @current_spec + @specs[@current_spec.identifier] = @current_spec elsif spaces.size == 6 version = version.split(",").map(&:strip) if version dep = Gem::Dependency.new(name, version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-add.1 new/lib/bundler/man/bundle-add.1 --- old/lib/bundler/man/bundle-add.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-add.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-ADD" "1" "May 2021" "" "" +.TH "BUNDLE\-ADD" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-binstubs.1 new/lib/bundler/man/bundle-binstubs.1 --- old/lib/bundler/man/bundle-binstubs.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-binstubs.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-BINSTUBS" "1" "May 2021" "" "" +.TH "BUNDLE\-BINSTUBS" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-cache.1 new/lib/bundler/man/bundle-cache.1 --- old/lib/bundler/man/bundle-cache.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-cache.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-CACHE" "1" "May 2021" "" "" +.TH "BUNDLE\-CACHE" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-check.1 new/lib/bundler/man/bundle-check.1 --- old/lib/bundler/man/bundle-check.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-check.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-CHECK" "1" "May 2021" "" "" +.TH "BUNDLE\-CHECK" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-clean.1 new/lib/bundler/man/bundle-clean.1 --- old/lib/bundler/man/bundle-clean.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-clean.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-CLEAN" "1" "May 2021" "" "" +.TH "BUNDLE\-CLEAN" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-config.1 new/lib/bundler/man/bundle-config.1 --- old/lib/bundler/man/bundle-config.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-config.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-CONFIG" "1" "May 2021" "" "" +.TH "BUNDLE\-CONFIG" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-config\fR \- Set bundler configuration options @@ -274,9 +274,6 @@ \fBtimeout\fR (\fBBUNDLE_TIMEOUT\fR): The seconds allowed before timing out for network requests\. Defaults to \fB10\fR\. . .IP "\(bu" 4 -\fBunlock_source_unlocks_spec\fR (\fBBUNDLE_UNLOCK_SOURCE_UNLOCKS_SPEC\fR): Whether running \fBbundle update \-\-source NAME\fR unlocks a gem with the given name\. Defaults to \fBtrue\fR\. -. -.IP "\(bu" 4 \fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR): Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\. . .IP "\(bu" 4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-config.1.ronn new/lib/bundler/man/bundle-config.1.ronn --- old/lib/bundler/man/bundle-config.1.ronn 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-config.1.ronn 2021-07-15 17:00:51.000000000 +0200 @@ -260,9 +260,6 @@ The location where RubyGems installs binstubs. Defaults to `Gem.bindir`. * `timeout` (`BUNDLE_TIMEOUT`): The seconds allowed before timing out for network requests. Defaults to `10`. -* `unlock_source_unlocks_spec` (`BUNDLE_UNLOCK_SOURCE_UNLOCKS_SPEC`): - Whether running `bundle update --source NAME` unlocks a gem with the given - name. Defaults to `true`. * `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`): Require passing `--all` to `bundle update` when everything should be updated, and disallow passing no options to `bundle update`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-doctor.1 new/lib/bundler/man/bundle-doctor.1 --- old/lib/bundler/man/bundle-doctor.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-doctor.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-DOCTOR" "1" "May 2021" "" "" +.TH "BUNDLE\-DOCTOR" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-doctor\fR \- Checks the bundle for common problems diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-exec.1 new/lib/bundler/man/bundle-exec.1 --- old/lib/bundler/man/bundle-exec.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-exec.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-EXEC" "1" "May 2021" "" "" +.TH "BUNDLE\-EXEC" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-exec\fR \- Execute a command in the context of the bundle diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-gem.1 new/lib/bundler/man/bundle-gem.1 --- old/lib/bundler/man/bundle-gem.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-gem.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-GEM" "1" "May 2021" "" "" +.TH "BUNDLE\-GEM" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-info.1 new/lib/bundler/man/bundle-info.1 --- old/lib/bundler/man/bundle-info.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-info.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-INFO" "1" "May 2021" "" "" +.TH "BUNDLE\-INFO" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-info\fR \- Show information for the given gem in your bundle diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-init.1 new/lib/bundler/man/bundle-init.1 --- old/lib/bundler/man/bundle-init.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-init.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-INIT" "1" "May 2021" "" "" +.TH "BUNDLE\-INIT" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-init\fR \- Generates a Gemfile into the current working directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-inject.1 new/lib/bundler/man/bundle-inject.1 --- old/lib/bundler/man/bundle-inject.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-inject.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-INJECT" "1" "May 2021" "" "" +.TH "BUNDLE\-INJECT" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-install.1 new/lib/bundler/man/bundle-install.1 --- old/lib/bundler/man/bundle-install.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-install.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-INSTALL" "1" "May 2021" "" "" +.TH "BUNDLE\-INSTALL" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-list.1 new/lib/bundler/man/bundle-list.1 --- old/lib/bundler/man/bundle-list.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-list.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-LIST" "1" "May 2021" "" "" +.TH "BUNDLE\-LIST" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-list\fR \- List all the gems in the bundle diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-lock.1 new/lib/bundler/man/bundle-lock.1 --- old/lib/bundler/man/bundle-lock.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-lock.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-LOCK" "1" "May 2021" "" "" +.TH "BUNDLE\-LOCK" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-open.1 new/lib/bundler/man/bundle-open.1 --- old/lib/bundler/man/bundle-open.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-open.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-OPEN" "1" "May 2021" "" "" +.TH "BUNDLE\-OPEN" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-outdated.1 new/lib/bundler/man/bundle-outdated.1 --- old/lib/bundler/man/bundle-outdated.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-outdated.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-OUTDATED" "1" "May 2021" "" "" +.TH "BUNDLE\-OUTDATED" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-outdated\fR \- List installed gems with newer versions available diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-platform.1 new/lib/bundler/man/bundle-platform.1 --- old/lib/bundler/man/bundle-platform.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-platform.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-PLATFORM" "1" "May 2021" "" "" +.TH "BUNDLE\-PLATFORM" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-platform\fR \- Displays platform compatibility information diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-pristine.1 new/lib/bundler/man/bundle-pristine.1 --- old/lib/bundler/man/bundle-pristine.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-pristine.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-PRISTINE" "1" "May 2021" "" "" +.TH "BUNDLE\-PRISTINE" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-remove.1 new/lib/bundler/man/bundle-remove.1 --- old/lib/bundler/man/bundle-remove.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-remove.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-REMOVE" "1" "May 2021" "" "" +.TH "BUNDLE\-REMOVE" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-remove\fR \- Removes gems from the Gemfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-show.1 new/lib/bundler/man/bundle-show.1 --- old/lib/bundler/man/bundle-show.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-show.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-SHOW" "1" "May 2021" "" "" +.TH "BUNDLE\-SHOW" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-update.1 new/lib/bundler/man/bundle-update.1 --- old/lib/bundler/man/bundle-update.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-update.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-UPDATE" "1" "May 2021" "" "" +.TH "BUNDLE\-UPDATE" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-update\fR \- Update your gems to the latest available versions @@ -79,7 +79,7 @@ . .TP \fB\-\-conservative\fR -Use bundle install conservative update behavior and do not allow shared dependencies to be updated\. +Use bundle install conservative update behavior and do not allow indirect dependencies to be updated\. . .SH "UPDATING ALL GEMS" If you run \fBbundle update \-\-all\fR, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources\. @@ -208,13 +208,13 @@ In short, by default, when you update a gem using \fBbundle update\fR, bundler will update all dependencies of that gem, including those that are also dependencies of another gem\. . .P -To prevent updating shared dependencies, prior to version 1\.14 the only option was the \fBCONSERVATIVE UPDATING\fR behavior in bundle install(1) \fIbundle\-install\.1\.html\fR: +To prevent updating indirect dependencies, prior to version 1\.14 the only option was the \fBCONSERVATIVE UPDATING\fR behavior in bundle install(1) \fIbundle\-install\.1\.html\fR: . .P In this scenario, updating the \fBthin\fR version manually in the Gemfile(5), and then running bundle install(1) \fIbundle\-install\.1\.html\fR will only update \fBdaemons\fR and \fBeventmachine\fR, but not \fBrack\fR\. For more information, see the \fBCONSERVATIVE UPDATING\fR section of bundle install(1) \fIbundle\-install\.1\.html\fR\. . .P -Starting with 1\.14, specifying the \fB\-\-conservative\fR option will also prevent shared dependencies from being updated\. +Starting with 1\.14, specifying the \fB\-\-conservative\fR option will also prevent indirect dependencies from being updated\. . .SH "PATCH LEVEL OPTIONS" Version 1\.14 introduced 4 patch\-level options that will influence how gem versions are resolved\. One of the following options can be used: \fB\-\-patch\fR, \fB\-\-minor\fR or \fB\-\-major\fR\. \fB\-\-strict\fR can be added to further influence resolution\. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-update.1.ronn new/lib/bundler/man/bundle-update.1.ronn --- old/lib/bundler/man/bundle-update.1.ronn 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-update.1.ronn 2021-07-15 17:00:51.000000000 +0200 @@ -80,7 +80,7 @@ Do not allow any gem to be updated past latest `--patch` | `--minor` | `--major`. * `--conservative`: - Use bundle install conservative update behavior and do not allow shared dependencies to be updated. + Use bundle install conservative update behavior and do not allow indirect dependencies to be updated. ## UPDATING ALL GEMS @@ -195,7 +195,7 @@ update all dependencies of that gem, including those that are also dependencies of another gem. -To prevent updating shared dependencies, prior to version 1.14 the only option +To prevent updating indirect dependencies, prior to version 1.14 the only option was the `CONSERVATIVE UPDATING` behavior in [bundle install(1)](bundle-install.1.html): In this scenario, updating the `thin` version manually in the Gemfile(5), @@ -203,7 +203,7 @@ but not `rack`. For more information, see the `CONSERVATIVE UPDATING` section of [bundle install(1)](bundle-install.1.html). -Starting with 1.14, specifying the `--conservative` option will also prevent shared +Starting with 1.14, specifying the `--conservative` option will also prevent indirect dependencies from being updated. ## PATCH LEVEL OPTIONS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle-viz.1 new/lib/bundler/man/bundle-viz.1 --- old/lib/bundler/man/bundle-viz.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle-viz.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-VIZ" "1" "May 2021" "" "" +.TH "BUNDLE\-VIZ" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/bundle.1 new/lib/bundler/man/bundle.1 --- old/lib/bundler/man/bundle.1 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/bundle.1 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE" "1" "May 2021" "" "" +.TH "BUNDLE" "1" "June 2021" "" "" . .SH "NAME" \fBbundle\fR \- Ruby Dependency Management diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/man/gemfile.5 new/lib/bundler/man/gemfile.5 --- old/lib/bundler/man/gemfile.5 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/man/gemfile.5 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "GEMFILE" "5" "May 2021" "" "" +.TH "GEMFILE" "5" "June 2021" "" "" . .SH "NAME" \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/plugin/index.rb new/lib/bundler/plugin/index.rb --- old/lib/bundler/plugin/index.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/plugin/index.rb 2021-07-15 17:00:51.000000000 +0200 @@ -74,7 +74,10 @@ def unregister_plugin(name) @commands.delete_if {|_, v| v == name } @sources.delete_if {|_, v| v == name } - @hooks.each {|_, plugin_names| plugin_names.delete(name) } + @hooks.each do |hook, names| + names.delete(name) + @hooks.delete(hook) if names.empty? + end @plugin_paths.delete(name) @load_paths.delete(name) save_index diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/plugin/installer.rb new/lib/bundler/plugin/installer.rb --- old/lib/bundler/plugin/installer.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/plugin/installer.rb 2021-07-15 17:00:51.000000000 +0200 @@ -77,7 +77,7 @@ source_list = SourceList.new source_list.add_git_source(git_source_options) if git_source_options - source_list.global_rubygems_source = rubygems_source if rubygems_source + Array(rubygems_source).each {|remote| source_list.add_global_rubygems_remote(remote) } if rubygems_source deps = names.map {|name| Dependency.new name, version } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/plugin.rb new/lib/bundler/plugin.rb --- old/lib/bundler/plugin.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/plugin.rb 2021-07-15 17:00:51.000000000 +0200 @@ -309,6 +309,8 @@ # # @param [String] name of the plugin def load_plugin(name) + return unless name && !name.empty? + # Need to ensure before this that plugin root where the rest of gems # are installed to be on load path to support plugin deps. Currently not # done to avoid conflicts diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/resolver.rb new/lib/bundler/resolver.rb --- old/lib/bundler/resolver.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/resolver.rb 2021-07-15 17:00:51.000000000 +0200 @@ -21,7 +21,7 @@ base = SpecSet.new(base) unless base.is_a?(SpecSet) resolver = new(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms) result = resolver.start(requirements) - SpecSet.new(result).for(requirements.reject{|dep| dep.name.end_with?("\0") }) + SpecSet.new(SpecSet.new(result).for(requirements.reject{|dep| dep.name.end_with?("\0") })) end def initialize(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/rubygems_ext.rb new/lib/bundler/rubygems_ext.rb --- old/lib/bundler/rubygems_ext.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/rubygems_ext.rb 2021-07-15 17:00:51.000000000 +0200 @@ -174,20 +174,36 @@ end end + require "rubygems/platform" + class Platform JAVA = Gem::Platform.new("java") unless defined?(JAVA) MSWIN = Gem::Platform.new("mswin32") unless defined?(MSWIN) MSWIN64 = Gem::Platform.new("mswin64") unless defined?(MSWIN64) MINGW = Gem::Platform.new("x86-mingw32") unless defined?(MINGW) X64_MINGW = Gem::Platform.new("x64-mingw32") unless defined?(X64_MINGW) + end - undef_method :hash if method_defined? :hash - def hash - @cpu.hash ^ @os.hash ^ @version.hash - end + Platform.singleton_class.module_eval do + unless Platform.singleton_methods.include?(:match_spec?) + def match_spec?(spec) + match_gem?(spec.platform, spec.name) + end - undef_method :eql? if method_defined? :eql? - alias_method :eql?, :== + def match_gem?(platform, gem_name) + match_platforms?(platform, Gem.platforms) + end + + private + + def match_platforms?(platform, platforms) + platforms.any? do |local_platform| + platform.nil? || + local_platform == platform || + (local_platform != Gem::Platform::RUBY && local_platform =~ platform) + end + end + end end require "rubygems/util" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/runtime.rb new/lib/bundler/runtime.rb --- old/lib/bundler/runtime.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/runtime.rb 2021-07-15 17:00:51.000000000 +0200 @@ -12,12 +12,10 @@ def setup(*groups) @definition.ensure_equivalent_gemfile_and_lockfile if Bundler.frozen_bundle? - groups.map!(&:to_sym) - # Has to happen first clean_load_path - specs = groups.any? ? @definition.specs_for(groups) : requested_specs + specs = @definition.specs_for(groups) SharedHelpers.set_bundle_environment Bundler.rubygems.replace_entrypoints(specs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/settings.rb new/lib/bundler/settings.rb --- old/lib/bundler/settings.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/settings.rb 2021-07-15 17:00:51.000000000 +0200 @@ -44,7 +44,6 @@ silence_deprecations silence_root_warning suppress_install_using_messages - unlock_source_unlocks_spec update_requires_all_flag use_gem_version_promoter_for_major_updates ].freeze @@ -429,12 +428,8 @@ def global_config_file if ENV["BUNDLE_CONFIG"] && !ENV["BUNDLE_CONFIG"].empty? Pathname.new(ENV["BUNDLE_CONFIG"]) - else - begin - Bundler.user_bundle_path("config") - rescue PermissionError, GenericSystemCallError - nil - end + elsif Bundler.rubygems.user_home && !Bundler.rubygems.user_home.empty? + Pathname.new(Bundler.rubygems.user_home).join(".bundle/config") end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/source/rubygems.rb new/lib/bundler/source/rubygems.rb --- old/lib/bundler/source/rubygems.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/source/rubygems.rb 2021-07-15 17:00:51.000000000 +0200 @@ -73,7 +73,7 @@ def can_lock?(spec) return super unless multiple_remotes? - spec.source.is_a?(Rubygems) + include?(spec.source) end def options @@ -252,19 +252,6 @@ other_remotes.map(&method(:remove_auth)) == @remotes.map(&method(:remove_auth)) end - def replace_remotes(other_remotes, allow_equivalent = false) - return false if other_remotes == @remotes - - equivalent = allow_equivalent && equivalent_remotes?(other_remotes) - - @remotes = [] - other_remotes.reverse_each do |r| - add_remote r.to_s - end - - !equivalent - end - def spec_names if @allow_remote && dependency_api_available? remote_specs.spec_names diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/source_list.rb new/lib/bundler/source_list.rb --- old/lib/bundler/source_list.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/source_list.rb 2021-07-15 17:00:51.000000000 +0200 @@ -28,8 +28,9 @@ @merged_gem_lockfile_sections end - def merged_gem_lockfile_sections! + def merged_gem_lockfile_sections!(replacement_source) @merged_gem_lockfile_sections = true + @global_rubygems_source = replacement_source end def aggregate_global_source? @@ -53,18 +54,17 @@ end def add_rubygems_source(options = {}) - add_source_to_list Source::Rubygems.new(options), @rubygems_sources + new_source = Source::Rubygems.new(options) + return @global_rubygems_source if @global_rubygems_source == new_source + + add_source_to_list new_source, @rubygems_sources end def add_plugin_source(source, options = {}) add_source_to_list Plugin.source(source).new(options), @plugin_sources end - def global_rubygems_source=(uri) - @global_rubygems_source ||= rubygems_aggregate_class.new("remotes" => uri, "allow_local" => true) - end - - def add_rubygems_remote(uri) + def add_global_rubygems_remote(uri) global_rubygems_source.add_remote(uri) global_rubygems_source end @@ -109,27 +109,26 @@ if merged_gem_lockfile_sections? [combine_rubygems_sources] else - rubygems_sources.sort_by(&:to_s).uniq + rubygems_sources.sort_by(&:to_s) end end # Returns true if there are changes def replace_sources!(replacement_sources) - return true if replacement_sources.empty? + return false if replacement_sources.empty? - [path_sources, git_sources, plugin_sources].each do |source_list| - source_list.map! do |source| - replacement_sources.find {|s| s == source } || source - end - end + @path_sources, @git_sources, @plugin_sources = map_sources(replacement_sources) + + different_sources?(lock_sources, replacement_sources) + end - replacement_rubygems = merged_gem_lockfile_sections? && - replacement_sources.detect {|s| s.is_a?(Source::Rubygems) } - @global_rubygems_source = replacement_rubygems if replacement_rubygems + # Returns true if there are changes + def expired_sources?(replacement_sources) + return false if replacement_sources.empty? - return true if !equal_sources?(lock_sources, replacement_sources) && !equivalent_sources?(lock_sources, replacement_sources) + lock_sources = dup_with_replaced_sources(replacement_sources).lock_sources - false + different_sources?(lock_sources, replacement_sources) end def local_only! @@ -146,6 +145,24 @@ private + def dup_with_replaced_sources(replacement_sources) + new_source_list = dup + new_source_list.replace_sources!(replacement_sources) + new_source_list + end + + def map_sources(replacement_sources) + [path_sources, git_sources, plugin_sources].map do |sources| + sources.map do |source| + replacement_sources.find {|s| s == source } || source + end + end + end + + def different_sources?(lock_sources, replacement_sources) + !equal_sources?(lock_sources, replacement_sources) && !equivalent_sources?(lock_sources, replacement_sources) + end + def rubygems_aggregate_class Source::Rubygems end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/spec_set.rb new/lib/bundler/spec_set.rb --- old/lib/bundler/spec_set.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/spec_set.rb 2021-07-15 17:00:51.000000000 +0200 @@ -11,15 +11,14 @@ @specs = specs end - def for(dependencies, skip = [], check = false, match_current_platform = false, raise_on_missing = true) + def for(dependencies, check = false, match_current_platform = false, raise_on_missing = true) handled = [] deps = dependencies.dup specs = [] - skip += ["bundler"] loop do break unless dep = deps.shift - next if handled.include?(dep) || skip.include?(dep.name) + next if handled.any?{|d| d.name == dep.name && (match_current_platform || d.__platform == dep.__platform) } || dep.name == "bundler" handled << dep @@ -46,11 +45,7 @@ specs << spec end - check ? true : SpecSet.new(specs) - end - - def valid_for?(deps) - self.for(deps, [], true) + check ? true : specs end def [](key) @@ -77,7 +72,7 @@ end def materialize(deps, missing_specs = nil) - materialized = self.for(deps, [], false, true, !missing_specs).to_a + materialized = self.for(deps, false, true, !missing_specs) materialized.group_by(&:source).each do |source, specs| next unless specs.any?{|s| s.is_a?(LazySpecification) } @@ -199,7 +194,7 @@ def spec_for_dependency(dep, match_current_platform) specs_for_platforms = lookup[dep.name] if match_current_platform - GemHelpers.select_best_platform_match(specs_for_platforms, Bundler.local_platform) + GemHelpers.select_best_platform_match(specs_for_platforms.select{|s| Gem::Platform.match_spec?(s) }, Bundler.local_platform) else GemHelpers.select_best_platform_match(specs_for_platforms, dep.__platform) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler/version.rb new/lib/bundler/version.rb --- old/lib/bundler/version.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler/version.rb 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ # frozen_string_literal: false module Bundler - VERSION = "2.2.21".freeze + VERSION = "2.2.24".freeze def self.bundler_major_version @bundler_major_version ||= VERSION.split(".").first.to_i diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bundler.rb new/lib/bundler.rb --- old/lib/bundler.rb 2021-06-23 15:25:56.000000000 +0200 +++ new/lib/bundler.rb 2021-07-15 17:00:51.000000000 +0200 @@ -236,8 +236,9 @@ end if warning - user_home = tmp_home_path(warning) - Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n" + Bundler.ui.warn "#{warning}\n" + user_home = tmp_home_path + Bundler.ui.warn "Bundler will use `#{user_home}' as your home directory temporarily.\n" user_home else Pathname.new(home) @@ -684,15 +685,13 @@ Bundler.rubygems.clear_paths end - def tmp_home_path(warning) + def tmp_home_path Kernel.send(:require, "tmpdir") SharedHelpers.filesystem_access(Dir.tmpdir) do path = Bundler.tmp at_exit { Bundler.rm_rf(path) } path end - rescue RuntimeError => e - raise e.exception("#{warning}\nBundler also failed to create a temporary home directory':\n#{e}") end # @param env [Hash] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2021-06-23 15:25:56.000000000 +0200 +++ new/metadata 2021-07-15 17:00:51.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: bundler version: !ruby/object:Gem::Version - version: 2.2.21 + version: 2.2.24 platform: ruby authors: - Andr?? Arko @@ -22,7 +22,7 @@ autorequire: bindir: exe cert_chain: [] -date: 2021-06-23 00:00:00.000000000 Z +date: 2021-07-15 00:00:00.000000000 Z dependencies: [] description: Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably @@ -354,7 +354,7 @@ - !ruby/object:Gem::Version version: 2.5.2 requirements: [] -rubygems_version: 3.2.21 +rubygems_version: 3.2.24 signing_key: specification_version: 4 summary: The best way to manage your application's dependencies