Skip to content

Latest commit

 

History

History
114 lines (87 loc) · 3.23 KB

release_procedure.rst

File metadata and controls

114 lines (87 loc) · 3.23 KB

Release procedure

This document describes how to prepare a new BIDScoin release from within the DCCN + from a local Linux VM

  1. 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
    
  2. 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
    
  3. Inspect the git history and update the CHANGELOG (including the links)

  4. Update the cli help texts and RTD files

  5. Update the version string everywhere (i.e. search without word matching) and COPYRIGHT

  6. Add and push a git version tag if everything is OK

DCCN deployment

  1. 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
    
  1. Run a test:

    module load bidscoin
    source activate /opt/bidscoin
    bidscoin -v
    bidscoin -t
    conda deactivate bidscoin
    
  2. Post a release message on the MM data management channel

GitHub

  1. Publish a new release

Pypi

  1. Temporarily remove the raw html logo markup

  2. 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/*
    
  3. Restore raw html logo markup

Dockerhub

  1. 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
    

Neurodesk

  1. Pull and edit the bidscoin neurocontainer in a separate release branch

  2. 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
    
  3. Create a neurocontainers PR from the release branch

Neurostars/X/MM

  1. Post a release message