@@ -32,9 +32,15 @@ function c4_release_bump()
3232{
3333 ( \
3434 set -euxo pipefail ; \
35- ver=$( _c4_validate_ver $1 ) ; \
35+ rootdir=` git rev-parse --show-toplevel` ; \
36+ curr=$( cat $rootdir /tbump.toml \
37+ | grep -E ' ^current.*=.*"' \
38+ | sed ' s/^current.*=.*"\(.*\)"/\1/' ) ; \
39+ ver=$( _c4_validate_ver $1 $curr ) ; \
40+ _c4_set_ver_changelog $ver ; \
3641 tbump --non-interactive --only-patch $ver ; \
37- sed ' s/C[0-9]CORE_/C4CORE_/g' -i src/c4/version.hpp \
42+ sed ' s/C[0-9]CORE_/C4CORE_/g' -i src/c4/version.hpp ; \
43+ _c4_check_abi_ver $curr $ver ; \
3844 )
3945}
4046
@@ -98,51 +104,72 @@ function c4_release_force_push()
98104 )
99105}
100106
101- function _c4_validate_ver ()
107+ function _c4_set_ver_changelog ()
102108{
103109 ver=$1
104- if [ -z " $ver " ] ; then \
110+ if [ -z " $ver " ] ; then
105111 exit 1
106112 fi
107113 ver=$( echo $ver | sed " s:v\(.*\):\1:" )
108- # sver=$(echo $ver | sed "s:\([0-9]*\.[0-9]*\..[0-9]*\).*:\1:")
109- # check the ABI version
110- rootdir= ` git rev-parse --show-toplevel `
111- curr= $( cat $rootdir /tbump.toml \
112- | grep -E ' ^ current.*=.*" ' \
113- | sed ' s/^current.*=.*"\(.*\)"/\1/ ' )
114- if [[ " $ver " < " $curr " ]] ; then
115- echo " error: next version ( $ver ) is smaller than current ( $curr ) "
116- exit 1
114+ if [ ! -f changelog/ $ver .md ] ; then
115+ if [ -f changelog/current.md ] ; then
116+ git mv changelog/current.md changelog/ $ver .md
117+ touch changelog/current.md
118+ git add changelog/ current.md
119+ else
120+ echo " ERROR: could not find changelog/ $ver .md or changelog/current.md "
121+ exit 1
122+ fi
117123 fi
118- currmajor=$( echo $curr | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\1:' )
119- currminor=$( echo $curr | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\2:' )
120- currpatch=$( echo $curr | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\3:' )
121- nextmajor=$( echo $ver | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\1:' )
122- nextminor=$( echo $ver | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\2:' )
123- nextpatch=$( echo $ver | sed ' s:\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\):\3:' )
124+ }
125+
126+ function _c4_check_abi_ver()
127+ {
128+ curr=$1
129+ ver=$2
130+ # check the ABI version
131+ rxver=" \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\)"
132+ currmajor=$( echo $curr | sed " s:${rxver} :\1:" )
133+ currminor=$( echo $curr | sed " s:${rxver} :\2:" )
134+ currpatch=$( echo $curr | sed " s:${rxver} :\3:" )
135+ nextmajor=$( echo $ver | sed " s:${rxver} :\1:" )
136+ nextminor=$( echo $ver | sed " s:${rxver} :\2:" )
137+ nextpatch=$( echo $ver | sed " s:${rxver} :\3:" )
124138 abi_must_be_same=0
125139 if [ $nextmajor -gt 0 ] ; then
140+ nextsoname=$nextmajor
126141 if [ $nextmajor -eq $currmajor ] ; then
127142 abi_must_be_same=1
128143 fi
129144 else
145+ nextsoname=$nextmajor .$nextminor
130146 if [ $nextminor -eq $currminor ] ; then
131147 abi_must_be_same=1
132148 fi
133149 fi
134150 if [ $abi_must_be_same == 1 ] ; then
135151 echo " ABI must be same"
136- check_abi.sh c4core v$curr
152+ git commit -am " WIP abi check"
153+ rootdir=$( git rev-parse --show-toplevel)
154+ $rootdir /proj/check_abi.sh c4core v$curr master $nextsoname
155+ git reset --mixed HEAD~1
137156 fi
138- # changelog
139- if [ ! -f changelog/$ver .md ] ; then \
140- if [ -f changelog/current.md ] ; then
141- git mv changelog/current.md changelog/$ver .md
142- touch changelog/current.md
143- git add changelog/current.md
144- else
145- echo " ERROR: could not find changelog/$ver .md or changelog/current.md"
157+ }
158+
159+ function _c4_validate_ver()
160+ {
161+ ver=$1
162+ if [ -z " $ver " ] ; then
163+ exit 1
164+ fi
165+ ver=$( echo $ver | sed " s:v\(.*\):\1:" )
166+ curr=
167+ if [ -v 2 ] ; then
168+ curr=$2
169+ fi
170+ if [ -n " $curr " ] ; then
171+ if [[ " $ver " < " $curr " ]] ; then
172+ echo " error: next version ($ver ) is smaller than current ($curr )"
146173 exit 1
147174 fi
148175 fi
0 commit comments