Imported from rob-luke/conversations (
AGENTS.md). Install upstream withnpx skills add rob-luke/conversations. Copyright stays with the author.
Developer Guidelines
This repository uses a number of automated checks and tools. Follow these guidelines when contributing.
Set Up
- Install development dependencies with
pip install --upgrade hatch.
Coding style
- Format code using black. The
review.ymlworkflow automatically formats and suggests changes. - Write docstrings in NumPy style.
pydocstyleis run via thelint-docstrings.ymlworkflow. - Type annotations are required and checked with mypy via
lint-types.yml. - Ensure spelling with codespell (
lint-spelling.yml).
Tests and Checks
- Run the full test suite with
hatch run cov. - Run linting checks with
hatch run lint - If environments become stale use
hatch env pruneandhatch env show --ascii.
Continuous Integration
- Continuous integration is performed via GitHub actions
- GitHub Actions run tests (
test.yml) on Python 3.10–3.12 using Hatch. - Additional workflows lint commit messages
(
commitlint.yml) and pull request titles (lint-pr.yml). - Documentation is deployed via
deploy-docs.ymlon pushes tomain. - Semantic releases are handled via
release.yml.
Documentation
- Documentation is generated with mkdocs using the
mkdocs-materialtheme andmkdocstringswith NumPy docstring style (seemkdocs.yml).
Expectations for Pull Requests
- Adhere to Conventional Commits for commit messages and PR titles.
- Provide thorough NumPy-style docstrings similar to those
found in
conversations/_conversations.py. - Add or update tests in the
testsdirectory for any code changes. - Run
hatch run covandhatch run lintand ensure all tests and linting pass before committing.