summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-17 02:36:09 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-17 02:41:17 +0900
commit693a561cfa19dc35ff0d199a1934c9927dd388d5 (patch)
treea81e58b34f95325eac119b4fd0e8dfe575a246e6 /.github
parentb746b713e5573a3a161dca1d11652f7b35265ead (diff)
[DOC] Exclude non-updated stdlibs since the previous release
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/check_misc.yml43
1 files changed, 36 insertions, 7 deletions
diff --git a/.github/workflows/check_misc.yml b/.github/workflows/check_misc.yml
index f4d89ea6a8..0161cb1135 100644
--- a/.github/workflows/check_misc.yml
+++ b/.github/workflows/check_misc.yml
@@ -22,19 +22,48 @@ jobs:
git grep -l -F -e $header -e HAVE_`echo $header | tr a-z./ A-Z__` -- . > /dev/null || echo $header
done | grep -F .
working-directory: include
- - name: Maintain updated default gem list
+
+ - name: Download default gems list
run: |
- news = File.read("NEWS.md")
+ curl -O https://stdgems.org/default_gems.json
+
+ - name: Make default gems list
+ run: |
+ require 'rubygems'
$:.unshift "lib"
- gems = Dir.glob("{ext,lib}/**/*.gemspec").map {|f|
+ rgver = File.foreach("lib/rubygems.rb") do |line|
+ break $1 if /^\s*VERSION\s*=\s*"([^"]+)"/ =~ line
+ end
+ gems = Dir.glob("{ext,lib}/**/*.gemspec").map do |f|
spec = Gem::Specification.load(f)
- [spec.name, spec.version]
- }.sort
- news.sub!(/^\*\s+The following default gem are updated\.\K(\n\s+\*\s+)((?i:RubyGems))(?:\1.*)*/) do
- ["", $2, gems.map {|*spec| spec.join(" ")}].join($1)
+ "#{spec.name} #{spec.version}"
+ end.sort
+ File.open("stdlibs", "w") do |f|
+ f.puts "RubyGems #{rgver}"
+ f.puts gems
+ end
+ shell: ruby --disable=gems {0}
+
+ - name: Maintain updated default gems list in NEWS
+ run: |
+ require 'json'
+ news = File.read("NEWS.md")
+ prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1]
+ prevs = [prev, prev.sub(/\.\d+\z/, '')]
+ last = JSON.parse(File.read("default_gems.json"))['gems'].filter_map do |g|
+ v = g['versions'].values_at(*prevs).compact.first
+ g = g['gem']
+ g == 'RubyGems' if g == 'rubygems'
+ "#{g} #{v}" if v
+ end
+ new = File.readlines('stdlibs', chomp: true).grep_v(/^#/)
+ gems = new - last
+ news.sub!(/^\*\s+The following default gems? are updated\.\K(\n\s+\*\s+).*(?:\1.*)*/) do
+ ["", gems].join($1)
end or exit
File.write("NEWS.md", news)
shell: ruby {0}
+
- name: Check diffs
id: diff
run: |