diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..874ca6d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,24 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.4.0] - 2024-XX-YY +### Breaking Changes +- ... + +### Added +- ... + +### Changed +- ... + +### Removed +- ... + +### Fixed +- ... + +### Deprecations +- ... diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6f9379b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,87 @@ +# Contributing to MindlessGen + +**All contributions to MindlessGen are welcome!** + +... no matter if bug fixes, new features, or just typo corrections. + +To shorten the overall development and review process, this page contains are a +few sections that can make your life easier. + +## General Workflow + +To implement your contributions in a local development environment, +we recommend the following workflow: + +1. Clone a [fork](https://github.com/grimme-lab/MindlessGen/fork) of the repository to + your local machine. + +1. Create and activate a virtual python environment using one of the supported + python versions. + +1. Change into the root folder of the cloned repository and install an editable version + including all development dependencies: + ```console + pip install -e '.[dev]' + ``` + +1. Run our tests to verify everything works as expected: + ```console + pytest -vv --optional + ``` + +1. Install our [pre-commit](https://pre-commit.com/) hooks: + ```console + pre-commit install + ``` + +1. Create a new branch for your contribution: + ```console + git checkout -b + ``` + +1. **Implement your changes.** + +1. Optional but recommended to prevent complaints from our CI pipeline: + **Test your code.** + + There are several test environments you can run via `tox`, each corresponding to a + [developer tool](#developer-tools) in a certain Python version. + You can retrieve all available environments via `tox list`. + + If you want to challenge your machine, you can run all checks in all Python versions + in parallel via: + ```console + tox -p + ``` + + This can be considered the ultimate one-stop check to make sure your code is ready + for merge. + +1. Before setting up a pull request for your contribution, include all of the changes in the `CHANGELOG.md` [file](https://github.com/grimme-lab/MindlessGen/blob/main/CHANGELOG.md). + +1. Push the updated branch back to your fork: + ```console + git push origin + ``` + +1. Open a pull request via Github's web page. + +## Developer Tools + +In order to maintain a high code quality, we use a variety of code developer tools. +When following the above described workflow, [pre-commit](https://pre-commit.com/) +will automatically trigger (most) necessary checks during your development process. +In any case, these checks are also conducted in our CI pipeline, which must pass +before your pull request is considered ready for review. +If you have questions or problems, simply ask for advice. + +| Tool | Purpose | +|:------------------------------------------------------------------------------------------------|:------------------------------------------| +| [ruff](https://docs.astral.sh/ruff/) | code linting and formatting | +| [mypy](https://mypy.readthedocs.io/) | static type checking | +| [pytest](https://docs.pytest.org/) | testing | +| [tox](https://tox.wiki/) | orchestrating all the above | +| [coverage](https://pypi.org/project/coverage/) | coverage check and reports | + + +*This code was thankfully taken over from the [BayBE](https://github.com/emdgroup/baybe) code base. diff --git a/README.md b/README.md index ac7d3f8..30a6091 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Mindless Molecule Generator -![CI](https://github.com/marcelmbn/MindlessGen/actions/workflows/ci.yml/badge.svg) +![CI](https://github.com/grimme-lab/MindlessGen/actions/workflows/ci.yml/badge.svg) Apache-2.0 @@ -10,7 +10,7 @@ `mindlessgen` is a Python-based program for semi-automated generation of "mindless" small molecules, as described [here](https://pubs.acs.org/doi/full/10.1021/ct800511q). -The rule-based algorithm places atoms randomly within the coordinate space and applies several optimization, fragment detection, and sanity check steps. The program is mainly controlled via a [TOML](https://github.com/marcelmbn/MindlessGen/blob/main/mindlessgen.toml) configuration file, see below for details. +The rule-based algorithm places atoms randomly within the coordinate space and applies several optimization, fragment detection, and sanity check steps. The program is mainly controlled via a [TOML](https://github.com/grimme-lab/MindlessGen/blob/main/mindlessgen.toml) configuration file, see below for details. ## Installation @@ -47,6 +47,7 @@ Before pushing a commit to the repository, please run also the optional tests, w ``` pytest -vv --optional ``` +For further information how to contribute to this project, please see also the [contribution guidelines](https://github.com/grimme-lab/MindlessGen/blob/main/CONTRIBUTING.md). ## Usage @@ -57,7 +58,7 @@ pytest -vv --optional ``` mindlessgen -h ``` -This command displays all relevant command line options in the terminal. In addition, all commands are accessible via the [TOML](https://github.com/marcelmbn/MindlessGen/blob/main/mindlessgen.toml) configuration file. +This command displays all relevant command line options in the terminal. In addition, all commands are accessible via the [TOML](https://github.com/grimme-lab/MindlessGen/blob/main/mindlessgen.toml) configuration file. When using the program for academic purposes, please cite: