Skip to content

Commit 0f3dd1a

Browse files
Fix changelog generation edge case
When previous version has two patch level digits, we were not sorting versions properly.
1 parent b841c56 commit 0f3dd1a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

util/release.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,26 @@ def create_for_github!
4747
end
4848

4949
def previous_version
50-
@previous_version ||= latest_release.tag_name.gsub(/^#{@tag_prefix}/, "")
50+
@previous_version ||= remove_tag_prefix(latest_release.tag_name)
5151
end
5252

5353
def latest_release
54-
@latest_release ||= gh_client.releases("rubygems/rubygems").select {|release| release.tag_name.start_with?(@tag_prefix) }.max_by(&:tag_name)
54+
@latest_release ||= gh_client.releases("rubygems/rubygems").select {|release| release.tag_name.start_with?(@tag_prefix) }.max_by do |release|
55+
Gem::Version.new(remove_tag_prefix(release.tag_name))
56+
end
5557
end
5658

5759
attr_reader :relevant_pull_requests
5860

5961
def set_relevant_pull_requests_from(pulls)
6062
@relevant_pull_requests = pulls.select {|pull| @changelog.relevant_label_for(pull) }
6163
end
64+
65+
private
66+
67+
def remove_tag_prefix(name)
68+
name.gsub(/^#{@tag_prefix}/, "")
69+
end
6270
end
6371

6472
class Bundler

0 commit comments

Comments
 (0)