TriBITSPub / TriBITS

TriBITS: Tribal Build, Integrate, and Test System,
http://tribits.org
Other
36 stars 47 forks source link
agile build-automation build-system build-tool build-tools cdash cmake cmake-scripts cpp ctest hpc package-manager package-manager-tool python sandia-national-laboratories snl-build-tools testing testing-framework testing-tools

.. image:: https://bestpractices.coreinfrastructure.org/projects/4839/badge :target: https://bestpractices.coreinfrastructure.org/projects/4839 :alt: CII Best Practices

================================================= 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 <http://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.17.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

2) 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).

3) Configure, build and run the TriBITS test suite

::

$ ./do-configure
$ make
$ ctest -j12

NOTES:

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_).

.. References:

.. _Contributing to TriBITS: https://github.com/TriBITSPub/TriBITS/wiki/Contributing-to-TriBITS

.. _Report them: https://github.com/TriBITSPub/TriBITS/issues

.. _TriBITS System Developer: https://tribits.org/doc/TribitsMaintainersGuide.html#tribits-system-developer