# HG changeset patch # User Anton Shestakov # Date 1605159455 -28800 # Node ID 479f76c47295be405a0153aeb1db70e13563164f # Parent ccde78088d0ba070ce619c79b21f27869e0e364d tests: add a new test-check-tag.t to test releases diff -r ccde78088d0b -r 479f76c47295 tests/test-check-tag.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-check-tag.t Thu Nov 12 13:37:35 2020 +0800 @@ -0,0 +1,41 @@ +#require test-repo + +Enable obsolescence to avoid the warning issue when obsmarkers are found + + $ cat << EOF >> $HGRCPATH + > [experimental] + > evolution = all + > EOF + + $ cd "$TESTDIR"/.. + +Checking all non-public tagged revisions up to the current commit, see our +release checklist for more ideas + + $ for node in `hg log --rev 'tag() and ::. and not public() and not desc("# no-check-commit")' --template '{node|short}\n'`; do + > tags=`hg log --rev $node --template '{tags}\n'` + > if echo "$tags" | grep -q ' '; then + > echo "Revision $node is tagged multiple times: $tags" + > fi + > branch=`hg log --rev $node --template '{branch}\n'` + > if [ "$branch" != "stable" ]; then + > echo "Revision $node is not on stable branch: $branch" + > fi + > # Here we skip: + > # - pullbundle because it usually has no changes (so no version bump) + > # - serverminitopic because it's not actively maintained + > if hg grep --rev $node '^__version__ = .*\.dev' hgext3rd/evolve/ hgext3rd/topic/; then + > echo "Versions should not end with .dev at tagged revision $node" + > fi + > entry=`hg cat --rev $node CHANGELOG | fgrep "$tags"` + > if [ -z "$entry" ]; then + > echo "Revision $node has no CHANGELOG entry for $tags" + > fi + > if echo "$entry" | egrep -vq ' -- [0-9]{4}-[0-9]{2}-[0-9]{2}'; then + > echo "CHANGELOG entry for $tags should have a date in YYYY-MM-DD format: $entry" + > fi + > entry=`hg cat --rev $node debian/changelog | fgrep "$tags"` + > if [ -z "$entry" ]; then + > echo "Revision $node has no debian/changelog entry for $tags" + > fi + > done