Getting Dakota Source Code

The Dakota repository is separated into public and private (local) meta-packages, which use git submodules to pull components from public servers (anonymously) and from private servers (requiring authentication) to create a complete Dakota checkout. The public portion of Dakota (including submodules) can be checked out anonymously with the single command:

git clone --recursive software.sandia.gov:/git/dakota

Read-only anonymous access: To access the Dakota source code without authentication, instead use git clone https://software.sandia.gov/git/dakota, edit dakota/.gitmodules to redirect each of the submodule URLs <sm> to https://software.sandia.gov/git/<sm> and run git submodule sync.  You should then be able to update Dakota's submodules.

Determine Branch: After obtaining the Dakota code, you will automatically be on the "master" branch.  This branch is intended to be a stable, release-quality branch that undergoes more extensive testing.  It is not possible to commit directly to this branch.  If you intend to make changes, the "devel" branch should be used.  When switching to this branch (or any branch) it is always best to ensure a consistent state of submodules and provate/local content, e.g.

cd dakota
git checkout devel
git submodule update --init

Private/local: To obtain content from the private (local) servers, you must have appropriate access. The following helper script can be invoked from the top level of the dakota source directory:

cd dakota
./sync.local-git.sh

At this point, the project will reflect the content of either the "master" branch or the "devel" branch of Dakota along with corresponding submodule versions.

Updating the "master" branch with changes to the "devel" branch:

To preseve the stable quality of the "master" branch, a Jenkins job has been created to perform a more extensive set of builds and testing on the "devel" branch followed by automated updating of "master" after successful completion. [Insert Jenkins link HERE].