This document describes how to prepare a new BIDScoin release from within the DCCN + from a local Linux VM
Delete the
.bidscoin
config folder and manually run the tox, bidscoin, bidsmapper, bidscoiner, bids-validator and other integration tests:cd ~/python/bidscoin git pull module load bidscoin/dev source activate tox rm -rf ~/.bidscoin tox conda deactivate source activate /opt/bidscoin ~/python/bidscoin/bidscoin/bcoin.py -t # Perform integration tests from the commandline and PyCharm
Build & test the apptainer container from GitHub in the Linux VM:
rm -rf ~/.bidscoin cd ~/PycharmProjects/bidscoin vi apptainer.def # -> pip install github sudo apptainer build bidscoin.sif apptainer.def xhost + apptainer exec --cleanenv --env DISPLAY=:0 bidscoin.sif bidscoin -t apptainer exec --cleanenv bidscoin.sif bidscoin -v apptainer exec --cleanenv bidscoin.sif pngappend apptainer cache clean vi apptainer.def # Restore pip install pypi
Inspect the git history and update the CHANGELOG (including the links)
Update the cli help texts and RTD files
Update the version string everywhere (i.e. search without word matching) and COPYRIGHT
Add and push a git version tag if everything is OK
Copy the dev folder, update the bidsmaps and module:
VERSION="4.5.0" cp -r /opt/bidscoin/dev /opt/bidscoin/$VERSION cd /opt/_modules/bidscoin ln -s .common $VERSION vi .version
Run a test:
module load bidscoin source activate /opt/bidscoin bidscoin -v bidscoin -t conda deactivate bidscoin
Post a release message on the MM data management channel
- Publish a new release
Temporarily remove the raw html logo markup
Build and upload the new release:
conda deactivate source activate tox cd ~/python/bidscoin git checkout master rm dist/* python3 -m pip install --upgrade build twine python3 -m build python3 -m twine upload --repository testpypi dist/* python3 -m twine upload dist/*
Restore raw html logo markup
In the VM, build, test and push a Docker image:
VERSION="4.5.0" cd ~/PycharmProjects/bidscoin sudo docker build -t marcelzwiers/bidscoin:$VERSION . sudo docker run --rm marcelzwiers/bidscoin:$VERSION bidscoin -v sudo docker run --rm marcelzwiers/bidscoin:$VERSION pngappend sudo docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix marcelzwiers/bidscoin:$VERSION bidscoin -t sudo docker push marcelzwiers/bidscoin:$VERSION sudo docker system prune -a
Pull and edit the bidscoin neurocontainer in a separate release branch
Build and test a neurodocker image:
VERSION="4.5.0" cd ~/PycharmProjects/neurocontainers/recipes/bidscoin conda activate neurodocker ./build.sh -ds sudo docker image list # Checkout the TAG sudo docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix bidscoin_${VERSION}:TAG bidscoin -t
Create a neurocontainers PR from the release branch
- Post a release message