From 2605ff79aa84a635d135c5892339483e337bbd03 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Mon, 19 Dec 2022 14:47:37 +0900 Subject: [PATCH] tool/update-NEWS-refs.rb: Accept non-redmine url links --- tool/update-NEWS-refs.rb | 22 ++++++++++++++++------ 1 file 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]"