Skip to content

Latest commit

 

History

History
116 lines (83 loc) · 3.16 KB

File metadata and controls

116 lines (83 loc) · 3.16 KB

Contributing to AI Grid

Thank you for your interest in contributing to AI Grid! We welcome contributions of all kinds: code, documentation, bug reports, and feature proposals.

Prerequisites

  • Rust stable 1.96+
  • Rust nightly (for rustfmt)
  • Docker 29.3.0+ or Podman (for container builds)

Getting Started

  1. Fork the repository and clone your fork
  2. Install pre-commit hooks: make setup-hooks
  3. Build the project: make build
  4. Run the tests: make test

Quick Reference

make build          # workspace build
make test           # all tests
make fmt            # format with nightly rustfmt
make lint           # clippy + fmt check + machete
make doc            # build docs with warnings denied
make audit          # cargo audit + cargo deny check

Developer Certificate of Origin

WARNING: TBD - not currently in effect, we're waiting on CNCF sandbox submission.

All commits must be signed off per the Developer Certificate of Origin (DCO). This certifies that you have the right to submit the contribution under the project's license.

Sign off by adding -s to your commit command:

git commit -s -m "your commit message"

This adds a Signed-off-by trailer with your name and email. Commits without sign-off will be rejected by CI.

Pull Request Process

  1. Open an issue first for non-trivial changes.
  2. Create a feature branch from main.
  3. Keep commits focused. Each commit should be a single logical change.
  4. Run lint and tests locally before submitting: make lint && make test.
  5. Submit a pull request with a clear description of the change and its motivation.

Commit Messages

  • Subject line: imperative mood, under 50 characters
  • Body: wrap at 72 characters, explain why not what
  • Reference issues: Fixes #123 or Relates to #456

Code Style

AI Grid enforces a strict coding style. Key points:

  • #![deny(unsafe_code)] in all crate roots
  • Clippy with -D warnings (zero tolerance)
  • Format with cargo +nightly fmt
  • Errors via thiserror, logging via tracing
  • Comments answer "why?", never "what?"

Testing Requirements

New capabilities require:

  1. Unit tests covering the implementation
  2. Integration tests proving end-to-end behavior

A feature without tests is not complete.

Code Responsibility

Every contributor is responsible for the code they submit, regardless of how it was produced. All code must be human-reviewed before submission or merging.

Pull requests from bots (other than dependabot) will not be accepted. If AI tools assist with implementation, the submitter must review every line of the diff and be able to explain every change.

Signed-off commits represent your assertion that you have reviewed and fully understand the changes you are submitting.

Communication

Code of Conduct

All participants must follow the CNCF Code of Conduct.