From 281df1e495eeb8533b963c63a14c614fcab97859 Mon Sep 17 00:00:00 2001 From: David Rodriguez Date: Mon, 5 Feb 2024 20:19:40 +0100 Subject: [rubygems/rubygems] Remove `Gem::Specification#mark_version` This gets in the middle if we ever start allowing to build as if using a different RubyGems version than the one being run. This could be useful to make `gem rebuild` a little more usable, and it's already done by Bundler specs which already make this method a noop when they need this. I'm not sure forcefully setting this, even if user explicitly specified something else is helpful. Since this could potentially prevent gems explicitly setting a constant RubyGems version from building, I changed the error of incorrect RubyGems version from a hard error to a warning, since it will start happening in those cases if we stop overwriting the version. https://github.com/rubygems/rubygems/commit/45676af80d --- lib/rubygems/package.rb | 1 - lib/rubygems/specification.rb | 12 +----------- lib/rubygems/specification_policy.rb | 4 +++- 3 files changed, 4 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 9b2829c894..c855423ed7 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -294,7 +294,6 @@ class Gem::Package Gem.load_yaml - @spec.mark_version @spec.validate true, strict_validation unless skip_validation setup_signer( diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index 29139cf725..a1eaf1248e 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -194,7 +194,7 @@ class Gem::Specification < Gem::BasicSpecification NOT_FOUND = Struct.new(:to_spec, :this).new # :nodoc: # Tracking removed method calls to warn users during build time. - REMOVED_METHODS = [:rubyforge_project=].freeze # :nodoc: + REMOVED_METHODS = [:rubyforge_project=, :mark_version].freeze # :nodoc: def removed_method_calls @removed_method_calls ||= [] end @@ -1874,8 +1874,6 @@ class Gem::Specification < Gem::BasicSpecification end def encode_with(coder) # :nodoc: - mark_version - coder.add "name", @name coder.add "version", @version platform = case @original_platform @@ -2170,13 +2168,6 @@ class Gem::Specification < Gem::BasicSpecification @spec_file = nil end - ## - # Sets the rubygems_version to the current RubyGems version. - - def mark_version - @rubygems_version = Gem::VERSION - end - ## # Track removed method calls to warn about during build time. # Warn about unknown attributes while loading a spec. @@ -2494,7 +2485,6 @@ class Gem::Specification < Gem::BasicSpecification # still have their default values are omitted. def to_ruby - mark_version result = [] result << "# -*- encoding: utf-8 -*-" result << "#{Gem::StubSpecification::PREFIX}#{name} #{version} #{platform} #{raw_require_paths.join("\0")}" diff --git a/lib/rubygems/specification_policy.rb b/lib/rubygems/specification_policy.rb index 516c26f53c..812b0f889e 100644 --- a/lib/rubygems/specification_policy.rb +++ b/lib/rubygems/specification_policy.rb @@ -274,7 +274,9 @@ duplicate dependency on #{dep}, (#{prev.requirement}) use: return if rubygems_version == Gem::VERSION - error "expected RubyGems version #{Gem::VERSION}, was #{rubygems_version}" + warning "expected RubyGems version #{Gem::VERSION}, was #{rubygems_version}" + + @specification.rubygems_version = Gem::VERSION end def validate_required_attributes -- cgit v1.2.3