@@ -142,9 +142,11 @@ function set_version_in_file {
142142# Arguments:
143143# new_version
144144# changelog_file
145+ # unreleased?
145146function set_version_in_changelog {
146147 changelog_file=" $1 "
147148 new_version=" $2 "
149+ unreleased=" $3 "
148150
149151 if [[ -z " ${new_version} " ]]; then
150152 log_error " new_version not set"
@@ -175,8 +177,12 @@ function set_version_in_changelog {
175177 return 0
176178 else
177179 log_debug " Will add new line to changelog:"
178- release_date=$( LANG=en_US date +%Y-%b-%d)
179- new_line=" ### ${new_version} (${release_date} )"
180+ if [[ " $unreleased " == " true" ]]; then
181+ new_line=" ### ${new_version} - Unreleased"
182+ else
183+ release_date=$( LANG=en_US date +%Y-%b-%d)
184+ new_line=" ### ${new_version} (${release_date} )"
185+ fi
180186 log_debug " ${new_line} "
181187 if [[ " ${dryrun} " != " true" ]]; then
182188 old_changelog=$( cat " ${changelog_file} " )
@@ -190,6 +196,29 @@ function set_version_in_changelog {
190196 fi
191197}
192198
199+ # Given the old_version in a SemVer format, e.g. 0.1.2, returns new version
200+ # with patch fragment increased by 1, e.g. 0.1.3.
201+ # Arguments:
202+ # old_version
203+ function bump_patch_version {
204+ local old_version=" ${1?old_version not set} "
205+ log_debug " Validating old_version"
206+ validate_version_is_semver " ${old_version} "
207+ exit_status=" $? "
208+ if [[ " ${exit_status} " != 0 ]]; then
209+ return " ${exit_status} "
210+ fi
211+
212+ # replace . with space so can split into an array
213+ version_bits=(${old_version// ./ \ } )
214+ major=${version_bits[0]}
215+ minor=${version_bits[1]}
216+ patch=${version_bits[2]}
217+
218+ patch=$(( patch+ 1 ))
219+ echo " ${major} .${minor} .${patch} "
220+ }
221+
193222# You should invoke that function before running any end user functions.
194223function releaser_init {
195224 default_changelog_file=" $( pwd) /CHANGELOG.md"
0 commit comments