From bd85e88d3190556fc59ad9665b8e6f6715331696 Mon Sep 17 00:00:00 2001 From: Kazuhiro NISHIYAMA Date: Wed, 9 Oct 2024 12:55:28 +0900 Subject: [PATCH] Support `The following bundled gems are added.` --- .github/workflows/bundled_gems.yml | 7 ++++--- tool/update-NEWS-gemlist.rb | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/bundled_gems.yml b/.github/workflows/bundled_gems.yml index 7d452ea876..da2c7028c2 100644 --- a/.github/workflows/bundled_gems.yml +++ b/.github/workflows/bundled_gems.yml @@ -46,10 +46,11 @@ jobs: - name: Download previous gems list run: | - data=bundled_gems.json mkdir -p .downloaded-cache - ln -s .downloaded-cache/$data . - curl -O -R -z ./$data https://stdgems.org/$data + for data in bundled_gems.json default_gems.json; do + ln -s .downloaded-cache/$data . + curl -O -R -z ./$data https://stdgems.org/$data + done - name: Update bundled gems list id: bundled_gems diff --git a/tool/update-NEWS-gemlist.rb b/tool/update-NEWS-gemlist.rb index 8e4d39046b..e1535eb400 100755 --- a/tool/update-NEWS-gemlist.rb +++ b/tool/update-NEWS-gemlist.rb @@ -15,13 +15,18 @@ update = ->(list, type, desc = "updated") do item[$1 || "* "] end end -ARGV.each do |type| - last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g| + +load_gems_json = ->(type) do + JSON.parse(File.read("#{type}_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.to_h +end + +ARGV.each do |type| + last = load_gems_json[type] changed = File.foreach("gems/#{type}_gems").filter_map do |l| next if l.start_with?("#") g, v = l.split(" ", 3) @@ -32,7 +37,13 @@ ARGV.each do |type| update[changed, type] or next if added and !added.empty? if type == 'bundled' - update[added, type, 'promoted from default gems'] or next + default_gems = load_gems_json['default'] + promoted = {} + added.delete_if do |k, v| + default_gems.key?(k) && promoted[k] = v + end + update[added, type, 'added'] + update[promoted, type, 'promoted from default gems'] or next else update[added, type, 'added'] or next end