Contributions are welcome. Because changes to the specification must be carefully vetted, please open an issue first to discuss proposed changes before submitting a pull request.
- Fork the repository and clone your fork.
- Create a virtual environment and install development dependencies:
pip install -e ".[dev]" - Create a feature branch from
main:git checkout -b my-feature
The project uses Ruff for linting and formatting:
ruff check src/ scripts/
ruff format src/ scripts/Generated files in src/generated/ are excluded from linting.
pytest tests/ -vIf you modify model/cesm_v0.1.0.yaml, regenerate the Python classes:
gen-pydantic model/cesm_v0.1.0.yaml > src/generated/cesm_pydantic.pyValidate the schema:
python scripts/validation/validate_linkml_schema.pyHand-written documentation lives in documentation/modules/. Auto-generated schema documentation is produced from the LinkML schema. Build the full documentation site with:
npx antora antora-playbook.yml- Keep PRs focused on a single change.
- Ensure
ruff checkandpytestpass before submitting. - Provide a clear description of what the PR changes and why.
- Specification changes (schema, data format) require discussion in an issue first.
Adding support for a new modeling tool is one of the most valuable contributions. See the Developer Guide and transformer-developer-guide.md for the architecture and step-by-step instructions.
Use GitHub Issues to report bugs or suggest enhancements. Include:
- A clear description of the problem or idea.
- Steps to reproduce (for bugs).
- Expected vs. actual behavior.