Add simple stats for releases

This commit is contained in:
Andreas Dangel 2020-04-18 10:28:37 +02:00
parent 4db656a679
commit 815c87bd17
2 changed files with 51 additions and 6 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
# Make sure, everything is English... # Make sure, everything is English...
@ -15,7 +15,7 @@ if [ ! -f pom.xml -o ! -d ../pmd.github.io ]; then
exit 1 exit 1
fi fi
LAST_VERSION=
RELEASE_VERSION= RELEASE_VERSION=
DEVELOPMENT_VERSION= DEVELOPMENT_VERSION=
CURRENT_BRANCH= CURRENT_BRANCH=
@ -33,11 +33,16 @@ PATCH=$(echo $RELEASE_VERSION | cut -d . -f 3)
if [ "$PATCH" == "0" ]; then if [ "$PATCH" == "0" ]; then
NEXT_MINOR=$(expr ${MINOR} + 1) NEXT_MINOR=$(expr ${MINOR} + 1)
NEXT_PATCH="0" NEXT_PATCH="0"
LAST_MINOR=$(expr ${MINOR} - 1)
LAST_PATCH="0"
else else
# this is a bugfixing release # this is a bugfixing release
NEXT_MINOR="${MINOR}" NEXT_MINOR="${MINOR}"
NEXT_PATCH=$(expr ${PATCH} + 1) NEXT_PATCH=$(expr ${PATCH} + 1)
LAST_MINOR="${MINOR}"
LAST_PATCH=$(expr ${PATCH} - 1)
fi fi
LAST_VERSION="$MAJOR.$LAST_MINOR.$LAST_PATCH"
DEVELOPMENT_VERSION="$MAJOR.$NEXT_MINOR.$NEXT_PATCH" DEVELOPMENT_VERSION="$MAJOR.$NEXT_MINOR.$NEXT_PATCH"
DEVELOPMENT_VERSION="${DEVELOPMENT_VERSION}-SNAPSHOT" DEVELOPMENT_VERSION="${DEVELOPMENT_VERSION}-SNAPSHOT"
@ -52,17 +57,18 @@ CURRENT_BRANCH=$(git symbolic-ref -q HEAD)
CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/} CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD} CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
echo "RELEASE_VERSION: ${RELEASE_VERSION}" echo "LAST_VERSION: ${LAST_VERSION}"
echo "DEVELOPMENT_VERSION: ${DEVELOPMENT_VERSION}" echo "RELEASE_VERSION: ${RELEASE_VERSION} (this release)"
echo "DEVELOPMENT_VERSION: ${DEVELOPMENT_VERSION} (the next version after the release)"
echo "CURRENT_BRANCH: ${CURRENT_BRANCH}" echo "CURRENT_BRANCH: ${CURRENT_BRANCH}"
echo echo
echo "Is this correct?" echo "Is this correct?"
echo echo
echo "Press enter to continue..." echo "Press enter to continue... (or CTRL+C to cancel)"
read read
export LAST_VERSION
export RELEASE_VERSION export RELEASE_VERSION
export DEVELOPMENT_VERSION export DEVELOPMENT_VERSION
export CURRENT_BRANCH export CURRENT_BRANCH
@ -89,6 +95,26 @@ echo
echo "Press enter to continue..." echo "Press enter to continue..."
read read
# calculating stats for release notes
STATS=$(
echo "### Stats"
echo "* $(git log pmd_releases/${LAST_VERSION}..HEAD --oneline --no-merges |wc -l) commits"
echo "* $(curl -s https://api.github.com/repos/pmd/pmd/milestones|jq ".[] | select(.title == \"$RELEASE_VERSION\") | .closed_issues") closed tickets & PRs"
echo "* Days since last release: $(( ( $(date +%s) - $(git log --max-count=1 --format="%at" pmd_releases/${LAST_VERSION}) ) / 86400))"
)
TEMP_RELEASE_NOTES=$(cat docs/pages/release_notes.md)
TEMP_RELEASE_NOTES=${TEMP_RELEASE_NOTES/\{\% endtocmaker \%\}/$STATS$'\n'$'\n'\{\% endtocmaker \%\}$'\n'}
echo "${TEMP_RELEASE_NOTES}" > docs/pages/release_notes.md
echo
echo "Updated stats in release notes:"
echo "$STATS"
echo
echo
# install bundles needed for rendering release notes # install bundles needed for rendering release notes
bundle install --with=release_notes_preprocessing --path vendor/bundle bundle install --with=release_notes_preprocessing --path vendor/bundle

View File

@ -53,6 +53,25 @@ The designer lives at [pmd/pmd-designer](https://github.com/pmd/pmd-designer).
Update property `pmd-designer.version` in **pom.xml** to reference the latest pmd-designer release. Update property `pmd-designer.version` in **pom.xml** to reference the latest pmd-designer release.
See <https://search.maven.org/search?q=g:net.sourceforge.pmd%20AND%20a:pmd-ui&core=gav> for the available releases. See <https://search.maven.org/search?q=g:net.sourceforge.pmd%20AND%20a:pmd-ui&core=gav> for the available releases.
Starting with PMD 6.23.0 we'll provide small statistics for every release. This needs to be added
to the release notes as the last section. To count the closed issues and pull requests, the milestone
on github with the title of the new release is searched. Make sure, there is a milestone
on <https://github.com/pmd/pmd/milestones>. The following snippet will
create the numbers, that can be attached to the release notes as a last section:
```shell
LAST_VERSION=6.22.0
NEW_VERSION=6.23.0
NEW_VERSION_COMMITISH=HEAD
echo "### Stats"
echo "* $(git log pmd_releases/${LAST_VERSION}..${NEW_VERSION_COMMITISH} --oneline --no-merges |wc -l) commits"
echo "* $(curl -s https://api.github.com/repos/pmd/pmd/milestones|jq ".[] | select(.title == \"$NEW_VERSION\") | .closed_issues") closed tickets & PRs"
echo "* Days since last release: $(( ( $(date +%s) - $(git log --max-count=1 --format="%at" pmd_releases/${LAST_VERSION}) ) / 86400))"
```
Note: this part is also integrated into `do-release.sh`.
Check in all (version) changes to branch master or any other branch, from which the release takes place: Check in all (version) changes to branch master or any other branch, from which the release takes place:
$ git commit -a -m "Prepare pmd release <version>" $ git commit -a -m "Prepare pmd release <version>"