Contributing to OntoCast¶
We welcome contributions! This document provides guidelines for contributing to the project.
Getting Started¶
- Fork the repository on GitHub
- Clone your fork locally
- Install development dependencies:
- Install pre-commit hooks:
Development Workflow¶
-
Create a branch for your feature or bugfix:
-
Run tests:
Export variables from.envbefore pytest when integration tests need external services (QDRANT_URI,FUSEKI_URI, etc.). -
Build docs locally after doc or API changes:
-
Commit, push, and open a Pull Request
Documentation¶
- User-facing guides live in
docs/(MkDocs). Updatemkdocs.ymlnav when adding pages. - API reference under
docs/reference/is generated at build time bydocs/gen_pages.pyfrom Python modules. Do not commit hand-written reference stubs; add docstrings in code instead. - Workflow diagrams in
docs/assets/graph*are generated byuv run plot-graph(requires optionalpygraphvizfor PNG/SVG). - Keep
README.mdconcise; put detailed explanations indocs/. - Update
CHANGELOG.mdfor user-visible changes.
Code Style¶
- Python 3.12+ with type hints everywhere
- Follow PEP 8; use
pydantic.BaseModelfor structured data in the library - Google-style docstrings on public APIs
- Match existing naming and patterns in the module you edit
Pull Request Checklist¶
- Tests pass (
uv run pytest test) - Docs build (
uv run mkdocs build) when docs or public API changed CHANGELOG.mdupdated for notable changes- Clear PR description with problem and solution
Reporting Issues¶
Include Python version, OntoCast version, steps to reproduce, expected vs actual behavior, and relevant logs.