print hint to check __version_info__ (might be unecessary after 0.14)
[docutils.git] / sandbox / infrastructure / set_version.sh
blob8cd4b4d62fba58c4e120ea8b40e2891fd9472d1e
1 #!/bin/bash
3 # set version number and description
5 # Author: engelbert gruber (taken from Lea Wiemann's release.sh)
6 # Contact: grubert@users.sourceforge.net
7 # Revision: $Revision$
8 # Date: $Date$
9 # Copyright: This script has been placed in the public domain.
11 # USAGE see: docutils/docs/dev/release.txt
13 # must be run from docutils trunk/docutils,
14 # because HISTORY and RELEASE_NOTES.txt are modified.
16 set -e
18 echo "Change version identifier"
19 if [ -z "$1" ] ; then
20 echo "USAGE"
21 echo " set_version.sh <new_version-identifier>"
22 echo ""
23 echo "Version identifier: major.minor[.micro][<pre>][.dev]"
24 echo " micro is for bug-fix releases and left out if zero"
25 echo " prereleases get '(a|b|rc[N])#' appended"
26 echo " a '.dev' suffix indicates repository versions (no release)"
27 echo ""
28 echo "Samples"
29 echo " 0.14b.dev 0.14b 0.14rc1.dev 0.14rc1 0.14 0.15b.dev"
30 exit
33 old_ver="`python -c 'import docutils; print docutils.__version__'`"
34 new_ver=$1
36 echo "from current Docutils version ${old_ver} to ${new_ver}"
38 function set_ver()
40 # Parameters: old_version new_version
41 shopt -s extglob
42 echo Determining list of files to be changed...
43 # BUG ls lists directories but does not descend
44 # (try ls --recursive)
45 files="docutils/__init__.py setup.py `$svn ls test/functional/expected/ | sed 's|^|test/functional/expected/|'`"
46 echo "Now I'll change the version number to ${new_ver} in the following files:"
47 echo $files
48 echo
49 echo 'Press enter to proceed (or enter anything to skip)...'
50 read
51 if [ ! "$REPLY" ]; then
52 echo 'Modifying files with ed...'
53 old_ver_regex="`echo "$1" | sed 's/\./\\\\./g'`"
54 # "ed" returns an error code if there has been no substitution, so
55 # we temporarily deactivate exit-on-error.
56 set +e
57 for F in $files; do
58 (echo ",s/$old_ver_regex/${new_ver}/g"; echo 'wq') | ed "$F"
59 done
60 set -e
62 echo
63 echo 'CAUTION: please look at the diffs carefully, for wrongly'
64 echo ' replaced embedded numbers.'
65 # checkin "set version number to $2" $files
68 set_ver "$old_ver" "$new_ver"
69 echo "VERIFY: major, minor, micro, releaselevel (candidate,rinal), prerelease number, pre/release or checkout"
70 python -c 'import docutils; print "__version_info__ =", docutils.__version_info__'