Files
pandoc/RELEASE-CHECKLIST-TEMPLATE.org
2026-08-11 14:56:22 -07:00

4.5 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 Update flake.lock.

make flake.lock

TODO prerelease checks

make prerelease

TODO Update ./AUTHORS.md

make authors

TODO Run release candidate workflow on GitHub

windows, macos x86

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 app.circleci.com

linux arm64, linux amd64, macos arm64, wasm

brew install circleci-public/circleci/circleci@next
circleci auth login
circleci run trigger

TODO If it builds successfully, download artifacts

from GitHub: Windows and intel mac from circleci.com: linux amd64 and arm64 and arm64 mac and pandoc.wasm (rename as pandoc-VERSION.wasm)

TODO Use 'make' in macos artifact to sign code

TODO Install pandoc from package

So website will have the correct executable.

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 binary to server, install it

# example:
cd RELEASE_VERSION
tar xvzf pandoc-RELEASE_VERSION-linux-amd64.tar.gz
scp pandoc-RELEASE_VERSION/bin/pandoc website:cgi-bin/pandoc-server.cgi

TODO Upload pandoc.wasm

make pandoc.wasm
cd wasm
make upload

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 relann-RELEASE_VERSION
echo '```'
echo ''
make changes_github

TODO Announce on pandoc-announce