Welcome, and thank you for your interest in developing OpenMCyclus. This document serves as a guide for making contributions to this archetype library.
OpenMCyclus relies on Cyclus and OpenMC, so familiarity with using both is recommended. Please refer to the Cyclus website and OpenMC documenatation for information about each code.
Contributions to this software are made via GitHub, so familiarity with git is recommended. Resources for installing and using git and GitHub include:
- The git website
- The GitHub docs
- This tutorial on creating pull requests
The general steps for contributing to OpenMCyclus are:
- Create a fork of the OpenMCyclus repository
- Create a new branch on your fork, keeping the main branch clean and up-to-date with the ARFC version of the repository main branch
- Make your desired changes on your new branch
- Make sure all of the tests pass. You can run the tests locally, or they will run in the CI (via GitHub Actions) when you push changes
- When you're finished with your changes and the tests pass, update the CHANGELOG with the changes you've made.
- Issue a pull request into the ARFC repository main branch.
Reviewing pull requests is an important part of development work. When reviewing pull requests please:
- Make sure the code is consistent with the PEP 8 style guide
- Make sure all tests in CI are passing
- Ensure that new tests are added as needed to address new features
- Make positive, constructive comments on the code
Once all conversations are resolved and all tests pass, you are welcome to merge the pull request.
pytest is used for all tests. Tests should be run from the top-level directory of this repository using:
$ pytest tests/
When a new release is ready:
- Update all documentation as needed and issue a PR for this
- git tag -a <version>
- git push upstream main
- git push upstream <version>