Skip to content

BrainVISA 6.0.30 release check-list #206

@denisri

Description

@denisri

Release 6.0.30 check-list

  • Check that tests are successful on https://brainvisa.info/builds/

  • Update changelogs and the list of known issues

  • Connect to rosette using
    ssh a-sac-ns-brainvisa@rosette

  • Create public and brainvisa-cea packages for conda

    • Change directory
      cd /home_local/a-sac-ns-brainvisa/bbi-daily/soma-env-6.0
    • Update sources and build software tree
      pixi run bv_maker
    • Update release version and generate packaging plan
      pixi run soma-env packaging_plan --release
    • Apply packaging plan, build conda packages and publish to /drf/neuro-forge
      pixi run soma-env apply_plan
    • Change directory
      cd /home_local/a-sac-ns-brainvisa/bbi-daily/neuro-forge
    • Reindex packages on /drf/neuro-forge and publish packages to brainvisa.info
      pixi run neuro-forge publish
  • Create, test, and publish/deploy the images (optional)

    • sif monolothic brainvisa install
      • Change directory
        cd /home_local/a-sac-ns-brainvisa/bbi-daily/casa-distro
      • Update casa distro
        git pull
        export PATH=$(pwd)/casa-distro/bin:"$PATH"
      • Change directory
        cd /home_local/a-sac-ns-brainvisa/bbi-daily
      • Pull a "casa-pixi" apptainer image from the BrainVISA server:
        export CASA_BASE_DIRECTORY=$(pwd)
        casa_distro pull_image image=casa-pixi-5.4.sif
      • Create the monolithic image
        casa_distro_admin create_user_image container_type=apptainer_pixi image_version=5.4 base_image=casa-pixi-5.4.sif version=6.0 distro=brainvisa
      • Verify that the image works
        • Install the image
          mkdir -p /tmp/test-brainvisa-6.0;apptainer run -ce --bind /tmp/test-brainvisa-6.0:/casa/setup /home_local/a-sac-ns-brainvisa/bbi-daily/brainvisa-6.0.sif
        • Use it to run AimsFileInfo, anatomist, brainvisa
      • Publish the image on the BrainVISA web site
        casa_distro_admin publish_user_image image=brainvisa-6.0.sif
  • Edit the website to announce the new release

    • web project sources
    • log on rosette, rebuild the web site in the brainvisa-web build: ssh a-sac-ns-brainvisa@rosette, then in the server:
      • /home_local/a-sac-ns-brainvisa/bbi-daily/brainvisa-web/bin/bv_maker
      • publish the web site using the publish script: /home_local/a-sac-ns-brainvisa/bbi-daily/brainvisa-web/bin/bv /home_local/a-sac-ns-brainvisa/bbi-daily/brainvisa-web/src/communication/web/master/scripts/bv_publish_web brainvisa@brainvisa.info:/var/www/html/brainvisa.info
  • Deploy the cea pixi release:

    • Create a new directory /drf/brainvisa/brainvisa-6.0
      mkdir -p /drf/brainvisa/brainvisa-6.0
    • Setup pixi workspace
cat > pixi.toml <<EOF
[workspace]
authors = ["sapetnioc <sapetnioc@users.noreply.github.com>"]
channels = ["https://brainvisa.info/neuro-forge", "conda-forge", "/drf/neuro-forge/brainvisa-cea"]
name = "brainvisa-6.0"
platforms = ["linux-64"]
version = "0.1.0"

[tasks]

[dependencies]
brainvisa = ">=6.0"
soma-pytorch = "*"
bioprocessing = ">=6.0"
constellation = ">=6.0"
primatologist = ">=6.0"
morphologist-baby = ">=6.0"
brainrat = ">=6.0"
EOF
  • Install environment
    pixi install
    pixi run brainvisa -b --setup
    pixi run bv_update_links

  • Verify that the deployment works (use it to launch AimsFileInfo --info, anatomist, brainvisa...)
    /drf/brainvisa/brainvisa-6.0/bin/bv bash
    for __f in $(find /drf/brainvisa/brainvisa-6.0/.pixi/envs/default/share/brainvisa-share-6.0 -type f -name '*.ima'); do AimsFileInfo -v -i "${__f}"; done
    anatomist $(find /drf/brainvisa/brainvisa-6.0/.pixi/envs/default/share/brainvisa-share-6.0 -type f -name '*.nii')
    brainvisa

  • Make it the default version: ln -sfT brainvisa-6.0/ /drf/brainvisa/brainvisa

  • Build pip packages for the python projects soma-workflow, soma-base, populse-db and capsul which are distributed in pip:

    • ./soma-env-6.0/bin/bv python -m build ./soma-env-6.0/src/soma/soma-workflow
    • ./soma-env-6.0/bin/bv python -m build ./soma-env-6.0/src/soma/soma-base
    • ./soma-env-6.0/bin/bv python -m build ./soma-env-6.0/src/populse/populse-db
    • ./soma-env-6.0/bin/bv python -m build ./soma-env-6.0/src/capsul
  • Publish them to test.pypi.org

    • ./soma-env-6.0/bin/bv python -m twine upload --repository testpypi ./soma-env-6.0/src/soma/soma-workflow/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload --repository testpypi ./soma-env-6.0/src/soma/soma-base/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload --repository testpypi ./soma-env-6.0/src/populse/populse-db/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload --repository testpypi ./soma-env-6.0/src/capsul/dist/*
  • Create a virtualenv test environment and test packages install:

    • mkdir -p /tmp/brainvisa-6.0/testenv && python3 -m venv /tmp/brainvisa-6.0/testenv
    • /tmp/brainvisa-6.0/testenv/bin/python -m pip install --index-url https://test.pypi.org/simple/ soma-workflow
    • /tmp/brainvisa-6.0/testenv/bin/python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple soma-base
    • /tmp/brainvisa-6.0/testenv/bin/python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple populse-db
    • /tmp/brainvisa-6.0/testenv/bin/python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple capsul
  • Publish them to pypi.org

    • ./soma-env-6.0/bin/bv python -m twine upload ./soma-env-6.0/src/soma/soma-workflow/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload ./soma-env-6.0/src/soma/soma-base/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload ./soma-env-6.0/src/populse/populse-db/dist/*
    • ./soma-env-6.0/bin/bv python -m twine upload ./soma-env-6.0/capsul/dist/*
  • Open a new GitHub issue for known issues

  • Close the old GitHub known issues

  • Make an announcement on the GitHub discussions

  • If the releases has significant new features, announce it on the mailing list

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions