[前][次][番号順一覧][スレッド一覧]

ruby-changes:61495

From: David <ko1@a...>
Date: Fri, 5 Jun 2020 07:33:24 +0900 (JST)
Subject: [ruby-changes:61495] 592762069d (master): [rubygems/rubygems] Support running specs against a tarball

https://git.ruby-lang.org/ruby.git/commit/?id=592762069d

From 592762069d025148463266187d6519c4799353dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@r...>
Date: Mon, 25 May 2020 20:32:23 +0200
Subject: [rubygems/rubygems] Support running specs against a tarball

When bundler specs are run from a ruby tarball (ruby-core does this),
there's no git folder, so `git ls-files` fails.

Support this case by making specs rely on the list of files from the
bundler gemspec instead, and invert the spec that makes sure we ship the
right set of files.

As per the other quality specs, skip them in this case.

https://github.com/rubygems/rubygems/commit/b28d5ec931

diff --git a/spec/bundler/quality_spec.rb b/spec/bundler/quality_spec.rb
index 31b7126..a266c20 100644
--- a/spec/bundler/quality_spec.rb
+++ b/spec/bundler/quality_spec.rb
@@ -216,7 +216,7 @@ RSpec.describe "The library itself" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/quality_spec.rb#L216
   end
 
   it "ships the correct set of files" do
-    git_list = shipped_files
+    git_list = git_ls_files(ruby_core? ? "lib/bundler lib/bundler.rb man/bundle* man/gemfile* libexec/bundle*" : "lib man exe CHANGELOG.md LICENSE.md README.md bundler.gemspec")
 
     gem_list = loaded_gemspec.files
 
diff --git a/spec/bundler/support/helpers.rb b/spec/bundler/support/helpers.rb
index 731a2d9..e487a86 100644
--- a/spec/bundler/support/helpers.rb
+++ b/spec/bundler/support/helpers.rb
@@ -331,7 +331,7 @@ module Spec https://github.com/ruby/ruby/blob/trunk/spec/bundler/support/helpers.rb#L331
 
         build_metadata = {
           :built_at => loaded_gemspec.date.utc.strftime("%Y-%m-%d"),
-          :git_commit_sha => sys_exec("git rev-parse --short HEAD", :dir => source_root).strip,
+          :git_commit_sha => git_commit_sha,
         }
 
         replace_build_metadata(build_metadata, dir: build_path) # rubocop:disable Style/HashSyntax
diff --git a/spec/bundler/support/path.rb b/spec/bundler/support/path.rb
index 187ccef..f56fdfc 100644
--- a/spec/bundler/support/path.rb
+++ b/spec/bundler/support/path.rb
@@ -68,7 +68,7 @@ module Spec https://github.com/ruby/ruby/blob/trunk/spec/bundler/support/path.rb#L68
     end
 
     def shipped_files
-      @shipped_files ||= git_ls_files(shipped_files_glob)
+      @shipped_files ||= loaded_gemspec.files
     end
 
     def lib_tracked_files
@@ -231,20 +231,22 @@ module Spec https://github.com/ruby/ruby/blob/trunk/spec/bundler/support/path.rb#L231
       end
     end
 
+    def git_commit_sha
+      ruby_core_tarball? ? "unknown" : sys_exec("git rev-parse --short HEAD", :dir => source_root).strip
+    end
+
   private
 
     def git_ls_files(glob)
-      sys_exec("git ls-files -z -- #{glob}", :dir => source_root).split("\x0")
+      skip "Not running on a git context, since running tests from a tarball" if ruby_core_tarball?
+
+      sys_exec!("git ls-files -z -- #{glob}", :dir => source_root).split("\x0")
     end
 
     def tracked_files_glob
       ruby_core? ? "lib/bundler lib/bundler.rb spec/bundler man/bundle*" : ""
     end
 
-    def shipped_files_glob
-      ruby_core? ? "lib/bundler lib/bundler.rb man/bundle* man/gemfile* libexec/bundle*" : "lib man exe CHANGELOG.md LICENSE.md README.md bundler.gemspec"
-    end
-
     def lib_tracked_files_glob
       ruby_core? ? "lib/bundler lib/bundler.rb" : "lib"
     end
@@ -253,6 +255,14 @@ module Spec https://github.com/ruby/ruby/blob/trunk/spec/bundler/support/path.rb#L255
       ruby_core? ? "man/bundle* man/gemfile*" : "man"
     end
 
+    def git_root
+      ruby_core? ? source_root : source_root.parent
+    end
+
+    def ruby_core_tarball?
+      !git_root.join(".git").directory?
+    end
+
     extend self
   end
 end
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]