Contribute
How to contribute to KIMMDY
Setup
See Installation.
For new plugins, make a separate repo, and add your entrypoint in the pyproject.toml
to the kimmdy.reaction_plugins
entrypoint:
[project.entry-points."kimmdy.reaction_plugins"]
my_reaction = "kimmdy_my_reaction.reaction:My_Reaction_Class"
Code Style
Doc strings in numpy style, formatting using black
.
Docs and Examples
You can add labels to PR’s to trigger CI to rebuild the documentation or the examples
directory. Just add the docthis
or build_examples
label.
PR’s
KIMMDY uses conventional commits and semantic versioning, automated via release please.
PR’s should contain single changes/fixes. To keep the commit history clean we use squash and merge
to merge PR’s.
If a PR unavoidably contains multiple changes the message, rebase instead of squashing your commits to ensure release please
picks up all changes. Optionally, clean up your commit history with interactive rebasing.
The following example message (first line is the title in the GitHub UI, the rest is the body in the window below):
feat: this is a release-please test
It should add 3 features and a 2 fixes
Maybe this first body is the important
part of the commit message
fix(ci): release please adds all the things
BREAKING-CHANGE: does this work?
feat(ci): update encode to support unicode
do I add a body here?
feat(ci): what if this doesn't have a body?
fix(ci): or this?
Generates the following changelog:
:robot: I have created a release *beep* *boop*
---
## [4.0.0](https://github.com/graeter-group/kimmdy/compare/v3.6.0...v4.0.0) (2023-08-11)
### ⚠ BREAKING CHANGES
* **ci:** does this work?
### Features
* **ci:** update encode to support unicode ([d9f16ad](https://github.com/graeter-group/kimmdy/commit/d9f16adb7470479a9e700ffd86597784caa2afe7))
* **ci:** what if this doesn't have a body? ([d9f16ad](https://github.com/graeter-group/kimmdy/commit/d9f16adb7470479a9e700ffd86597784caa2afe7))
* this is a release-please test ([d9f16ad](https://github.com/graeter-group/kimmdy/commit/d9f16adb7470479a9e700ffd86597784caa2afe7))
### Bug Fixes
* **ci:** or this? ([d9f16ad](https://github.com/graeter-group/kimmdy/commit/d9f16adb7470479a9e700ffd86597784caa2afe7))
* **ci:** release please adds all the things ([d9f16ad](https://github.com/graeter-group/kimmdy/commit/d9f16adb7470479a9e700ffd86597784caa2afe7))
---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Releases
KIMMDY uses release-please
to create releases. PR’s to main
must use conventional commits. release-please
creates a new PR collecting the changelog and version bumps. To make a new release, merge this chore(main): release
PR into main. This triggers the bot to create the release.
Fixes increase the third digit of the version, features the second. To create a new major version, mark a commit as breaking
by adding a !
like: feat!: new big version
, fix!: Fix breakes old things
.
Local testing of github-actions
For developoment, we provide a docker image containing gromacs and multiple python versions to test against.
To run the test locally, you must:
- install docker
- install act, easiest option is with github cli
- install github cli (
gh
) gh extension install https://github.com/nektos/gh-act
- install github cli (
- run tests with
gh extension exec act -j test --artifact-server-path ./artifacts
- customize which python versions to test in
tox.ini
- html coverage report is exported into
artifacts
- customize which python versions to test in