Skip to content

SPAdes release how to

Andrey Prjibelski edited this page Feb 1, 2022 · 11 revisions

Pre-release checks

  • Check whether all new options and changes are well documented in assembler/README.md, including links, dates and version.
  • Set proper version in assembler/VERSION
  • Set proper version in src/cmake/pack.cmake
  • List all new features and changes in assembler/changelog.html
  • Update assembler/LICENSE if needed

Creating SPAdes distributive

Source code archive

  • Make sure you repository is clear (git clean -f)
  • Run ./make-targz.sh

Linux binaries

  • Get a docker image (no need to do on the Chihua server):
docker pull ghcr.io/ablab/holy-build-box-x64:latest

Compiling with docker

  • Compile SPAdes using docker by running:
docker run -u $(id -u):$(id -g) -t -i -v <path to SPAdes repository>/spades/ --rm ghcr.io/ablab/holy-build-box-x64 bash /spades/assembler/src/tools/spades_holybox_compile.sh

Compiling with udocker (for those who experience any troubles with docker)

  • Load the docker image using udocker (needs to be done only once):
docker save ghcr.io/ablab/holy-build-box-x64:latest -o <image.tar>
udocker load -i <image.tar>
udocker create --name=ablab-buildbox ghcr.io/ablab/holy-build-box-x64
  • Compile SPAdes using udocker:
udocker run  --user=$(id -u) --volume=<path to SPAdes repository>:/spades --cpuset-cpus=8 buildbox bash /spades/assembler/src/tools/spades_holybox_compile.sh
  • The resulting binaries will be located in algorithmic-biology/assembler/build_spades

MacOS binaries

  • MacOS binaries must be compiled with gcc to include OpenMP
  • Do not forget to set MacOS SDK and deployment versions to enable SPAdes launches on older MacOS version
  • Example for gcc 4.8 from macports:
spades_compile.sh -DCMAKE_C_COMPILER=gcc-mp-4.8 -DCMAKE_CXX_COMPILER=g++-mp-4.8 -DSPADES_STATIC_BUILD=1 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
make -C build_spades package
  • The resulting binaries will be located in algorithmic-biology/assembler/build_spades

Checking SPAdes distributive

  • Compile SPAdes with ./spades_compile.sh (only for source code)
  • Run all kinds of tests to check everything is compiled and packed correctly:
./spades.py --test --sc
./spades.py --test --careful
./spades.py --test --iontorrent
./truspades.py --test
./rnaspades.py --test
./plasmidspades.py --test
./metaspades.py --test
./rnaspades.py --test --ss-rf
./rnaspades.py --test --iontorrent
./coronaspades.py  --test
./metaplasmidspades.py  --test
./metaviralspades.py  --test
./plasmidspades.py  --test
./rnaviralspades.py  --test
  • Check that binaries are statically linked (file command)

Publishing the release

Upload all 3 archives (source code, Linux and MacOS binaries) to the lab's web-site

Push the release branch to a public repository

  • Add git remote: git remote add spades [email protected]:ablab/spades.git
  • Check for git remote:
git remote -v
origin	[email protected]:ablab/algorithmic-biology.git (fetch)
origin	[email protected]:ablab/algorithmic-biology.git (push)
spades	 [email protected]:ablab/spades.git (fetch)
spades	 [email protected]:ablab/spades.git (push)
  • Switch to the release branch git checkout spades_N.M.K
  • Push the branch git push spades spades_N.M.K (here spades is the remote name for spades.git)
  • Create new tag vN.M.K in spades.git
  • Create GitHub release using web interface, use changelog.html to list changes

Publicity

User mailing list

  • Download all user data from lab's web-site (ninja form #2)
  • Extract all emails for users who wrote us on support email since the last release using a special (available in the respective Google spreadsheet under SPAdes support account)
  • Add new users to mailgun
  • Create an email in html format similar to assembler/src/tools/mail_sender/message.html
  • Run a mail-sending script using a private mailing API key
Clone this wiki locally