Skip to content

Latest commit

 

History

History
104 lines (63 loc) · 4.28 KB

File metadata and controls

104 lines (63 loc) · 4.28 KB

Contributing to cel-rust

Thank you for your interest in contributing to cel-rust! This document outlines our contribution policies and guidelines.

Before You Start

Feature Requests and New Features

Please open an issue first before working on new features. The project maintainers are moving quickly and making large changes as we work toward full CEL spec compliance. Your PR might:

  • Overlap with existing work already in progress
  • Move in a direction that conflicts with planned changes
  • Be affected by upcoming refactoring

Opening an issue allows us to coordinate and ensure your effort is well-spent. We appreciate your understanding!

Project Priorities

When contributing to cel-rust, please keep in mind our project priorities, in order:

  1. Spec Compliance — Full conformance with the CEL specification is our primary goal. Correctness and compatibility come first.

  2. User Experience — The library should be ergonomic, well-documented, and easy to integrate into Rust projects.

  3. Performance — We care about performance, but not at the expense of correctness or usability.

These priorities guide our decision-making. For example, if a contribution improves performance but breaks spec compliance, we'll prioritize the spec.

AI Assistance Notice

Important

AI-assisted code contributions are allowed but must be disclosed in your pull request.

If you use any kind of AI assistance (e.g., GitHub Copilot, ChatGPT, Claude, etc.) while contributing, you must:

  1. Disclose this in your PR description, including the extent of AI usage (e.g., "Used Copilot for autocomplete" or "Consulted ChatGPT for algorithm design")
  2. Test your changes thoroughly — you are responsible for understanding and validating the AI-generated code
  3. Be able to explain and defend the changes — maintainers may ask questions about the implementation

Example disclosure:

This PR was written with assistance from GitHub Copilot for boilerplate code.

Or:

I consulted Claude to understand the CEL spec requirements, but wrote the implementation myself.

What We Expect

  • Human accountability — You must understand the code you're submitting
  • AI assistance ≠ AI generation — We expect significant human involvement and oversight
  • Code only — AI-generated documentation, commit messages, and PR descriptions should be reviewed and edited by you

What We Don't Accept

  • PRs where the contributor cannot explain or defend the implementation
  • AI-generated responses in issues and discussions (please write in your own words)
  • Completely AI-generated code with no human understanding or testing

Note

Trivial AI features like tab completion don't need to be disclosed. When in doubt, disclose it.

Failure to disclose AI assistance is disrespectful to maintainers and makes it difficult to properly review your contribution. Please be transparent!

Pull Request Guidelines

  1. Open an issue first for features (as noted above)
  2. Keep PRs focused — one feature or fix per PR
  3. Write tests for new functionality
  4. Follow existing code style — run cargo fmt and cargo clippy
  5. Update documentation if you're changing public APIs
  6. Write clear commit messages following the Conventional Commits pattern
  7. Sign off your commits — all commits must include a DCO sign-off (see below)

Developer Certificate of Origin (DCO)

All commits must be signed off with a Developer Certificate of Origin (DCO). This is verified automatically by GitHub Actions.

To sign off your commits, add the -s flag when committing:

git commit -s -m "Your commit message"

This adds a Signed-off-by line to your commit message:

Signed-off-by: Your Name <your.email@example.com>

By signing off, you certify that you have the right to submit the code under the project's license and agree to the Developer Certificate of Origin.

Code of Conduct

Be respectful, constructive, and collaborative. We're all here to build something useful together.

Questions?

If you're unsure about anything, just ask! Open an issue or discussion — we're happy to help.


Thank you for contributing to cel-rust! 🎉