Skip to content

Commit e61cd7f

Browse files
committed
ci: tighten clippy/fmt/doc/audit + add GitHub Actions parity
Brings the workspace to clippy-clean under --all-targets -D warnings, fixes broken benchmark targets, applies cargo fmt across the tree, and mirrors the existing GitLab security/lint/test stages as GitHub Actions so PR authors see the same checks before merge. Clippy/lint fixes (across 15+ crates): - Drop dead Node.level field in HNSW (level info lives in neighbors.len) - Replace x % 2 != 0 with !x.is_multiple_of(2) (zkp.rs, auth.rs) - Derive Default for PrivacyLevel, DriftPolicy, IsolationLevel - Add Default impl for TransactionId, QualityReconciliationStrategy - Rename TransactionId::from_str to from_string (avoids FromStr clash) - Annotate too_many_arguments on octad/drift APIs (refactor would be invasive without semantic gain) - Collapse nested ifs in vql.rs find_where_id, elide lifetimes - Use struct-update syntax in OctadInput / RegenerationConfig builders - Drop &h to h on Sha256::update (h is Copy) - Fix HTTP URL literals in doc comments and unclosed HTML tags Benchmark fixes: - Switch from OxiGraphStore (now feature-gated, KNOWN-ISSUES #24) to SimpleGraphStore — drop-in pure-Rust replacement - Add provenance + spatial stores to InMemoryOctadStore::new() calls (9 modalities now, was 7) - Add verisim-provenance + verisim-spatial path deps to benches/ - Replace black_box(unit_returning_call) with explicit black_box(()) Doc warnings: - Fix unresolved [`AdaptiveTuner`] link in profiler.rs - Backtick the generic in `Version<T>` doc to avoid HTML parse - Use backticks not quotes for example URLs GitHub Actions added (.github/workflows/): - rust-ci.yml: fmt, clippy (all-targets, -D warnings), test, doc (-D warnings via RUSTDOCFLAGS), cargo-audit, bench-compile - elixir-ci.yml: format check, compile --warnings-as-errors, mix test, mix hex.audit, mix deps.unlock --check-unused Dependabot fix: - Correct ecosystem "weeklymix" → "mix" (was a typo, never matched) - Point mix at /elixir-orchestration, npm at /playground (was scanning repo root, finding nothing) - Drop pip + nix entries (no Python or flake files exist) Verification: - cargo test --workspace: 567 passed, 0 failed, 6 ignored - cargo clippy --workspace --all-targets -- -D warnings: clean - cargo doc --workspace --no-deps: clean - cargo bench --no-run: clean https://claude.ai/code/session_01GeiWCLLoZmPdnjMMcy2buu
1 parent a038e26 commit e61cd7f

83 files changed

Lines changed: 3091 additions & 2090 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,13 @@ updates:
2424
update-types: ["version-update:semver-patch"]
2525

2626
# Elixir/Mix
27-
- package-ecosystem: "weeklymix"
28-
directory: "/"
27+
- package-ecosystem: "mix"
28+
directory: "/elixir-orchestration"
2929
schedule:
30-
interval: "daily"
30+
interval: "weekly"
3131

32-
# Node.js/npm
32+
# Node.js/npm — VQL playground
3333
- package-ecosystem: "npm"
34-
directory: "/"
35-
schedule:
36-
interval: "daily"
37-
38-
# Python/pip
39-
- package-ecosystem: "pip"
40-
directory: "/"
41-
schedule:
42-
interval: "daily"
43-
44-
# Nix flakes
45-
- package-ecosystem: "nix"
46-
directory: "/"
34+
directory: "/playground"
4735
schedule:
48-
interval: "daily"
36+
interval: "weekly"

.github/workflows/elixir-ci.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Elixir CI for the orchestration layer: compile, format check, test, audit.
3+
name: elixir-ci
4+
5+
on:
6+
push:
7+
branches: [main, master]
8+
paths:
9+
- "elixir-orchestration/**"
10+
- ".github/workflows/elixir-ci.yml"
11+
pull_request:
12+
branches: [main, master]
13+
paths:
14+
- "elixir-orchestration/**"
15+
- ".github/workflows/elixir-ci.yml"
16+
workflow_dispatch:
17+
18+
env:
19+
MIX_ENV: test
20+
21+
concurrency:
22+
group: elixir-ci-${{ github.ref }}
23+
cancel-in-progress: true
24+
25+
jobs:
26+
build-test:
27+
name: compile + test
28+
runs-on: ubuntu-latest
29+
defaults:
30+
run:
31+
working-directory: elixir-orchestration
32+
strategy:
33+
matrix:
34+
include:
35+
- elixir: "1.17"
36+
otp: "27"
37+
steps:
38+
- uses: actions/checkout@v4
39+
- uses: erlef/setup-beam@v1
40+
with:
41+
elixir-version: ${{ matrix.elixir }}
42+
otp-version: ${{ matrix.otp }}
43+
- uses: actions/cache@v4
44+
with:
45+
path: |
46+
elixir-orchestration/deps
47+
elixir-orchestration/_build
48+
key: ${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-${{ hashFiles('elixir-orchestration/mix.lock') }}
49+
restore-keys: |
50+
${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-
51+
- run: mix deps.get
52+
- run: mix format --check-formatted
53+
- run: mix compile --warnings-as-errors
54+
- run: mix test
55+
56+
audit:
57+
name: hex audit
58+
runs-on: ubuntu-latest
59+
defaults:
60+
run:
61+
working-directory: elixir-orchestration
62+
steps:
63+
- uses: actions/checkout@v4
64+
- uses: erlef/setup-beam@v1
65+
with:
66+
elixir-version: "1.17"
67+
otp-version: "27"
68+
- run: mix deps.get
69+
- run: mix hex.audit
70+
- run: mix deps.unlock --check-unused

.github/workflows/rust-ci.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Rust CI — test, lint, audit, docs on every push and PR.
3+
#
4+
# Mirrors the .gitlab-ci.yml security/lint/test stages so contributors
5+
# using GitHub get the same checks before merge.
6+
name: rust-ci
7+
8+
on:
9+
push:
10+
branches: [main, master]
11+
pull_request:
12+
branches: [main, master]
13+
workflow_dispatch:
14+
15+
env:
16+
CARGO_TERM_COLOR: always
17+
RUST_BACKTRACE: 1
18+
19+
concurrency:
20+
group: rust-ci-${{ github.ref }}
21+
cancel-in-progress: true
22+
23+
jobs:
24+
fmt:
25+
name: rustfmt
26+
runs-on: ubuntu-latest
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: dtolnay/rust-toolchain@stable
30+
with:
31+
components: rustfmt
32+
- run: cargo fmt --all -- --check
33+
34+
clippy:
35+
name: clippy (all-targets)
36+
runs-on: ubuntu-latest
37+
steps:
38+
- uses: actions/checkout@v4
39+
- uses: dtolnay/rust-toolchain@stable
40+
with:
41+
components: clippy
42+
- uses: Swatinem/rust-cache@v2
43+
- run: cargo clippy --workspace --all-targets --no-deps -- -D warnings
44+
45+
test:
46+
name: cargo test
47+
runs-on: ubuntu-latest
48+
steps:
49+
- uses: actions/checkout@v4
50+
- uses: dtolnay/rust-toolchain@stable
51+
- uses: Swatinem/rust-cache@v2
52+
- run: cargo test --workspace --no-fail-fast
53+
54+
doc:
55+
name: cargo doc
56+
runs-on: ubuntu-latest
57+
env:
58+
RUSTDOCFLAGS: "-D warnings"
59+
steps:
60+
- uses: actions/checkout@v4
61+
- uses: dtolnay/rust-toolchain@stable
62+
- uses: Swatinem/rust-cache@v2
63+
- run: cargo doc --workspace --no-deps
64+
65+
audit:
66+
name: cargo audit
67+
runs-on: ubuntu-latest
68+
steps:
69+
- uses: actions/checkout@v4
70+
- uses: rustsec/audit-check@v2.0.0
71+
with:
72+
token: ${{ secrets.GITHUB_TOKEN }}
73+
74+
bench-compile:
75+
name: benchmarks compile
76+
runs-on: ubuntu-latest
77+
steps:
78+
- uses: actions/checkout@v4
79+
- uses: dtolnay/rust-toolchain@stable
80+
- uses: Swatinem/rust-cache@v2
81+
- run: cargo bench --no-run

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

benches/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,5 @@ verisim-temporal = { path = "../rust-core/verisim-temporal" }
2626
verisim-octad = { path = "../rust-core/verisim-octad" }
2727
verisim-drift = { path = "../rust-core/verisim-drift" }
2828
verisim-normalizer = { path = "../rust-core/verisim-normalizer" }
29+
verisim-provenance = { path = "../rust-core/verisim-provenance" }
30+
verisim-spatial = { path = "../rust-core/verisim-spatial" }

0 commit comments

Comments
 (0)