These steps are used when releasing a new version of Slicer.
- On your workstation, open bash (or Git Bash) terminal and clone the repository
cd /tmp
git clone git@github.com:Slicer/DashboardScripts.git
cd DashboardScripts
- Update
FROM_DOTandTO_DOTvariables and execute the following statements:
FROM_DOT=5.2.0
TO_DOT=5.2.1
FROM_DOT_XY=${FROM_DOT%.*}
TO_DOT_XY=${TO_DOT%.*}
FROM_XYZ=$(echo $FROM_DOT | sed "s/\.//g")
TO_XYZ=$(echo $TO_DOT | sed "s/\.//g")
FROM_XY=$(echo $FROM_DOT_XY | sed "s/\.//g")
TO_XY=$(echo $TO_DOT_XY | sed "s/\.//g")
echo "FROM_DOT [$FROM_DOT] FROM_DOT_XY [$FROM_DOT_XY] FROM_XYZ [$FROM_XYZ] FROM_XY [$FROM_XY]"
echo " TO_DOT [$TO_DOT] TO_DOT_XY [$TO_DOT_XY] TO_XYZ [$TO_XYZ] TO_XY [$TO_XY]"
# Update version references in scripts
for script in \
computron.sh \
metroplex.sh \
overload.bat \
$(find -name "*slicerextensions_stable_nightly.cmake" -not -path "./.git/*" -not -name ".git*") \
$(find -not -path "./.git/*" -not -name ".git*" | grep $TO_XY) \
$(find -name "*_stable_package.*" -not -path "./.git/*" -not -name ".git*") \
; do
echo "Updating $script"
sed -i -e "s/$FROM_DOT/$TO_DOT/g" $script
sed -i -e "s/$FROM_DOT_XY/$TO_DOT_XY/g" $script
sed -i -e "s/$FROM_XYZ/$TO_XYZ/g" $script
sed -i -e "s/$FROM_XY/$TO_XY/g" $script
done
- On metroplex and if it applies, create a new
slicer-buildenv-*script corresponding to the tagged build environment image
A new script must created for both major and minor Slicer release. For patch release, if the environment did not change, no new script is needed.
Script are located in /home/svc-dashboard/bin directory.
Assuming the selected tag is <name-of-tag>, the following step will download the
corresponding docker image and generate the script:
TAG=<name-of-tag>
IMAGE=qt5-centos7
docker pull slicer/buildenv-${IMAGE}:${TAG}
docker run --rm slicer/buildenv-${IMAGE}:${TAG} > ~/bin/slicer-buildenv-${IMAGE}-${TAG}
chmod u+x ~/bin/slicer-buildenv-${IMAGE}-${TAG}
Finally, if it applies, update nightly and release scripts:
gedit \
metroplex.sh \
metroplex-slicer_stable_package.sh
- Edit and update
GIT_TAGset in release scripts:
gedit \
computron-slicer_stable_package.cmake \
computron-slicerextensions_stable_nightly.cmake \
metroplex-slicer_stable_package.cmake \
metroplex-slicerextensions_stable_nightly.cmake \
overload-vs*-slicer_stable_package.cmake \
overload-vs*-slicerextensions_stable_nightly.cmake
GIT_TAGshould be set to the tag corresponding to Slicer version <TO_DOT>
- Review and commit using message like:
git add -A
if [[ "${TO_XY}" != "${FROM_XY}" ]]; then
git commit -m "Rename and update Slicer release scripts from $FROM_DOT to $TO_DOT"
else
git commit -m "slicer $TO_DOT_XY: Update release scripts from $FROM_DOT to $TO_DOT"
fi