Contributing#
Note
This is a non-exhaustive list of best practices for contributing code, based on industry standards and our team’s experience.
As you code#
Reduce cognitive overhead: a. Pick meaningful, descriptive variable names. b. Write docstrings (leverage AI!) and comments. c. Follow the Python Zen – explicit is better than implicit, etc.
Write tests.
As you commit#
Keep commits as “one logical unit”. (Easy to do in VSCode)
Adhere to semantic commit conventions.
Format & lint your code (
make format
).Submit a draft PR so people know you are working on this & can provide advice/feedback early on.
As you finalize a PR#
Keep overall PR under <400 LOC (Rule of thumb: 500 LOC takes about 1h to review).
Read and fill out the PR checklist.
As you review#
Foster a positive review culture – we want to learn from each other. Be critical but kind.
Practice light-weight code reviews. Submit something small to atomworks.io/atomworks.ml that fixes a bug / improves documentation / adds a tiny feature to practice this within the next 24h. (Can be less than 30min)
Keep review time <1h and <500 LOC for focus.
Visual Aids#


More detail#
PR Hygiene#
When contributing to this repository, please follow these steps:
Clone the repository
Create the development environment (see Installation section)
Create a new branch for your changes. - Use the following convention to name your branch: <category>/<description>. Categories: feat, fix, hotfix, refactor, docs, perf. - Example: feat/support-rdkit-small-molecule
Make and commit your changes on your new branch. - Run autoformatting tools (make format) before committing. - Use commit messages like <type>: <description>. Types: feat, fix, refactor, docs, chore, wip. - Example: git commit -m “docs: add contributing guidelines”
Open a pull request to main and describe your changes.
Wait for review and merge your changes.
For more details, see the README or contact the maintainers.