#!/bin/sh # Nico Schottelius # Ensure documentation builds cleanly echo "Verifying documentation building works ..." ## ./build clean && ./build man || exit 1 # get version from changelog and ensure it's not already present changelog_version=$(grep '^[[:digit:]]' docs/changelog | head -n1 | sed 's/:.*//') if git show --quiet $changelog_version >/dev/null 2>&1; then echo "Version $changelog_version already exists, aborting." exit 1 fi echo "Target version from changelog: $changelog_version" # verify date in changelog date_today="$(date +%Y-%m-%d)" date_changelog=$(grep '^[[:digit:]]' docs/changelog | head -n1 | sed 's/.*: //') if [ "$date_today" != "$date_changelog" ]; then echo "Date in changelog is not today" echo "Changelog: $date_changelog" exit 1 fi echo "Press enter to continue" read wait version=$changelog_version # get target branch target_branch=${version%\.*} current_branch=$(git rev-parse --abbrev-ref HEAD) echo "Selected branch $target_branch for merging $current_branch" # add tag printf "Enter tag description for %s> " "$version" read tagmessage git tag "$version" -m "$tagmessage" # Import into current version branch printf "Press enter to git merge into branch \"$target_branch\" > " read prompt git checkout "$target_branch" git merge "$current_branch" git checkout "$current_branch" # Publish manpages and sourcecode printf "Press enter to publish doc/ code/ pypi for $version > " read prompt ./build web ./build pub cat << notes To be done manually... - freecode release - blog entry - linkedin entry - mailinglist update notes