Coder Social home page Coder Social logo

rhessys's Introduction

RHESSys - The Regional Hydro-Ecologic Simulation System

Github is the new home for the RHESSys code repository.

The project homepage is at http://fiesta.bren.ucsb.edu/~rhessys/

The old SVN repository was at http://sourceforge.net/projects/rhessys/

Branches

The "develop" branch should be used for day-to-day development, with RHESSys releases pushed to the "master" branch periodically (for example yearly).

Continuous Build and Test

We are using Travis-CI (http://travis-ci.org) to host our continuous integration efforts. Continuous integration helps us run our test suite upon every commit to this repository and let us know if and when we break the build.

The current build status is: Build Status

The above icon should be clickable and point to the latest build at Travis-CI: https://travis-ci.org/RHESSys/RHESSys

The .travis.yml configuration file defines how this project is hooked to Travis-CI. Github has a post-commit hook that is fired upon every commit to this repository. This post-commit hook uses an authentication token to login to Travis-CI and run the configured steps on a virtual machine. A return value of 0 means success and generates a 'green' status indicator (hopefully illustrated in the previous paragraph).

While the code is successfully compiling and running, there are a significant number of compiler warnings at this time:

$ GISBASE=/usr/lib/grass64 make 2>&1 | grep warning | wc -l
1233

Tests

The Create Flowpaths subproject has a growing suite of tests that can be run via make test. Tests are defined as .c files in the cf/test/src directory and will automatically get compiled and run by the make test target.

Code Coverage

The Create Flowpaths subproject also has a code coverage script. This script will use gcov and lcov to generate an HTML coverage report and show where more tests are needed by illustrating which lines of code are not being exercised by the existing tests.

Run the code coverage script:

cd cf/
./generate_coverage.sh

This will generate an HTML report in the newly formed cf/coverage_report/ directory. This new directory can be copied to a webserver or opened directly in your web browser.

Static Analysis

RHESSys can be analyzed by cppcheck in a few seconds with the following command:

cppcheck . --quiet

OR to see the output, and save the errors out to a textfile:

cppcheck . 2> err.txt
cat err.txt

$ wc -l err.txt
16

Static analysis will show things like memory leaks, out-of-bound references, and null pointers. It is generally assumed a good thing to have your code be "static analysis clean".

rhessys's People

Contributors

aubreyd avatar esgarcia avatar hcjiv1 avatar jschoate avatar naomitague avatar sbpcs avatar selimnairb avatar trel avatar xiaoli-chen avatar

Watchers

 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.