diff --git a/docs/development/releasing.md b/docs/development/releasing.md index a5969b3abc93a..8adf7fcfad8fe 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -25,15 +25,17 @@ Once release branch is pushed, it's last commit will be picked up by our CI/CD: - `./utils/print_versions.js` 1. Fill "Highlights" if any. - Be creative. +1. Make sure you fetched tags from the upstream to get latest releases. + - `git fetch --tags upstream` 1. Fill "New APIs" if any. - `git diff $(git describe --tags $(git rev-list --tags --max-count=1)):docs/api.md docs/api.md` 1. Fill "Breaking API Changes" if any. - `git diff $(git describe --tags $(git rev-list --tags --max-count=1)):docs/api.md docs/api.md` 1. Fill "Bug fixes". - - `git log $(git describe --tags $(git rev-list --tags --max-count=1))..HEAD` - - Manually look for `#1234` references in commit messages. + - `./utils/list_closed_issues.sh $(git describe --tags $(git rev-list --tags --max-count=1))` 1. Fill "Raw notes". - - `git fetch --tags upstream` + - `git log --pretty="%h - %s" $(git describe --tags $(git rev-list --tags --max-count=1))..HEAD` + 1. When making links to the API, copy actual links from [GitHub](https://github.com/microsoft/playwright/blob/master/docs/api.md), and not from `api.md` source - these might be incorrect. - Before publishing, replace `blob/master/docs` with `blob/vX.Y.Z/docs` in all the links. 1. Use "Save Draft", not "Publish". diff --git a/utils/list_closed_issues.sh b/utils/list_closed_issues.sh new file mode 100755 index 0000000000000..592bd7f600aa1 --- /dev/null +++ b/utils/list_closed_issues.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -e +set +x + +if [[ ($1 == '--help') || ($1 == '-h') ]]; then + echo "usage: $(basename $0) " + echo + echo "List Playwright closed issues since the given commit was landed" + echo + echo "Example: $(basename $0) HEAD~100" + exit 0 +fi + +if [[ $# == 0 ]]; then + echo "missing git SHA" + echo "try './$(basename $0) --help' for more information" + exit 1 +fi + +COMMIT_DATE_WEIRD_ISO=$(git show -s --format=%cd --date=iso $1) +COMMIT_DATE=$(node -e "console.log(new Date('${COMMIT_DATE_WEIRD_ISO}').toISOString())") + +curl -s "https://api.github.com/repos/microsoft/playwright/issues?state=closed&since=${COMMIT_DATE}&direction=asc&per_page=100" | \ + node -e "console.log(JSON.parse(require('fs').readFileSync(0, 'utf8')).filter(issue => !issue.pull_request && new Date(issue.closed_at) > new Date('${COMMIT_DATE}')).map(issue => '#' + issue.number + ' - ' + issue.title).join('\n'))" +