Fixed es_release_notes.pl script to work with the new github labels
It also now ignores docs, test, non-issue, refactoring, and build
@@ -28,24 +28,23 @@ my $User_Repo = 'elastic/elasticsearch/';
my $Issue_URL = "http://github.com/${User_Repo}issues/";
my @Groups = (
- "breaking", "breaking-java", "deprecation", "feature",
- "enhancement", "bug", "regression", "upgrade", "non-issue", "build",
- "docs", "test"
+ ">breaking", ">breaking-java", ">deprecation", ">feature",
+ ">enhancement", ">bug", ">regression", ">upgrade"
);
+my %Ignore = map { $_ => 1 } (
+ ">non-issue", ">refactoring", ">docs", ">test", ":Core/Build"
+);
+
my %Group_Labels = (
- breaking => 'Breaking changes',
- 'breaking-java' => 'Breaking Java changes',
- build => 'Build',
- deprecation => 'Deprecations',
- docs => 'Docs',
- feature => 'New features',
- enhancement => 'Enhancements',
- bug => 'Bug fixes',
- regression => 'Regressions',
- test => 'Tests',
- upgrade => 'Upgrades',
- "non-issue" => 'Non-issue',
- other => 'NOT CLASSIFIED',
+ '>breaking' => 'Breaking changes',
+ '>breaking-java' => 'Breaking Java changes',
+ '>deprecation' => 'Deprecations',
+ '>feature' => 'New features',
+ '>enhancement' => 'Enhancements',
+ '>bug' => 'Bug fixes',
+ '>regression' => 'Regressions',
+ '>upgrade' => 'Upgrades',
+ 'other' => 'NOT CLASSIFIED',
);
use JSON();
@@ -86,7 +85,9 @@ ASCIIDOC
for my $group ( @Groups, 'other' ) {
my $group_issues = $issues->{$group} or next;
- print "[[$group-$version]]\n"
+ my $group_id = $group;
+ $group_id=~s/^>//;
+ print "[[$group_id-$version]]\n"
. "[float]\n"
. "=== $Group_Labels{$group}\n\n";
@@ -161,10 +162,14 @@ ISSUE:
for my $issue (@issues) {
next if $seen{ $issue->{number} } && !$issue->{pull_request};
+ for (@{ $issue->{labels} }) {
+ next ISSUE if $Ignore{$_->{name}};
+ }
+
# uncomment for including/excluding PRs already issued in other versions
# next if grep {$_->{name}=~/^v2/} @{$issue->{labels}};
my %labels = map { $_->{name} => 1 } @{ $issue->{labels} };
- my ($header) = map { substr( $_, 1 ) } grep {/^:/} sort keys %labels;
+ my ($header) = map { /:.+\/(.+)/ && $1 } grep {/^:/} sort keys %labels;
$header ||= 'NOT CLASSIFIED';
for (@Groups) {
if ( $labels{$_} ) {
