Project ProjectX_Commit

This job executes all unit tests when new code is committed to a branch that matches the patter */develop.
The new code is first merged into the develop branch, and if all the unit tests pass the new develop branch is pushed back to acdl.


Cloning ProjectX
ProjectX can be cloned for non-development use with the following command:

git clone ssh://username@acdl.mit.edu/home/svnroot/projectx.git

where 'username' is your username on acdl.mit.edu. For developers, ProjectX should be cloned using this script:

http://acdl.mit.edu/csi/userContent/ProjectX_developer.sh

with the command

ProjectX_developer.sh username [dir]

where 'username' is your username on acdl.mit.edu and [dir] is an optional directory name where ProjectX will be cloned into.
If [dir] is omitted, then ProjectX will be cloned into the directory where the script is executed.


ProjectX dependency minimum version requirements:
CMake 2.8.8
lcov 1.11

The following instructions will install all the ProjectX dependency minimum version requirements:

Ubuntu 14.04
Execute the following commands:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:daft-freak/ppa
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt-get update
sudo apt-get install cmake cmake-curses-gui liblapack-dev libsuitesparse-dev libnlopt-dev libparmetis-dev openmpi-common valgrind clang kcachegrind massif-visualizer tcsh
sudo apt-get install libglu1-mesa-dev xfonts-100dpi xfonts-75dpi xfonts-x3270-misc gsfonts-x11

Ubuntu 12.04
Execute the following commands:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository 'deb http://ppa.launchpad.net/kalakris/cmake/ubuntu precise main'
sudo add-apt-repository 'deb http://ppa.launchpad.net/smspillaz/verapp-latest/ubuntu precise main'
sudo add-apt-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main'
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-get update
sudo apt-get install cmake cmake-curses-gui libsuitesparse-dev valgrind clang-3.4

Download lcov tar file from: http://ltp.sourceforge.net/coverage/lcov.php

tar -zxf lcov-*.tar.gz

add lcov-*/bin to PATH in your .bashrc file.


Mac OS X
Install the Clang compiler with the command:

xcode-select --install

All other dependencies can be install with either homebrew (http://brew.sh/) or macports (http://www.macports.org/).

homebrew
Install homebrew with the command (make sure you are using bash):
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

All depdences can now be installed with the commands:
brew doctor
brew install gcc
brew install open-mpi
brew install cmake valgrind qcachegrind lcov
brew install homebrew/science/suite-sparse
brew install homebrew/science/nlopt


If lcov generates error messages when generating coverage information, try running:

brew install libgd
sudo cpan -i -f GD


Bash Completion
Bash completion allows the use of taps to complete makefile and git commands. It can be installed with

brew install bash-completion

then adding
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

to ~/.profile or ~/.bash_profile.


git Source Control Managment
If you like color in your terminal, you can enable coloring with git using the commands

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Coloring can be dissabled by changing 'auto' to 'never'.


This link provides some usefull comparisons between git and svn commands:

http://git.or.cz/course/svn.html
Configuration Matrixmacysreynolds
coverage_release_gnu49
release_gnu48
release_clang
release_intel
debug_gnu48
debug_gnu49
debug_clang
debug_intel
Test Result Trend