Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
4 changes: 4 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# cargo-nextest configuration
# https://nexte.st/docs/configuration/reference/

[profile.default]
# Hard timeout rule from TESTING.md: every full test run must complete within 120 seconds
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[documentation_implementation_mismatch] (severity 2/5) (confidence 0.80)

TESTING.md specifies that .config/nextest.toml should include 'profile.default.global-timeout = "120s"', but the actual nextest config uses 'slow-timeout = { period = "60s", terminate-after = 2 }' instead of a global-timeout setting. The documentation and implementation are inconsistent.

slow-timeout = { period = "60s", terminate-after = 2 }

[profile.default.junit]
path = "/tmp/junit.xml"
store-success-output = false
Expand Down
3 changes: 3 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh
# Install cargo-nextest (pinned version for consistency with CI)
RUN cargo install --locked cargo-nextest --version 0.9.85

# Install ratchets for code quality checks (pinned version)
RUN cargo install --locked ratchets --version 0.2.4

# Set working directory (must match where source is copied later via add_local_dir)
WORKDIR /app

Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
Expand All @@ -22,16 +23,25 @@ jobs:
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2

- name: Install cargo-nextest
- name: Install cargo tools
uses: taiki-e/install-action@v2
with:
tool: cargo-nextest
tool: cargo-nextest,cargo-deny,ratchets@0.2.4

- name: Check formatting
run: cargo fmt --check

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

- name: Build
run: cargo build --all-targets

- name: Check dependencies
run: cargo deny check

- name: Check code quality (ratchets)
run: ratchets check

- name: Run tests
run: cargo nextest run
36 changes: 20 additions & 16 deletions ratchet-counts.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# Ratchet violation budgets
# These counts represent the maximum tolerated violations.
# Counts can only be reduced (tightened) or explicitly bumped with justification.
#
# Regions:
# "." = global (all code)
# "scripts" = Python helper scripts (modal_sandbox.py etc.)
# "examples/tests" = test fixtures with intentionally "bad" patterns

# Python rules (all zero globally, scripts has exceptions)
[no-args-in-docstrings]
"." = 0

Expand Down Expand Up @@ -39,9 +45,6 @@
"." = 0
"scripts" = 1

[no-expect]
"." = 0

[no-fixme-comments]
"." = 0

Expand Down Expand Up @@ -84,10 +87,6 @@
[no-pandas-import]
"." = 0

[no-panic]
"." = 0
"src" = 1

[no-relative-imports]
"." = 0

Expand All @@ -98,10 +97,6 @@
"." = 0
"examples/tests" = 5

[no-todo-comments]
"." = 0
"src" = 14

[no-trailing-comments]
"." = 0
"scripts" = 6
Expand All @@ -112,15 +107,24 @@
[no-underscore-imports]
"." = 0

[no-unwrap]
"." = 0

[no-while-true]
"." = 0

[no-yaml-usage]
"." = 0

[rust-no-todo-comments]
"src" = 14
# Rust rules (global budgets)
[no-expect]
"." = 0

[no-panic]
"." = 1

[no-todo-comments]
"." = 14

[no-unwrap]
"." = 4

[rust-no-todo-comments]
"." = 14
2 changes: 1 addition & 1 deletion ratchet.toml → ratchets.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[ratchet]
[ratchets]
version = "1"

# Languages to enable (uncomment as needed)
Expand Down
Loading