diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2020-06-22 12:41:13 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2020-07-15 16:05:12 +0900 |
commit | 4f9c673cabcf9ae1d7ac2aa9d4a632f41ae76e38 (patch) | |
tree | 588251298a0fe39ff5c3e3ebec13a5755e8e80c3 | |
parent | ca133c03669d495d297579e1f14bc904db591e1d (diff) | |
download | ruby-4f9c673cabcf9ae1d7ac2aa9d4a632f41ae76e38.tar.gz |
[rubygems/rubygems] Allow setting a tag prefix to be used by gem release tasks
https://github.com/rubygems/rubygems/commit/679008f23a
-rw-r--r-- | lib/bundler/gem_helper.rb | 9 | ||||
-rw-r--r-- | spec/bundler/bundler/gem_helper_spec.rb | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb index eab894638e..272e7ecb69 100644 --- a/lib/bundler/gem_helper.rb +++ b/lib/bundler/gem_helper.rb @@ -15,6 +15,10 @@ module Bundler new(opts[:dir], opts[:name]).install end + def tag_prefix=(prefix) + instance.tag_prefix = prefix + end + def gemspec(&block) gemspec = instance.gemspec block.call(gemspec) if block @@ -24,12 +28,15 @@ module Bundler attr_reader :spec_path, :base, :gemspec + attr_writer :tag_prefix + def initialize(base = nil, name = nil) @base = File.expand_path(base || SharedHelpers.pwd) gemspecs = name ? [File.join(@base, "#{name}.gemspec")] : Dir[File.join(@base, "{,*}.gemspec")] raise "Unable to determine name from existing gemspec. Use :name => 'gemname' in #install_tasks to manually set it." unless gemspecs.size == 1 @spec_path = gemspecs.first @gemspec = Bundler.load_gemspec(@spec_path) + @tag_prefix = "" end def install @@ -168,7 +175,7 @@ module Bundler end def version_tag - "v#{version}" + "#{@tag_prefix}v#{version}" end def name diff --git a/spec/bundler/bundler/gem_helper_spec.rb b/spec/bundler/bundler/gem_helper_spec.rb index 6cb4c33f5a..b91a2c26cc 100644 --- a/spec/bundler/bundler/gem_helper_spec.rb +++ b/spec/bundler/bundler/gem_helper_spec.rb @@ -258,6 +258,23 @@ RSpec.describe Bundler::GemHelper do end end + context "on releasing with a custom tag prefix" do + before do + Bundler::GemHelper.tag_prefix = "foo-" + mock_build_message app_name, app_version + mock_confirm_message "Pushed git commits and tags." + + sys_exec("git push -u origin master", :dir => app_path) + expect(subject).to receive(:rubygem_push).with(app_gem_path.to_s) + end + + it "prepends the custom prefix to the tag" do + mock_confirm_message "Tagged foo-v#{app_version}." + + Rake.application["release"].invoke + end + end + it "even if tag already exists" do mock_build_message app_name, app_version mock_confirm_message "Tag v#{app_version} has already been created." |