57 lines
1.2 KiB
Ruby
57 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Used constants:
|
|
# _none_
|
|
|
|
require_relative 'check_changelog'
|
|
|
|
namespace :changelog do
|
|
desc 'Add the empty CHANGELOG entries after a new release'
|
|
task :reset do
|
|
changelog = File.read('CHANGELOG.md')
|
|
abort('A Master entry already exists') if changelog =~ /^##\s*Master$/
|
|
changelog.sub!(/^##[^#]/, "#{header}\\0")
|
|
File.write('CHANGELOG.md', changelog)
|
|
end
|
|
|
|
def header
|
|
<<-HEADER.gsub(/^\s*\|/, '')
|
|
|## Master
|
|
|
|
|
|### Breaking
|
|
|
|
|
|_None_
|
|
|
|
|
|### Enhancements
|
|
|
|
|
|_None_
|
|
|
|
|
|### Deprecations
|
|
|
|
|
|_None_
|
|
|
|
|
|### Bug Fixes
|
|
|
|
|
|_None_
|
|
|
|
|
|### Internal Changes
|
|
|
|
|
|_None_
|
|
|
|
|
HEADER
|
|
end
|
|
|
|
desc 'Check if links to issues and PRs use matching numbers between text & link'
|
|
task :check do
|
|
warnings = check_changelog
|
|
if warnings.empty?
|
|
puts "\u{2705} All entries seems OK (end with period + 2 spaces, correct links)"
|
|
else
|
|
puts "\u{274C} Some warnings were found:\n" + Array(warnings.map do |warning|
|
|
" - Line #{warning[:line]}: #{warning[:message]}"
|
|
end).join("\n")
|
|
exit 1
|
|
end
|
|
end
|
|
end
|