Skip to main content

Contributing to ROSQL

ROSQL is in early development (v0.1) and contributions are very welcome. Whether you're fixing a bug, adding a feature, improving docs, or just kicking the tires — thank you.

Prerequisites

  • Rust (stable, 1.80+) — rustup.rs
  • protoc — required for proto code generation (brew install protobuf on macOS, apt-get install protobuf-compiler on Debian/Ubuntu)
  • buf (optional) — for proto linting: buf.build
  • just (optional) — command runner: just.systems

Getting started

git clone https://github.com/RobotOpsInc/rosql
cd rosql
just build # or: cargo build
just test # or: cargo test

Build variants

# Default: parser + drivers (no networking, no WASM)
cargo build

# WASM package (for frontend editors)
cargo build --target wasm32-unknown-unknown --features wasm

# gRPC server + CLI binary
cargo build --features server --bin rosql

Running checks

just check       # runs build + test + clippy + fmt + buf-lint

Or individually:

cargo test
cargo clippy -- -D warnings
cargo fmt --check
buf lint proto/

Submitting changes

  1. Fork the repo and create a feature branch from development
  2. Make your changes
  3. Run just check and ensure everything passes
  4. Increment the version using just bump-version [major|minor|patch]
  5. Open a pull request against development

Proto development

Proto files live in proto/rosql/v1/. When you modify a .proto file:

  1. cargo build — regenerates Rust types via prost-build
  2. buf lint proto/ — validate proto style compliance
  3. cargo test — ensure generated types compile and tests pass

Reporting issues

File bugs and feature requests in the issue tracker. For questions, email devs@robotops.com.

Full CONTRIBUTING.md: github.com/RobotOpsInc/rosql/blob/main/CONTRIBUTING.md

By contributing, you agree that your contributions will be licensed under the Apache 2.0 license.