GithubHelp home page GithubHelp logo

sebrowne / tribits Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tribitspub/tribits

0.0 0.0 0.0 12.22 MB

TriBITS: Tribal Build, Integrate, and Test System,

Home Page: http://tribits.org

License: Other

Shell 1.98% C++ 0.99% Python 28.22% Perl 12.47% C 0.19% Fortran 0.21% TeX 0.04% Makefile 0.11% HTML 0.67% CMake 55.08% Batchfile 0.04%

tribits's Introduction

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

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 [email protected]: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).

tribits's People

Contributors

bartlettroscoe avatar marcinwrobel1986 avatar achauphan avatar nschloe avatar gsjaardema avatar jmgate avatar kylefromkitware avatar fryeguy52 avatar bradking avatar ibaned avatar e10harvey avatar sethrj avatar wfspotz avatar briadam avatar mperrinel avatar jwillenbring avatar prwolfe avatar dalg24 avatar brian-kelley avatar meriadegp avatar kruger avatar mayrmt avatar jhux2 avatar bkochuna avatar lefebvrera avatar wawiesel avatar tjfulle avatar sebrowne avatar rhoope avatar rppawlo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.