-
Notifications
You must be signed in to change notification settings - Fork 10
Creating Cdeep3M Release
This page describes deployment process for CDeep3M
NOTE: THESE INSTRUCTIONS ARE FOR DOING A RELEASE ONLY AND NOT FOR REGULAR COMMITS
To build and create releases of CDeep3M the following is required
-
Linux, Centos/Ubuntu 16.04 -- The Makefile uses
sed
command options currently NOT compatible with MacOS -
Octave 4
-
GNU make
On Ubuntu 16 the following commands should install needed tools run as superuser:
apt-get -y install octave octave-image octave-pkg-dev git python-pip unzip parallel python-opencv python-mpi4py libtiff-dev libjpeg62 time
cd /tmp
wget https://github.com/stegro/hdf5oct/archive/b047e6e611e874b02740e7465f5d139e74f9765f.zip
unzip b047e6e611e874b02740e7465f5d139e74f9765f.zip
cd hdf5oct-*
make
make install
cd /tmp
/bin/rm -rf hdf5oct-*
wget https://github.com/bats-core/bats-core/archive/v0.4.0.tar.gz
tar -zxf v0.4.0.tar.gz
/bin/rm v0.4.0.tar.gz
cd bats-core-0.4.0
./install.sh /usr/local
cd /tmp
/bin/rm -rf bats-core-0.4.0
Cdeep3M uses Bats and Octave for testing.
Before deploy verify code is working by invoking:
make test
All tests should pass and output should look something like this:
$ make test
bats tests
✓ test octave scripts
✓ run_all_predict.sh no args empty dir
✓ run_all_predict.sh success no args and no packages to process
✓ run_all_predict.sh success --1fmonly and no packages to process
✓ run_all_predict.sh success no args all packages done
✓ run_all_predict.sh success no args 1 package in each model dir
✓ run_all_predict.sh success --gpu 1 set
✓ run_all_predict.sh caffe_predict.sh fails
✓ run_all_train.sh no args empty dir
✓ run_all_train.sh success no args
✓ run_all_train.sh caffe_train.sh fail
✓ run_all_train.sh success custom iterations and gpu
✓ run_all_train.sh success --1fmonly
✓ runprediction.sh no args
✓ runprediction.sh verify correct input to CreatePredictJob.m
✓ runprediction.sh success
✓ runprediction.sh success --1fmonly set
✓ runprediction.sh run_all_predict.sh fails
✓ runtraining.sh no args
✓ runtraining.sh verify correct input to CreateTrainJob.m
✓ runtraining.sh success
✓ runtraining.sh run_all_train.sh fails
✓ runtraining.sh success custom --numiterations
✓ runtraining.sh success --1fmonly set
24 tests, 0 failures
Before doing a release, the code must be assigned a new version, committed to github.
To update version run make updateversion as seen below and increment the version. For test releases append rc# such as rc1 to version to denote its a release candidate. This Makefile target simply updates the VERSION file.
$ make updateversion
Current (3.1.4) enter new version: 3.1.5rc1
Updating VERSION with new version: 3.1.5rc1
Commit and push the changed VERSION file
git commit -m 'updated to version 3.1.5rc1' VERSION
git push origin <branch name or master>
Run make dist which creates a distribution locally that can be examined by looking in dist/ directory
make dist
Output:
rm -fr dist/
ls -l dist
total 35968
drwxrwxr-x 6 foo foo 4096 Jul 16 17:29 cdeep3m-3.1.5rc1
-rw-rw-r-- 1 foo foo 11189 Jul 16 17:29 cdeep3m_3.1.5rc1_basic_cloudformation.json
-rw-rw-r-- 1 foo foo 36812769 Jul 16 17:29 cdeep3m-3.1.5rc1.tar.gz
WARNING: To run a release one must be able to commit, tag, and push. In addition, write access to S3 bucket is needed.
NOTE: For more information on the make targets click here
make release
- From https://github.com/CRBS/cdeep3m click on releases link.
- Click on the Draft a new release button.
- In the Tag version field select the version set above.
- Attach source tree and CloudFormation template created above to release via the Attach binaries link on the page.
- Click publish release.