Contributing to WrenAI

June 15, 2026 · View on GitHub

Thanks for your interest in contributing. Pull requests, bug reports, and discussion are all welcome.

Before you start

  • Read the Code of Conduct — it applies to all project spaces.
  • For bugs/feature requests: search existing issues first; for open-ended ideas use Discussions.
  • For larger changes, open a discussion before coding so we can align on direction.

Development per module

Each module under core/ has its own dev setup. Start with the module's own README.md:

ModuleEntry pointStack
core/wren-core/cargo check && cargo testRust + DataFusion
core/wren-core-base/cargo testRust
core/wren-core-py/just install && just testPyO3 + Maturin
core/wren-core-wasm/just build && just testwasm-pack
core/wren/just install && just testPython + uv
skills/See skills/AUTHORING.mdCLI skill authoring

Conventions

  • Commit messages: conventional commits (feat:, fix:, chore:, refactor:, test:, docs:, perf:, deps:). Releases are automated via release-please with independent release lines per module.
  • Rust: format with cargo fmt, lint with clippy -D warnings, format Cargo.toml with taplo.
  • Python: format and lint with ruff (line length 88, target Python 3.11). Both core/wren-core-py and core/wren use uv.
  • Tests must pass and lint must be clean before review. CI is path-filtered per module.

Licensing of contributions

By submitting a pull request, you agree that your contribution is licensed under the same terms as the path it touches:

If a future module is introduced under AGPL-3.0, contributions to that path will be licensed accordingly. See LICENSE for the authoritative path-to-license map.

Reporting security issues

Please do not open public issues for security vulnerabilities. Email contact@cannerdata.com instead. See SECURITY.md for details.