Files
pandoc/RELEASE-CHECKLIST-TEMPLATE.org
2025-04-09 11:22:43 -07:00

3.9 KiB

pandoc RELEASE_VERSION release checklist

TODO Check priority-high tag

TODO Release any prerelease packages in ./cabal.project

TODO ./pandoc.cabal - bump version number

TODO ./pandoc-cli/pandoc-cli.cabal - bump version, sync pandoc version

git log $(git describe --tags --abbrev=0)..HEAD --oneline pandoc-cli

TODO ./pandoc-lua-engine/pandoc-lua-engine.cabal - bump version?

git log $(git describe --tags --abbrev=0)..HEAD --oneline pandoc-lua-engine

TODO ./pandoc-server/pandoc-server.cabal - bump version?

git log $(git describe --tags --abbrev=0)..HEAD --oneline pandoc-server

TODO Update ./MANUAL.txt date and rebuild man pages

NEWDATE=$(date -I)
sed -i '' -e "/^---$/,/^---$/s/^date:.*$/date: $NEWDATE/" MANUAL.txt
make man

TODO Finalize ./changelog.md

git log $(git describe --tags --abbrev=0)..HEAD --mailmap --reverse --format=format:'  * %s%n    %aN%n%w(78,4,4)%b' | sed -e '/^ *John MacFarlane$/d' | sed -e 's/  *$//'

TODO prerelease checks

make prerelease

TODO Update ./AUTHORS.md

make authors

TODO Run release candidate workflow on GitHub

curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $ghtoken"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/jgm/pandoc/actions/workflows/release-candidate.yml/dispatches \
-d '{"ref":"main"}'

TODO Run release candidate workflows manually on cirrus-ci.com

TODO If it builds successfully, download artifacts from GitHub, cirrus-ci.com

(Windows and intel mac from GitHub, linux amd64 and arm64 and m1 mac from cirrus)

TODO Use 'make' in macos and windows artifacts to sign code

TODO Update website

make update-website

TODO Tag release in git:

  • use X.Y for pandoc
  • pandoc-cli-X.Y
  • if needed: pandoc-server-X.Y
  • if needed: pandoc-lua-engine-X.Y

TODO Upload packages to Hackage:

echo pandoc
echo pandoc-cli
for package in pandoc-lua-engine pandoc-server; do
    lines=$(git log $(git describe --tags --abbrev=0)..HEAD --oneline $package | wc -l)
    if ! [ $lines -eq 0 ]; then
        echo $package;
    fi
done
  • pandoc
  • pandoc-cli

and if changed:

  • pandoc-server
  • pandoc-lua-engine

TODO make pandoc-templates

make pandoc-templates
pushd ~/src/pandoc-templates
git tag RELEASE_VERSION
git push
git push --tags
popd

TODO Copy deb to server, install it

TODO create release announcement and add to GH release announcement

"I'm pleased to announce the release of pandoc RELEASE_VERSION,
available in the usual places:

Binary packages & changelog:
https://github.com/jgm/pandoc/releases/tag/RELEASE_VERSION

Source & API documentation:
http://hackage.haskell.org/package/pandoc-RELEASE_VERSION

Description of release.

Any API changes.

Thanks to all who contributed, especially new contributors ...
"

TODO Add release on GitHub

echo '```'
cat $announcement
echo '```'
echo ''
make changes_github

TODO Announce on pandoc-announce