.. _contributor-best-practices: =============================== 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 ------------- 1. **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. 2. **Write tests.** As you commit --------------- 1. Keep commits as "one logical unit". (Easy to do in VSCode) 2. Adhere to `semantic commit conventions `_. 3. Format & lint your code (``make format``). 4. Submit a draft PR so people know you are working on this & can provide advice/feedback early on. As you finalize a PR --------------------- 1. Keep overall PR under <400 LOC (Rule of thumb: 500 LOC takes about 1h to review). 2. Read and fill out the PR checklist. As you review --------------- 1. Foster a positive review culture – we want to learn from each other. Be critical but kind. 2. 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) 3. Keep review time <1h and <500 LOC for focus. Visual Aids ----------- .. image:: _static/best_practices_cognitive_load.png :alt: Good vs Bad Cognitive Load :width: 400px .. image:: _static/best_practices_mental_models.png :alt: Internalized Mental Models :width: 300px More detail ----------- - `Best Practices for Code Review | SmartBear `_ .. raw:: html
PR Hygiene ================= When contributing to this repository, please follow these steps: 1. Clone the repository 2. Create the development environment (see Installation section) 3. Create a new branch for your changes. - Use the following convention to name your branch: `/`. Categories: `feat`, `fix`, `hotfix`, `refactor`, `docs`, `perf`. - Example: `feat/support-rdkit-small-molecule` 4. Make and commit your changes on your new branch. - Run autoformatting tools (`make format`) before committing. - Use commit messages like `: `. Types: `feat`, `fix`, `refactor`, `docs`, `chore`, `wip`. - Example: `git commit -m "docs: add contributing guidelines"` 5. Open a pull request to `main` and describe your changes. 6. Wait for review and merge your changes. For more details, see the README or contact the maintainers.