From abc55963a96db14a5a93391448957867dba86640 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Thu, 24 May 2018 14:49:35 +0200 Subject: [PATCH] Edit changelog automaticaly --- RELEASE | 10 ++++++++++ scripts/generate-changelog.pl | 34 +++++++++++++++++++++++++++------- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/RELEASE b/RELEASE index 630961892..00a813a49 100644 --- a/RELEASE +++ b/RELEASE @@ -32,6 +32,16 @@ Before release - Translate documentation $ make fr-doc + With recent versions of OmegaT, launch "make fr-translation" and choose + "generate project files" + +- Update changelog: + + $ ./scripts/generate-changelog.pl + + This update "changelog" file using GitLab issues (tags Bug, New feature, + Improvement) + - Update debian/changelog launch just `dch -r` and force save (":w" and ot ":x") diff --git a/scripts/generate-changelog.pl b/scripts/generate-changelog.pl index 08b972499..d3fc9f533 100755 --- a/scripts/generate-changelog.pl +++ b/scripts/generate-changelog.pl @@ -1,29 +1,49 @@ #!/usr/bin/perl # # To use it, just insert your OW2 token in ~/.ow2-token +# +# This script downloads issues from gitlab.ow2.org and insert issues title in +# "changelog" file in a new version entry, grouped using tags: Bug, +# New feature, Improvement. use LWP::UserAgent; use JSON; my $milestone = '2.0.0'; -my @cat = ( 'Bug', 'Improvement', 'New feature' ); +my @cat = ( 'Bug', 'New feature', 'Improvement' ); open F, "$ENV{HOME}/.ow2-token" or die "Unable to get OW2 token ($!)"; -my $token = join '',; +my $token = join '', ; close F; $token =~ s/\s//sg or die "No token"; my $ua = LWP::UserAgent->new(); +my $result = ''; + for (@cat) { - #s/ /%20/g; my $res = $ua->get( "https://gitlab.ow2.org/api/v4/projects/181/issues?labels=$_&milestone=$milestone&state=all&scope=all&per_page=100&private_token=$token" ); - print " * $_:\n"; + $result .= " * $_:\n"; $res = JSON::from_json( $res->content ); - while( my $i = pop @$res) { - print " * #$i->{iid}: $i->{title}\n"; + while ( my $i = pop @$res ) { + $result .= " * #$i->{iid}: $i->{title}\n"; } - print "\n"; + $result .= "\n"; } + +$result =~ s/'/'"'"'/g; + +`dch -c changelog -v $milestone '##CONTENT##';dch -c changelog -r --force-save-on-release '';cp changelog tmp.dch`; +open IN, 'tmp.dch'; +open OUT, '>changelog'; + +$result =~ s/\n\n$//s; +while() { + chomp; + s/.*##CONTENT##$/$result/; + print OUT "$_\n"; +} + +unlink 'tmp.dch';