Abstract

For the past several years, Idaho National Laboratory’s MOOSE framework team has employed modern software engineering techniques (continuous integration, joint application/framework source code repos- itories, automated regression testing, etc.) in developing closed-source multiphysics simulation software (Gaston et al., Journal of Open Research Software vol. 2, article e10, 2014). In March 2014, the MOOSE framework was released under an open source license on GitHub, significantly expanding and diversifying the pool of current active and potential future contributors on the project. Despite this recent growth, the same philosophy of concurrent framework and application development continues to guide the project’s development roadmap. Several specific practices, including techniques for managing multiple repositories, conducting automated regression testing, and implementing a cascading build process are discussed in this short paper. Special attention is given to describing the manner in which these practices naturally synergize with the GitHub API and GitHub-specific features such as issue tracking, Pull Requests, and project forks.

Highlights

  • Slaughter, A E et al 2015 Continuous Integration for Concurrent MOOSE Framework and Application Development on GitHub

  • The MOOSE framework and its applications were developed concurrently within a single SVN repository hosted at the Idaho National Laboratory (INL)

  • That the framework has been moved to GitHub, the continuous integration process requires that MOOSE-based applications hosted in GitHub repositories and the INL-hosted Git repositories—which naturally have different owners, permissions, and levels of accessibility—interoperate seamlessly with the MOOSE framework repository on GitHub

Read more

Summary

Pull Request Testing

Proposed changes are checked for adherence to coding standards, compiled, and tested—before being merged into the repository—on various compilers and in various configurations (valgrind, debug, MPI, threaded). Test results are reported as comments and continuous integration status updates [11] on the Pull Request. If a frameworklevel test fails, the Pull Request will most likely not be merged as-is, and the author will need to address the failures. The failure of an application-level test may or may not prevent the merge, depending on the way MooseBuild is configured

Review
Documentation Updated
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call