summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2022-12-19 14:47:37 +0900
committerYusuke Endoh <mame@ruby-lang.org>2022-12-19 14:48:18 +0900
commit2605ff79aa84a635d135c5892339483e337bbd03 (patch)
treecd8f312f90d6c68f92d8e812e29dfd4238eaa31f /tool
parent65ce6795feacd19d44b230f5d729ecb891fcb349 (diff)
tool/update-NEWS-refs.rb: Accept non-redmine url links
Diffstat (limited to 'tool')
-rw-r--r--tool/update-NEWS-refs.rb22
1 files changed, 16 insertions, 6 deletions
diff --git a/tool/update-NEWS-refs.rb b/tool/update-NEWS-refs.rb
index dbd262d2e3..b492e9e7d6 100644
--- a/tool/update-NEWS-refs.rb
+++ b/tool/update-NEWS-refs.rb
@@ -4,18 +4,28 @@ orig_src = File.read(File.join(__dir__, "../NEWS.md"))
lines = orig_src.lines(chomp: true)
links = {}
-while lines.last =~ %r{\A\[(?:Feature|Bug) #(\d+)\]:\s+https://bugs\.ruby-lang\.org/issues/\1(?:#.*)?\z}
+while lines.last =~ %r{\A\[(.*?)\]:\s+(?:.*)\z}
links[$1] = lines.pop
end
if links.empty? || lines.last != ""
- raise "NEWS.md must end with a sequence of links to bugs.ruby-lang.org like \"[Feature #XXXXX]: https://bugs.ruby-lang.org/issues/XXXXX\""
+ raise "NEWS.md must end with a sequence of links"
end
-new_src = lines.join("\n").gsub(/\[?\[(Feature|Bug)\s+#(\d+)\]\]?/) do
- links[$2] ||= "[#$1 ##$2]: ".ljust(18) + "https://bugs.ruby-lang.org/issues/#$2"
- "[[#$1 ##$2]]"
-end.chomp + "\n\n" + links.keys.sort.map {|k| links[k] }.join("\n") + "\n"
+new_src = lines.join("\n").gsub(/\[?\[((?:Feature|Bug)\s+#(\d+))\]\]?/) do
+ links[$1] ||= "[#$1]: ".ljust(18) + "https://bugs.ruby-lang.org/issues/#$2"
+ "[[#$1]]"
+end.chomp + "\n\n"
+
+redmine_links, non_redmine_links = links.partition {|k,| k =~ /\A(Feature|Bug)\s+#\d+\z/ }
+
+redmine_links.sort_by {|k,| k[/\d+/].to_i }.each do |_k, v|
+ new_src << v << "\n"
+end
+
+non_redmine_links.reverse_each do |_k, v|
+ new_src << v << "\n"
+end
if orig_src != new_src
print "Update NEWS.md? [y/N]"