Contributing¶
Contributions to documentation, examples, tests, infrastructure, and scientific integrations are welcome. For a substantial change, discuss the intended behavior in the relevant package repository before implementation.
Set up a focused development environment¶
Clone core and the public package you intend to change. Use compatible revisions from the version matrix. Install scientific conda dependencies before pip packages when the plugin requires them.
python -m venv .venv
# POSIX shells; on Windows use .venv\Scripts\activate.
source .venv/bin/activate
python -m pip install -e ../caddforge-core
python -m pip install -e ../caddforge-datascience
python -m pip install pytest
python -m pytest ../caddforge-datascience/tests -q
For docs-only work, install requirements.txt and requirements-test.txt in this
repository; core and scientific packages are not needed to render the site.
See documentation maintenance for generation and validation.
Prepare a change for review¶
Keep core independent of scientific tools, use validated configurations and shared
execution/result helpers, and register integrations through public entry points.
Add focused tests for observable behavior, document new interfaces and outputs,
and update version callouts when behavior changes. Use semantic commit messages,
for example docs: add a runnable pipeline tutorial or fix(md): preserve input chemistry.
In the pull/merge request, describe the problem, resulting behavior, validation, scientific assumptions, and compatibility impact. Label heavyweight tests and record prerequisites. Do not include credentials or research data in tests or reports.
Support and community expectations¶
Use the issue tracker of the relevant public package for reproducible bugs and documentation questions. Include a minimal synthetic example, versions, backend, expected behavior, and error output. Discuss scientific validation separately from software failures. The public hosting URL is configured when the project is published; these docs deliberately do not link to unpublished repositories or invent contacts.
Be respectful, give constructive technical feedback, and avoid personal or discriminatory remarks. Project maintainers review contributions and resolve disputes; a formal code of conduct and a monitored reporting route are publication prerequisites. Do not post security-sensitive details in ordinary issues; see security reporting.