;tools: just changelogs-reset, changelogs-finalise, reltag, mastertag, relnotes
This commit is contained in:
parent
6bbd3c8de2
commit
07d6fc4d3e
76
Justfile
76
Justfile
@ -804,6 +804,26 @@ quickprof CMD: #hledgerprof #samplejournals
|
|||||||
# ** Documenting ------------------------------------------------------------
|
# ** Documenting ------------------------------------------------------------
|
||||||
DOCUMENTING:
|
DOCUMENTING:
|
||||||
|
|
||||||
|
# Add latest commit messages to the changelogs. (Runs ./Shake changelogs [OPTS])
|
||||||
|
changelogs *OPTS:
|
||||||
|
./Shake changelogs {{ OPTS }}
|
||||||
|
|
||||||
|
# Drop any uncommitted changes to the project and package changelogs.
|
||||||
|
changelogs-reset:
|
||||||
|
git checkout CHANGES.md */CHANGES.md
|
||||||
|
|
||||||
|
# Finalise changelogs for a full release today. Run on release branch.
|
||||||
|
changelogs-finalise:
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
just _on-release-branch
|
||||||
|
for p in $PACKAGES; do \
|
||||||
|
sed -i "0,/^# /s/^# .*$/# `gdate -I` `cat $p/.version`/" $p/CHANGES.md; \
|
||||||
|
done
|
||||||
|
sed -i "0,/^# /s/^# .*$/# `gdate -I` `cat .version`/" CHANGES.md
|
||||||
|
git commit -m ";doc: finalise changelogs for `cat .version`" CHANGES.md */CHANGES.md
|
||||||
|
echo "Changelogs are finalised for release!"
|
||||||
|
|
||||||
# see also Shake.hs
|
# see also Shake.hs
|
||||||
# http://www.haskell.org/haddock/doc/html/invoking.html
|
# http://www.haskell.org/haddock/doc/html/invoking.html
|
||||||
|
|
||||||
@ -1382,19 +1402,57 @@ sccv:
|
|||||||
make -C hledger/shell-completion/
|
make -C hledger/shell-completion/
|
||||||
echo "now please commit any changes in hledger/shell-completion/"
|
echo "now please commit any changes in hledger/shell-completion/"
|
||||||
|
|
||||||
# Make git release tags for the hledger packages and project, assuming a complete single-version release.
|
# Check that we're on a release branch. (Hopefully the latest.)
|
||||||
@reltag:
|
_on-release-branch:
|
||||||
for p in $PACKAGES; do just reltagpkg $p; done
|
#!/usr/bin/env bash
|
||||||
git tag -fs `cat .version` -m "Release `cat .version`, https://hledger.org/relnotes.html#hledger-`cat .version | sed -e 's/\./-/g'`"
|
set -euo pipefail
|
||||||
|
BRANCH=$(git branch --show-current)
|
||||||
|
if [[ ! $BRANCH =~ ^[0-9.]*-branch ]]; then
|
||||||
|
echo "You are currently on $BRANCH branch. Please switch to the latest release branch."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Make a git release tag for the given hledger package.
|
# Check that we're on the master branch.
|
||||||
@reltagpkg PKG:
|
_on-master-branch:
|
||||||
git tag -fs $PKG-`cat $PKG/.version` -m "Release $PKG-`cat $PKG/.version`"
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
BRANCH=$(git branch --show-current)
|
||||||
|
if [[ ! $BRANCH =~ master ]]; then
|
||||||
|
echo "You are currently on $BRANCH branch. Please switch to the master branch."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make draft release notes from changelogs. Run on release branch.
|
||||||
|
@relnotes:
|
||||||
|
just _on-release-branch
|
||||||
|
tools/relnotes.hs
|
||||||
|
|
||||||
|
# Make git tags for a full release today. Run on release branch.
|
||||||
|
reltag:
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
just _on-release-branch
|
||||||
|
for p in $PACKAGES; do \
|
||||||
|
git tag -fs $p-`cat $p/.version` -m "Release $p-`cat $p/.version`"; \
|
||||||
|
done
|
||||||
|
git tag --force --annotate --sign `cat .version` -m "Release `cat .version`"
|
||||||
|
echo "Release has been tagged!"
|
||||||
|
git tag -l --sort=-committerdate --format='%(committerdate:iso8601) %(refname:short)' | head -5
|
||||||
|
|
||||||
|
# After a major release, update the dev tag/version strings/manual dates on master. Run on master.
|
||||||
|
mastertag VER:
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
just _on-master-branch
|
||||||
|
./Shake setversion {{ VER }} -c
|
||||||
|
./Shake mandates
|
||||||
|
./Shake manuals -c
|
||||||
|
git tag {{ VER }}
|
||||||
|
echo "master's tag, version strings and manuals have been updated."
|
||||||
|
|
||||||
# After a major release, also tag master to indicate start of release cycle and influence git describe and dev builds' --version output.
|
|
||||||
# XXX Run this only after .version has been updated to NEWVER
|
# XXX Run this only after .version has been updated to NEWVER
|
||||||
# @reltagmaster:
|
# @reltagmaster:
|
||||||
# git tag -fs `cat .version`.99 master -m "start of next release cycle"
|
# git tag -fs `cat .version`.99 master -m "start of next release cycle"
|
||||||
|
|
||||||
# Upload all packages to hackage (run from release branch).
|
# Upload all packages to hackage (run from release branch).
|
||||||
@hackageupload:
|
@hackageupload:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user