Contributing
We love contributions—from bug fixes and docs edits to new providers and RAG components. This page summarizes expectations and points you to detailed guides.
Development Basics
- Python: format with
uv run ruff check --fix .; run tests viauv run --group test python -m pytestin relevant packages. - Go (CLI): run
go fmt ./...,go vet ./..., andgo test ./...insidecli/. - Docs: run
nx build docsto ensure the site compiles without broken links.
Workflow
- Fork or create a branch (e.g.,
feat/new-provider). - Make changes—code, schema, docs.
- Run tests/lint commands; capture results for the PR description.
- Open a draft PR with a summary, rationale, and testing notes.
- Iterate with reviewers; keep commits tidy (Conventional Commit style is preferred).
Updating Schemas
If you modify config/schema.yaml or rag/schema.yaml:
cd config
uv run python generate_types.py
cd ..
Re-run relevant tests to ensure generated code compiles and integrations still work.
Adding Documentation
- Place new pages under the most relevant section (
quickstart,cli,configuration,examples, etc.). - Use
index.mdinside directories for Docusaurus categories. - Keep tone concise and practical; update cross-links as needed.
Issue Labels
good first issue– scoped tasks ideal for newcomers.help wanted– contributions welcome; comment if you intend to pick one up.breaking change– coordinate with maintainers before merging.
Community
- Discord for real-time chat.
- Discussions for RFCs or bigger feature proposals.
- Weekly sync details are pinned in Discord.
Thanks for helping grow LlamaFarm!