#!/bin/sh # Nico Schottelius files="doc/changelog lib/cdist/__init__.py" # Stuff to take care of when doing a release echo "Preparing next release" # Ensure documentation builds cleanly echo "Testing documentation..." ./build clean && ./build man || exit 1 # get version changelog_version=$(grep '^[[:digit:]]' doc/changelog | head -n1 | sed 's/:.*//') #git_version=$(git describe) lib_version=$(grep "^ VERSION" lib/cdist/__init__.py | sed -e 's/.*= //' -e 's/"//g') # get date date_today="$(date +%Y-%m-%d)" date_changelog=$(grep '^[[:digit:]]' doc/changelog | head -n1 | sed 's/.*: //') echo "Ensure you fixed/prepared version files: $files" echo "changelog: $changelog_version" #echo "git: $git_version" echo "lib: $lib_version" if [ "$date_today" != "$date_changelog" ]; then echo "Messed up date, not releasing:" echo "Changelog: $date_changelog" exit 1 fi if [ "$lib_version" != "$changelog_version" ]; then echo "Messed up versions, not releasing" exit 1 else echo "Versions are sane, continuing" fi echo "Press enter to continue" read wait version=$lib_version # get target branch branch=${version%\.*} # 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 \"$branch\" > " read prompt git checkout $branch git merge master git checkout master # Publish manpages and sourcecode printf "Press enter to publish doc/ and code/ > " read prompt ./build web ./build pub cat << notes To be done manually... - freecode release - blog entry - linkedin entry - mailinglist update notes