Community

Discussions and Support

Get support from the MOOSE community

Meet our Team

MOOSE Community Guidelines

The MOOSE community is a collaborative environment where users, developers, and researchers can interact, learn, and contribute. To maintain a welcoming and productive atmosphere, we request all members follow these guidelines:

  1. Be Respectful and Inclusive
    • Treat all community members with kindness, courtesy and respect.
    • Avoid personal attacks, harassment, or discriminatory language based on race, gender, ethnicity, nationality, disability, or any other personal characteristics.
    • Encourage participation from newcomers and support users of all skill levels.
  2. Maintain Professionalism
    • Stay on topic.
    • Avoid spamming, self-promotion, or disruptive behavior..
    • Use clear, concise, and respectful language in communications.
  3. Provide Constructive Feedback
    • Offer feedback that is clear, actionable, and respectful.
    • Focus on improving ideas and code, not criticising individuals.
  4. Respect Intellectual Property
    • Attribute work to its original authors when reusing or referencing it.
    • Adhere to copyright and licensing agreements when sharing code, datasets, or other resources.
  5. Safeguard Privacy and Security
    • Do not share sensitive or personal information (yours and others’).
    • Report security vulnerabilities responsibly to maintainers.
  6. Follow Platform-Specific Rules
    • Adhere to any additional rules specific to MOOSE forums, repositories, or communication channels.
  7. Report Violations
    • Report any behavior or content that violates these guidelines to the moderators or administrators.
    • Do so in good faith, and avoid retaliatory or malicious reporting.

By participating in the MOOSE community, you agree to uphold these principles to foster a positive and collaborative environment.

How to Contribute?

We use the fork-and-pull workflow for moose development.

To contribute to the main moose code (moose-core):

  1. Fork the development branch in moose-core repo on github
  2. Make the changes you want to contribute.
  3. Ensure that moose debug build works locally on your version (see build instructions to know how to build moose). Look at the compilation outputs and resolve all errors and warnings.
  4. Check that you are able to install it on your local system without errors.
  5. Check that all tests in the tests directory and its subdirectories pass.
  6. Commit your changes, squashing them locally if there are many small commits
  7. Push your local branch to your fork on github
  8. Create a pull request against the development branch in moose-core repo.

After this the repository admin will check your pull request and merge it to the main branch.

Here are some helpful guides on this type of workflow:

  1. https://github.com/JeremyLikness/git-fork-branch-cheatsheet
  2. https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/

How to add new classes to moose-core

The core of moose is consists of a C++ framework using templates that is used for defining classes. You can find minimal examples of such class definitions in the examples subdirectory in the moose-core source code directory.

How to contribute script/model examples

Please fork the moose-examples repository and add your example there. If it is a short standalone script, add it to the snippets subdirectory, if it is a complex model spanning multiple scripts/model files, please consider creating a new subdirectory with your example.

Bug reports, feature suggestions are also contribution

Please create a new issue on the issue tracker to report bugs or request features.