Contributing
Thanks for your interest in contributing to ReaxKit. This guide explains how to propose changes, set up a dev environment, run tests, and update docs.
Code of Conduct
Please be respectful and constructive in all project interactions.
How to Contribute
1) Open an issue (recommended)
Before coding, open an issue describing: - what you want to change - why it is needed - how you plan to implement it
2) Fork and clone
git clone https://github.com/ali-m-dinani/reaxkit.git
cd reaxkit
3) Create a branch
git checkout -b <branch-name>
4) Install for development
pip install -e .
If available:
pip install -e ".[dev]"
5) Make focused changes
- one feature/fix per PR
- avoid unrelated formatting-only edits
6) Run tests
pytest
Add/update tests for your change whenever possible.
7) Commit and push
git add .
git commit -m "Short summary of change"
git push origin <branch-name>
8) Open a pull request
Include: - what changed - why it changed - how to test it (commands + sample inputs)
What You Can Contribute
- Analyzers: analysis tasks and derived quantities (
src/reaxkit/analysis/) - Workflows / CLI: user-facing commands (
src/reaxkit/workflows/) - Docs: guides, references, API pages (
docs/) - Examples: runnable scripts and minimal datasets (
docs/examples/) - Bug reports: minimal reproduction + logs + expected behavior
Contribution Guidelines
Code style and structure
-
[ ] Docstrings: follow Docstring Inclusion Rules.
-
[ ] Code placement
- If analyzer logic becomes generic/reusable, move it to
utils/. - If a utility becomes domain-specific, move it to
analysis/or a focused submodule.
- If analyzer logic becomes generic/reusable, move it to
-
[ ] Workflow boundaries: workflows orchestrate only, while parsing belongs to handlers, and computational logic belongs to analyzers.
-
[ ] Workflow command registration
- Register new/updated commands in CLI routing registries under
src/reaxkit/core/registry/(analysis/generator routing as appropriate). - Update workflow metadata maps under
src/reaxkit/workflows/data/when needed.
- Register new/updated commands in CLI routing registries under
Before submitting a PR
- [ ] If you want to include some figures to the docs, please follow the instructions in this guide.
- [ ] The change has a clear purpose and is explained in the PR.
- [ ] Tests are added/updated where applicable.
Getting Help
If you are blocked: - open an issue with error details, OS, Python version, and minimal inputs - include the exact command and observed output
You can also contact: Dinani@psu.edu.