How to contribute to the OMFIT project¶
There are many ways to contribute to OMFIT, which include:
Using OMFIT for your research
Submitting issues and bug reports
Suggesting and discussing ideas
Developing code
Providing documentation and tutorials
Engaging with the broader plasma community and promoting the use of OMFIT
To this end, remember that citing OMFIT in papers, talks, and posters helps increase the visibility of the project and is yet another important way to contribute to OMFIT.
Contributing to the OMFIT source code¶
Contributing to the OMFIT source code requires having access to the OMFIT-source GitHub repository.
A tutorial for contributing to OMFIT using
git
directly (framework, classes, and physics modules) can be found here: (Google docs, PDF)Contributions to the physics modules can be done directly from within the OMFIT GUI (Google docs, PDF)
Develop new modules¶
A guide for developing a module or personal project can be found (Google docs, PDF <Google docs)
Follow this video tutorial for step by step development of a new module.
Development Model¶
OMFIT relies on ``git` for version control. <git_OMFIT>` The inspiration for the OMFIT development model is found here.
There are two main git branches which exist indefinitely on the OMFIT-source GitHub repository:
The master branch exists to hold the ‘stable’ version of OMFIT
The unstable branch is the place where new features and bugfixes come together
Features are first implemented in the unstable
branch then are moved to the master
branch.
Most users should be running on the master
branch, and use the unstable
branch only upon request of the developers to test some specific feature(s).
Each master
release is completed with release notes that summarize the main progress since the past release.
Updating OMFIT’s environment¶
OMFIT relies on a number of external packages and applications. Should a developer need to add to this list or change package requirements such as minimum version number the developer should:
Edit
OMFIT-source/install/omfit_dependencies.yaml
. Follow the pattern in theyaml
file for adding a new dependency. To cover the OMFIT install base, an entry should be made for bothConda
as well as eitherMacports
orpip
. (As Macports uses pip as a backup package source.)In the same file, make sure to increment the last part of the version number at the top of the file. (So 3.0.9 would go to 3.0.10 for example)
(Optional) Run
OMFIT-source/install/generate_install_files.py
to regenerate the package files for different installers.Commit the change to the branch
omfit_env_test
. This is a special branch that will do test builds of potential new OMFIT environments.
Should the tests complete successfully, the environment changes can be merged into unstable
after which the newly built Conda
packages and Docker
images will be uploaded for distribution.
(Macports
portfiles are all handled locally; so while the packages are re-built, they are not uploaded to the cloud.)