Skip to content

Commit f36d4b0

Browse files
committed
[build] convert release notes script into a task
creates md file in the build/dist directory where the GitHub release artifacts are stored
1 parent 4a6ec57 commit f36d4b0

File tree

2 files changed

+51
-41
lines changed

2 files changed

+51
-41
lines changed

Rakefile

Lines changed: 51 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -948,6 +948,7 @@ namespace :all do
948948
Rake::Task['rb:release'].invoke(args)
949949
Rake::Task['dotnet:release'].invoke(args)
950950
Rake::Task['node:release'].invoke(args)
951+
Rake::Task['create_release_notes'].invoke(args)
951952
end
952953

953954
desc 'File updates for versions and metadata'
@@ -982,6 +983,39 @@ at_exit do
982983
system 'sh', '.git-fixfiles' if File.exist?('.git') && !SeleniumRake::Checks.windows?
983984
end
984985

986+
desc 'Create Release Notes for Minor Release'
987+
task :create_release_notes do
988+
range = "#{previous_tag(java_version)}...HEAD"
989+
format = "* [\\`%h\\`](http://github.com/seleniumhq/selenium/commit/%H) - %s :: %an"
990+
git_log_command = %Q(git --no-pager log "#{range}" --pretty=format:"#{format}"--reverse)
991+
git_log_output = `#{git_log_command}`
992+
993+
release_notes = <<~RELEASE_NOTES
994+
### Changelog
995+
996+
For each component's detailed changelog, please check:
997+
* [Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
998+
* [Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
999+
* [JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
1000+
* [Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
1001+
* [DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
1002+
* [IEDriverServer](https://github.com/SeleniumHQ/selenium/blob/trunk/cpp/iedriverserver/CHANGELOG)
1003+
1004+
### Commits in this release
1005+
<details>
1006+
<summary>Click to see all the commits included in this release</summary>
1007+
1008+
#{git_log_output}
1009+
1010+
</details>
1011+
RELEASE_NOTES
1012+
1013+
FileUtils.mkdir_p('build/dist')
1014+
release_notes_file = "build/dist/release_notes_#{java_version}.md"
1015+
File.write(release_notes_file, release_notes)
1016+
puts "Release notes have been generated at: #{release_notes_file}"
1017+
end
1018+
9851019
def updated_version(current, desired = nil)
9861020
version = desired ? desired.split('.') : current.split(/\.|-/)
9871021
if desired
@@ -1078,21 +1112,23 @@ def previous_version(version)
10781112
end
10791113
end
10801114

1081-
def previous_tag(current_version, language)
1082-
version = current_version.split(/\.|-/)
1083-
if version.size > 3
1084-
puts "Changelogs not updated when set to prerelease"
1085-
elsif version[2].to_i > 1
1086-
patch_version = (version[2].to_i - 1).to_s
1087-
"selenium-#{[[version[0]], version[1], patch_version].join('.')}-#{language}"
1088-
elsif version[2] == "1"
1089-
"selenium-#{[[version[0]], version[1], "0"].join('.')}"
1090-
else
1091-
minor_version = (version[1].to_i - 1)
1092-
tags = @git.tags.map(&:name)
1093-
tags.select { |tag| tag.match?(/selenium-4\.#{minor_version}.*-#{language}/) }.last ||
1094-
"selenium-#{[[version[0]], minor_version, "0"].join('.')}"
1095-
end
1115+
def previous_tag(current_version, language=nil)
1116+
version = current_version.split(/\.|-/)
1117+
if version.size > 3
1118+
puts "WARNING - Changelogs not updated when set to prerelease"
1119+
elsif version[2].to_i > 1
1120+
# specified as patch release
1121+
patch_version = (version[2].to_i - 1).to_s
1122+
"selenium-#{[[version[0]], version[1], patch_version].join('.')}-#{language}"
1123+
elsif version[2] == "1"
1124+
# specified as patch release; special case
1125+
"selenium-#{[[version[0]], version[1], "0"].join('.')}"
1126+
else
1127+
minor_version = (version[1].to_i - 1)
1128+
tags = @git.tags.map(&:name)
1129+
tag = tags.select { |tag| tag.match?(/selenium-4\.#{minor_version}.*-#{language}/) }.last if language
1130+
tag || "selenium-#{[[version[0]], minor_version, "0"].join('.')}"
1131+
end
10961132
end
10971133

10981134
def update_changelog(version, language, path, changelog, header)

scripts/create-release-notes.sh

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)