Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 37 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Install protoc
run: sudo apt-get update && sudo apt-get install --yes protobuf-compiler

- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2

Expand All @@ -45,11 +48,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install protoc
run: sudo apt-get update && sudo apt-get install --yes protobuf-compiler

- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2

Expand All @@ -59,16 +65,44 @@ jobs:
- name: Run tests
run: cargo test --workspace --locked

jepsen:
name: Jepsen harness
runs-on: ubuntu-latest
defaults:
run:
working-directory: jepsen
steps:
- name: Checkout code
uses: actions/checkout@v7

- name: Setup Java
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21

- name: Install Leiningen
run: sudo apt-get update && sudo apt-get install --yes leiningen

- name: Check Jepsen harness
run: lein check

- name: Test Jepsen harness
run: lein test

docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install protoc
run: sudo apt-get update && sudo apt-get install --yes protobuf-compiler

- name: Cache cargo dependencies
uses: Swatinem/rust-cache@v2

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
fetch-depth: 0

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ jobs:
issues: write
checks: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- uses: EmbarkStudios/cargo-deny-action@v2

cargo-audit:
name: cargo-audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Install cargo-audit
run: cargo install cargo-audit
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/typos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
name: Spell Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Check spelling
uses: crate-ci/typos@v1
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ Thumbs.db
# Node (commitlint)
node_modules/
package-lock.json
jepsen/store/
jepsen/target/
jepsen/c9-linux-*
jepsen/.lein-failures
jepsen/.nrepl-port

# LLM tooling
**/.agent/
Expand Down
16 changes: 9 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ This project adheres to a code of conduct that all contributors are expected to

### Prerequisites

- **Rust**: 1.75.0 or later (install via [rustup](https://rustup.rs/))
- **Rust**: 1.95.0 or later (install via [rustup](https://rustup.rs/))
- **protoc**: Required to generate the Connect RPC types
- **Git**: For version control
- **Cargo tools**:
```bash
Expand All @@ -30,10 +31,10 @@ cargo build

```bash
# Single-node instance
cargo run --bin c9
cargo run --bin c9 -- start --config cloud9.example.toml

# With debug logging
RUST_LOG=debug cargo run --bin c9
RUST_LOG=debug cargo run --bin c9 -- start --config cloud9.example.toml
```

## Testing
Expand Down Expand Up @@ -254,14 +255,15 @@ Cloud9 follows [Conventional Commits](https://www.conventionalcommits.org/):
- `docs`: Documentation changes
- `chore`: Build, CI, or tooling changes

**Scopes**: `kv`, `raft`, `txn`, `sql`, `hlc`, `sim`, `ci`
**Scopes**: `core`, `consensus`, `storage`, `node`, `proto`, `ci`, `deps`,
`docs`

**Examples**:
```
feat(txn): implement commit-wait for external consistency
feat(core): implement bounded-time commit-wait

Add HLC-based commit-wait that delays transaction acknowledgment
until all replicas have passed the commit timestamp.
Reject unhealthy time intervals and delay acknowledgment until the commit
timestamp is certainly in the past.

Closes #123
```
Expand Down
Loading
Loading