TriBITS: Tribal Build, Integrate, and Test System,
bartlettroscoe TRIBITS_CTEST_DRIVER(): Correctly pass in excluded package disables f…
…or all-at-once approach (#269)

This was needed when switching from the package-by-package appraoch to the
all-at-once approach by default in Trilinos.  See trilinos/Trilinos#1761.

I also made it so that the list passed in to <Project>_EXCLUDE_PACAKGES can be
seprated by commas ',' or semi-colons ';'.

I added a unit test that protects both of these two behaviors.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=329,notpassed=0 (0.81 min)
1) SERIAL_RELEASE => passed: passed=329,notpassed=0 (0.88 min)
Latest commit 373c6d2 Oct 11, 2018
Permalink
Failed to load latest commit information.
cmake Add more tests for updated CMake 3.10 (trilinos/Trilinos#1761) Oct 10, 2018
common_tools Fix for errors when deleting a branch (PHI #3452) Aug 18, 2016
dev_testing Remove scripts for local testing with versions of CMake older than 3.… Oct 10, 2018
refactoring Fixing excessive indent Oct 9, 2014
test TRIBITS_CTEST_DRIVER(): Correctly pass in excluded package disables f… Oct 11, 2018
tribits TRIBITS_CTEST_DRIVER(): Correctly pass in excluded package disables f… Oct 11, 2018
.gitdist.default Change from --dist-extra-repos to --dist-repos and related (#151) Nov 3, 2016
.gitignore Add more checks for correct usage of package and subpackage functions ( Nov 2, 2017
.travis.yml Add more tests for updated CMake 3.10 (trilinos/Trilinos#1761) Oct 10, 2018
CMakeLists.txt Change min CMake version from 2.8.11 to 3.10.0 (trilinos/Trilinos#1761) Oct 10, 2018
CONTRIBUTING.md Some improvements of contriubturing guidelines Mar 22, 2018
CTestConfig.cmake Switch over to testing-vm.sandia.gov/cdash Aug 8, 2018
Copyright.txt Move Copyright.txt to tribits/ so it gets snapshotted May 22, 2015
PackagesList.cmake Allowing TriBITS project and package to have same name and dir (TriBiTS Nov 4, 2014
ProjectName.cmake Add more tests for updated CMake 3.10 (trilinos/Trilinos#1761) Oct 10, 2018
README.DIRECTORY_CONTENTS.rst Various typo fixes and improvements. Jul 12, 2017
README.rst Change min CMake version from 2.8.11 to 3.10.0 (trilinos/Trilinos#1761) Oct 10, 2018
TPLsList.cmake Got TriBITS to configure and python_utils tests working (TriBITS #26) Dec 3, 2014
Version.cmake Make base Version.cmake file copy for Windows (#129) Nov 15, 2016
checkin-test.py Make symlink to checkin-test.py script at base level. Dec 4, 2014
project-checkin-test-config.py Set --enable-all-packages=on to allow --local-do-all (TriBITS #109) Jan 16, 2016
tribits_tag_prefix.txt Add tribits_tag_prefix.txt for targeted version info Jan 13, 2016

README.rst

'Stories in Ready'

TriBITS: Tribal Build, Integrate, and Test System

The Tribal Build, Integrate, and Test System (TriBITS) is a framework designed to handle large software development projects involving multiple independent development teams and multiple source repositories which is built on top of the open-source CMake set of tools. TriBITS also defines a complete software development, testing, and deployment system supporting processes consistent with modern agile software development best practices.

Documentation

See TriBITS Documentation on tribits.org

Developing on TriBITS

In order to make changes and enhancements to TriBITS (see Contributing to TriBITS and the role TriBITS System Developer), one must be able to build, run, and extend the automated TriBITS test suite. To develop on TriBITS, one must minimally have CMake 3.10.0 (or newer) and a working C and C++ compiler. (A Fortran compiler is also desired to test Fortran-specific features of TriBITS but it can be disabled, see below).

To set up to develop on TriBITS:

  1. Clone the TriBITS repository
$ cd <some-base-dir>/
$ git clone git@github.com:TriBITSPub/TriBITS.git
  1. Create and set up a build/test directory
$ cd <some-base-dir>/
$ mkdir BUILD
$ cd BUILD/
$ ln -s ../TriBITS/dev_testing/generic/do-configure-serial-debug-gcc \
  do-configure

NOTE: Other do-configure scripts are also in that directory (e.g. for MPI).

  1. Configure, build and run the TriBITS test suite
$ ./do-configure
$ make
$ ctest -j12

NOTES:

  • If you don't have a working and compatible Fortran compiler, then pass -DTriBITS_ENABLE_Fortran=OFF into the do-configure script as:

    $ ./do-configure -DTriBITS_ENABLE_Fortran=OFF
    
  • On Mac OSX systems, one has to manually set the path the the TriBITS project base dir TRIBITS_BASE_DIR such as with:

    $ env TRIBITS_BASE_DIR=.. ./do-configure [other options]
    
  • Use as many processes as you have with ctest (-j12 is just used as an example).

  • All of the tests should pass on your machine before beginning any development work. If there are any failures, then please report them. To help show the failures you are seeing, do:

    $ ./do-configure -DCTEST_PARALLEL_LEVEL=12
    $ make dashboard
    

    and then provide the link to the CDash results in the TriBITS Issue when you report them.

Any change (refactoring) of TriBITS (minimally) requires that the automated test suite run with ctest pass 100%. To add new features (in most cases) new automated tests must be added to define and protect those features (again, see Contributing to TriBITS).