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 pytest
in relevant packages. - Go (CLI): run
go fmt ./...
,go vet ./...
, andgo test ./...
insidecli/
. - Docs: run
nx build docs
to 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
./generate-types.sh
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.md
inside 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!