@@ -5,27 +5,27 @@ shopt -s extglob
55# TODO: upload packages
66# TODO: set dev version in 21.01 (+ 20.09?) branches
77
8- : ${VENV:= .venv}
9- : ${FORK_REMOTE:= origin}
10- : ${UPSTREAM_REMOTE:= upstream}
11- : ${UPSTREAM_REMOTE_URL:= git@ github.com: galaxyproject/ galaxy.git}
12- : ${DEV_BRANCH:= dev}
13- : ${STABLE_BRANCH:= master}
8+ : " ${VENV:= .venv} "
9+ : " ${FORK_REMOTE:= origin} "
10+ : " ${UPSTREAM_REMOTE:= upstream} "
11+ : " ${UPSTREAM_REMOTE_URL:= git@ github.com: galaxyproject/ galaxy.git} "
12+ : " ${DEV_BRANCH:= dev} "
13+ : " ${STABLE_BRANCH:= master} "
1414
1515# Vars for local releases
16- : ${RELEASE_LOCAL_TAG:= local}
17- : ${RELEASE_LOCAL_COMMIT:= $(git rev-parse --short HEAD)}
18- : ${RELEASE_LOCAL_VERSION:= ${RELEASE_LOCAL_TAG} $(date -u +% Y% m% dT% H% M% SZ).${RELEASE_LOCAL_COMMIT} }
16+ : " ${RELEASE_LOCAL_TAG:= local} "
17+ : " ${RELEASE_LOCAL_COMMIT:= $(git rev-parse --short HEAD)} "
18+ : " ${RELEASE_LOCAL_VERSION:= ${RELEASE_LOCAL_TAG} $(date -u +% Y% m% dT% H% M% SZ).${RELEASE_LOCAL_COMMIT} } "
1919
2020# Only use this for dev/testing/CI to ignore forward merge conflicts, skip confirmation and package builds, etc.
21- : ${TEST_MODE:= false}
21+ : " ${TEST_MODE:= false} "
2222$TEST_MODE && MERGE_STRATEGY_OPTIONS=' -X ours' || MERGE_STRATEGY_OPTIONS=
2323
2424VERIFY_PACKAGES=(wheel packaging)
2525
2626BRANCH_CURR=$( git branch --show-current)
2727
28- : ${RELEASE_CURR:= $(grep ' ^VERSION_MAJOR' lib/ galaxy/ version.py | sed -E -e " s/^[^'\" ]*['\" ]([^'\" ]*)['\" ]$/\1/" )}
28+ : " ${RELEASE_CURR:= $(grep ' ^VERSION_MAJOR' lib/ galaxy/ version.py | sed -E -e " s/^[^'\" ]*['\" ]([^'\" ]*)['\" ]$/\1/" )} "
2929RELEASE_NEXT=
3030RELEASE_CURR_MINOR=
3131RELEASE_CURR_MINOR_NEXT=
7070
7171function trap_handler() {
7272 { set +x; } 2> /dev/null
73- local file
7473 $ERROR && log_func=log_error || log_func=log
7574 $log_func " Cleaning up..."
7675 if $WORKING_DIR_CLEAN ; then
@@ -140,7 +139,8 @@ function sed_inplace() {
140139
141140
142141function fork_owner() {
143- local url=$( git remote get-url " $FORK_REMOTE " )
142+ local url
143+ url=$( git remote get-url " $FORK_REMOTE " )
144144 case " $url " in
145145 https://github.com/* )
146146 echo " $url " | awk -F/ ' {print $4}'
@@ -182,7 +182,7 @@ function ensure_prereqs() {
182182 else
183183 pip_list=$( log_exec " ${VENV} /bin/pip" list)
184184 fi
185- for package in ${VERIFY_PACKAGES[@]} ; do
185+ for package in " ${VERIFY_PACKAGES[@]} " ; do
186186 echo " $pip_list " | grep -E " ^${package} \s+" || { log_error " Package '${package} ' missing from venv: ${VENV} " ; exit 1; }
187187 done
188188}
@@ -257,7 +257,8 @@ function branch_exists() {
257257
258258function _test_forward_merge() {
259259 local curr=" $1 "
260- local next=" $( release_next " $curr " ) "
260+ local next
261+ next=$( release_next " $curr " )
261262 local curr_branch=" ${UPSTREAM_REMOTE} /release_${curr} "
262263 local next_branch=" ${UPSTREAM_REMOTE} /release_${next} "
263264 local curr_local_branch=" __release_merge_test_${curr} "
@@ -274,6 +275,7 @@ function _test_forward_merge() {
274275 fi
275276 git_checkout_temp " $next_local_branch " " $next_branch "
276277 # Test the merge even if ignoring just to test the code path
278+ # shellcheck disable=SC2086
277279 log_exec git merge $MERGE_STRATEGY_OPTIONS -m ' test merge; please ignore' " $curr_local_branch " || {
278280 log_error " Merging unmodified ${curr} to ${next} failed, resolve upstream first!" ; exit 1; }
279281 if $recurse ; then
@@ -283,21 +285,27 @@ function _test_forward_merge() {
283285
284286
285287function test_forward_merge() {
286- local branch_curr=$( git branch --show-current)
288+ local branch_curr
289+ branch_curr=$( git branch --show-current)
287290 _test_forward_merge " $@ "
288291 git checkout " $branch_curr "
289292}
290293
291294
292295function perform_stable_merge() {
293- [ " $RELEASE_TYPE " == ' initial' -o " $RELEASE_TYPE " == ' point' ] || return 0
294- local branch_curr=$( git branch --show-current)
296+ [ " $RELEASE_TYPE " == ' initial' ] || [ " $RELEASE_TYPE " == ' point' ] || return 0
297+ local branch_curr
298+ branch_curr=$( git branch --show-current)
295299 git_checkout_temp ' __stable' " ${UPSTREAM_REMOTE} /${STABLE_BRANCH} "
296- local stable=$( get_version_major)
297- local curr_int=$( echo " $RELEASE_CURR " | tr -d .)
298- local stable_int=$( echo " $stable " | tr -d .)
300+ local stable
301+ stable=$( get_version_major)
302+ local curr_int
303+ curr_int=$( echo " $RELEASE_CURR " | tr -d .)
304+ local stable_int
305+ stable_int=$( echo " $stable " | tr -d .)
299306 if [ " $curr_int " -ge " $stable_int " ]; then
300307 log " Release '${RELEASE_CURR} ' >= stable branch release '${stable} ', merging 'release_${RELEASE_CURR} ' to '${STABLE_BRANCH} '"
308+ # shellcheck disable=SC2086
301309 log_exec git merge $MERGE_STRATEGY_OPTIONS -m " Merge branch 'release_${RELEASE_CURR} ' into '${STABLE_BRANCH} '" " __release_${RELEASE_CURR} "
302310 PUSH_BRANCHES+=(" __stable:${STABLE_BRANCH} " )
303311 else
@@ -309,7 +317,8 @@ function perform_stable_merge() {
309317
310318function _perform_forward_merge() {
311319 local curr=" $1 "
312- local next=" $( release_next " $curr " ) "
320+ local next
321+ next=" $( release_next " $curr " ) "
313322 local curr_branch=" ${UPSTREAM_REMOTE} /release_${curr} "
314323 local next_branch=" ${UPSTREAM_REMOTE} /release_${next} "
315324 local curr_local_branch=" __release_${curr} "
@@ -335,7 +344,8 @@ function _perform_forward_merge() {
335344
336345function perform_forward_merge() {
337346 local curr=" $1 "
338- local branch_curr=$( git branch --show-current)
347+ local branch_curr
348+ branch_curr=$( git branch --show-current)
339349 _perform_forward_merge " $@ "
340350 declare -p PUSH_BRANCHES
341351 git checkout " $branch_curr "
@@ -348,7 +358,7 @@ function push_merged() {
348358 log " Pushing '${branch} ' to remote '${UPSTREAM_REMOTE} '"
349359 log_exec git push " $UPSTREAM_REMOTE " " $branch "
350360 done
351- if [ " $RELEASE_TYPE " == ' initial' -o " $RELEASE_TYPE " == ' point' ]; then
361+ if [ " $RELEASE_TYPE " == ' initial' ] || [ " $RELEASE_TYPE " == ' point' ]; then
352362 log_exec git push --tags " $UPSTREAM_REMOTE "
353363 fi
354364}
@@ -448,7 +458,7 @@ function packages_make_all() {
448458 (
449459 cd packages/
450460 for dir in * ; do
451- [ ! -d " $dir " -o ! -f " ${dir} /setup.cfg" ] && continue
461+ [ ! -d " $dir " ] || [ ! -f " ${dir} /setup.cfg" ] && continue
452462 # can't use log_exec here because we want to capture output
453463 echo + make -C " $dir " " $@ " 1>&2
454464 make -C " $dir " " $@ " > " ${dir} /make-${1} .log" 2>&1
@@ -504,7 +514,7 @@ function perform_version_update() {
504514
505515
506516function perform_version_update_dev() {
507- [ " $RELEASE_TYPE " == ' initial' -o " $RELEASE_TYPE " == ' point' ] || return 0
517+ [ " $RELEASE_TYPE " == ' initial' ] || [ " $RELEASE_TYPE " == ' point' ] || return 0
508518 log " Incrementing release version to '${RELEASE_CURR} .${RELEASE_CURR_MINOR_NEXT_DEV} ' for development of next point release"
509519 update_galaxy_version ' VERSION_MINOR' " $RELEASE_CURR_MINOR_NEXT_DEV "
510520 log_exec git diff --exit-code && { log_error ' Missing expected version.py changes' ; exit 1; } || true
@@ -542,7 +552,8 @@ function create_release_rc_initial() {
542552 sed_inplace -e " s/^RELEASE_CURR:=.*/RELEASE_CURR:=${RELEASE_NEXT} /" Makefile
543553 log_exec git diff --exit-code && { log_error ' Missing expected Makefile changes' ; exit 1; } || true
544554 git add -- Makefile
545- local package_version=$( packaging_version " ${RELEASE_NEXT} .0dev0" " true" )
555+ local package_version
556+ package_version=$( packaging_version " ${RELEASE_NEXT} .0dev0" " true" )
546557 update_package_versions " $package_version "
547558 git add -- packages/
548559 log_exec git commit -m " Update version to ${RELEASE_NEXT} .dev0"
@@ -551,7 +562,8 @@ function create_release_rc_initial() {
551562 log_exec git merge -X ours -m " Merge branch 'release_${RELEASE_CURR} ' into 'dev'" " __release_${RELEASE_CURR} "
552563
553564 # Push branches for PR
554- local owner=$( fork_owner)
565+ local owner
566+ owner=$( fork_owner)
555567 local curr_remote_branch=" version-${RELEASE_CURR} .${RELEASE_CURR_MINOR_NEXT} "
556568 local next_remote_branch=" version-${RELEASE_NEXT} .dev"
557569 log_exec git push " $FORK_REMOTE " " __release_${RELEASE_CURR} :${curr_remote_branch} "
0 commit comments