| # Contributing to BatteryMHM |
|
|
| Thanks for your interest in the Miller Harmonic Method! Contributions of all |
| kinds are welcome — bug reports, new examples, benchmark reproductions, |
| documentation, and feature ideas. |
|
|
| ## Ground rules |
|
|
| - This project is released under **CC BY-NC 4.0** and the method is **patent |
| pending** (see [`LICENSE`](LICENSE)). By contributing, you agree your |
| contribution is licensed under the same terms. |
| - Keep the harmonic core (`batterymhm/algebra.py`, `atomic.py`) faithful to the |
| published method. Changes to the fold map, the Chi matrix, or the operations |
| should come with a clear rationale and tests. |
| - No proprietary data and no trained weights in the repository. |
|
|
| ## Development setup |
|
|
| ```bash |
| git clone <your-fork-url> |
| cd batterymhm |
| python -m pip install -e ".[dev]" |
| ``` |
|
|
| ## Before you open a pull request |
|
|
| ```bash |
| ruff check . # lint |
| pytest -q # tests must pass |
| python demo.py # the demo must still run and PASS |
| ``` |
|
|
| - Add or update tests for any behavior change (`tests/`). |
| - Keep functions small and documented; match the existing style. |
| - Update `CHANGELOG.md` under "Unreleased". |
|
|
| ## Reporting bugs / requesting features |
|
|
| Open an issue using the templates in `.github/ISSUE_TEMPLATE/`, or start a |
| discussion on the Hugging Face model page. Please include a minimal |
| reproduction and your Python / NumPy / scikit-learn versions. |
|
|
| ## Reproducing benchmarks |
|
|
| The published Severson (cell SOH) and Matbench (formation energy) numbers are |
| reproducible with this method plus the public datasets linked in the README. |
| If your reproduction differs, please open an issue with your exact setup — we |
| care a lot about honest, reproducible numbers. |
|
|