TODO: Create a suitable place for questions/discussion (eg. Discord).
Before opening an issue:
- Ensure this is a bug! While we make an effort to provide a robust and clear tool there are many nuances that still exist. Please view the FAQs on the wiki and other documentation to ensure the behavior is truly unexpected.
- Ensure the bug was not already reported by searching on GitHub under Issues.
If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description and as much relevant information as possible, but at least the following:
- OS type and version where the bug occurs (eg. Ubuntu 20.04)
- CPU for machine where bug occurs (eg. Apple M2)
- Whether you are using a binary or built the code from source
Additionally, if at all possible please include sample code or input files that reproduce the bug and/or unexpected behavior. If you do not want to provide example code on GitHub but would be willing to share privately with a developer, please note this in the issue so a developer may contact you.
Please note that in general feature suggestions/requests will not be able to be supported unless a developer is willing to volunteer or the feature is already within the scope of a developer's planned work. Therefore features should only be suggested if the requesting party is planning to primarily develop the feature themselves.
Before opening an issue:
- Ensure the feature is not already planned by searching on GitHub under Issues.
If you unable to find an open issue related to the suggested feature and you plan to primarily develop the feature yourself, open a new issue with the enhancement
tag.
All contributions to OFT should be made via pull requests from a fork of the main repository. Specific guidance on types of pull requests is given below, but in general all pull request should include the following:
- A detailed description of the changes being made and why they are being made
- Any ancillary changes to the core code that were required for these changes
- State explicitly whether or not the changes modify any APIs or input files
Before requesting a merge of your fix, please ensure the following:
- You have run the regression tests on your local platform and the fix did not cause any new failures
- If the new code adds new module variables, adds new subroutines/functions, or changes a subroutine/function signature, ensure that all changes are documented for inclusion in the Doxygen-generated documentation.
- If the bug was a result of an untested edge (but reasonable) case and/or your code adds or changes functionality, ensure that it has a regression test that covers its functionality in at least some way
Once the above is satisfied,
- Open a new GitHub pull request with the patch.
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
Suggest your change as a new issue with the enhancement
tag. Although you are free to start writing code and testing ahead of time, if you'd like feedback first please provide at least one week for response from one of the main developers.
Before requesting a merge of your fix, please ensure the following:
- Ensure that only changes necessary for the feature or change to function properly are included in the patch
- You have run the regression tests on your local platform and the fix did not cause any new failures
- Please ensure that all changes are documented for inclusion in the Doxygen-generated documentation.
- Please ensure that it has a regression test that covers its functionality in at least some way
When ready to merge, open a new GitHub pull request with the patch. Be sure to monitor the result of the CI builds for your new pull request and, if possible, fix any issues that arise in the initial builds.
- Please read writing documentation for OFT or adding an example to OFT.
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of the Open FUSION Toolkit will generally not be accepted.
The Open FUSION Toolkit is a community effort. We encourage you to pitch in in any way you can!
Thanks! ☀️ ❤️
The Open FUSION Toolkit Team
Daniel Burgess (@d-burg)
Sophia Guizzo (@sguizzo)
Chris Hansen (@hansec)
Francois Logak
Matthew Pharr (@matt-pharr)
Thomas Benedett
Alan Kaptanoglu
George Marklin
Derek Sutherland