-
Notifications
You must be signed in to change notification settings - Fork 139
SPAdes release how to
Andrey Prjibelski edited this page Feb 1, 2022
·
11 revisions
- 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
- Make sure you repository is clear (
git clean -f
) - Run
./make-targz.sh
- Get a docker image (no need to do on the Chihua server):
docker pull ghcr.io/ablab/holy-build-box-x64:latest
- 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
- 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 must be compiled with
gcc
to includeOpenMP
- 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
- 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)
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
(herespades
is the remote name for spades.git) - Create new tag
vN.M.K
inspades.git
- Create GitHub release using web interface, use
changelog.html
to list changes
- Add a twit on https://twitter.com/spadesassembler
- Write a post on Facebook https://www.facebook.com/SPAdesAssembler
- Create a news post on the web-site (major releases only)
- 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