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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[env]
# Debug DataFusion/Lance projection uses more than the default 2MiB test-thread
# stack, which overflowed canonical event import on Linux CI.
# stack when importing trajectories on Linux CI.
RUST_MIN_STACK = "8388608"
117 changes: 20 additions & 97 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,27 +33,8 @@ jobs:
- name: Rust formatting
run: just fmt-check-rust

rust-clippy-workspace:
name: Clippy / Workspace
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Build Environment
uses: ./.github/actions/setup-build-env
with:
install-nextest: "false"
components: "clippy"

- uses: Swatinem/rust-cache@v2
with:
shared-key: ci-clippy-workspace

- name: Workspace Clippy
run: just clippy-deny

rust-clippy-pchronicle:
name: Clippy / pChronicle Feature Contracts
rust-clippy:
name: Clippy / pChronicle
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -68,8 +49,8 @@ jobs:
with:
shared-key: ci-clippy-pchronicle

- name: Strict pChronicle Clippy
run: just clippy-pchronicle-panics
- name: pChronicle and CLI Clippy
run: just clippy-deny

- name: pChronicle storage feature contracts
run: just clippy-pchronicle-features
Expand All @@ -94,70 +75,13 @@ jobs:
- name: pChronicle Web Clippy
run: just clippy-pchronicle-web

python-lint:
name: Python Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Build Environment
uses: ./.github/actions/setup-build-env
with:
install-rust: "false"
install-nextest: "false"
components: ""

- name: Ruff
run: just lint-py

rust-test:
name: Rust Test / ${{ matrix.platform }} / ${{ matrix.shard }}
name: Rust Test / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- platform: Linux
os: ubuntu-latest
shard: core
packages: >-
persisting-agentctl
persisting-events
persisting-overlaynet
event_control: true
smoke_pchronicle: false
- platform: Linux
os: ubuntu-latest
shard: gateway
packages: persisting-gateway
event_control: false
smoke_pchronicle: false
- platform: Linux
os: ubuntu-latest
shard: pchronicle
packages: >-
persisting-pchronicle
persisting-pchronicle-cli
event_control: false
smoke_pchronicle: true
- platform: macOS
os: macos-latest
shard: capture
packages: >-
persisting-agentctl
persisting-events
persisting-gateway
persisting-overlaynet
event_control: false
smoke_pchronicle: false
- platform: macOS
os: macos-latest
shard: pchronicle
packages: >-
persisting-pchronicle
persisting-pchronicle-cli
event_control: false
smoke_pchronicle: true
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4

Expand All @@ -168,17 +92,12 @@ jobs:

- uses: Swatinem/rust-cache@v2
with:
shared-key: ci-rust-${{ matrix.shard }}

- name: Run ${{ matrix.shard }} tests
run: just ci-nextest ${{ matrix.packages }}
shared-key: ci-rust-pchronicle

- name: Test shared event control contract
if: matrix.event_control
run: just test-events-control
- name: Run pChronicle and CLI tests
run: just test pchronicle

- name: Smoke pChronicle CLI
if: matrix.smoke_pchronicle
run: just smoke-pchronicle-cli

rust-proptest:
Expand Down Expand Up @@ -219,7 +138,10 @@ jobs:
shared-key: ci-pchronicle-web
workspaces: pchronicle-web -> target

- name: Build and test Web crate
- name: Build Web assets
run: just chronicle-web-build

- name: Test Web crate
run: just test-pchronicle-web

s3-contract:
Expand Down Expand Up @@ -312,8 +234,8 @@ jobs:
kill "$(cat "$RUNNER_TEMP/minio.pid")" || true
fi

python-test:
name: Python Test
python:
name: Python Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -328,6 +250,9 @@ jobs:
- name: Sync Python deps
run: just py-dev

- name: Ruff
run: just lint-py

- name: Pytest
run: just test-py

Expand Down Expand Up @@ -360,15 +285,13 @@ jobs:
if: always()
needs:
- format
- rust-clippy-workspace
- rust-clippy-pchronicle
- rust-clippy
- rust-clippy-pchronicle-web
- python-lint
- rust-test
- rust-proptest
- pchronicle-web-test
- s3-contract
- python-test
- python
- examples
runs-on: ubuntu-latest
steps:
Expand Down
28 changes: 0 additions & 28 deletions .github/workflows/pchronicle-benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,34 +91,6 @@ jobs:
--target-dir "${GITHUB_WORKSPACE}/target/pchronicle-benchmark-ci" \
--output "${RUNNER_TEMP}/pchronicle-benchmark/candidate"

- name: Upload benchmark data
if: always()
uses: actions/upload-artifact@v4
with:
name: pchronicle-benchmark-part-${{ github.run_id }}
path: ${{ runner.temp }}/pchronicle-benchmark
retention-days: 30
if-no-files-found: warn

compare:
name: Criterion + hyperfine report
needs: benchmark
if: always()
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout candidate
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Download benchmark data
uses: actions/download-artifact@v4
with:
pattern: pchronicle-benchmark-part-*
path: ${{ runner.temp }}/pchronicle-benchmark
merge-multiple: true

- name: Compare and render report page
shell: bash
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ __pycache__/
crates/persisting-engine/ds/

# Local review, benchmark, and runtime artifacts
.pchronicle-import-wal/
import.log
/data/
/tmp/

Expand Down
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ This exclusion covers, in particular:
workflows

The default active scope is pChronicle, its trajectory CLI and Web UI, and
the Gateway, Control, events, and OverlayNet libraries it depends on.
the data import, storage, conversion, and query pipeline they depend on.
`persisting-dlcapt` is a separate standalone component; excluding it
does not exclude Gateway trajectory capture or pChronicle capture storage.
does not exclude pChronicle trajectory import or storage.

Enter an excluded subsystem only when:

Expand All @@ -44,7 +44,7 @@ required. Do not use incidental cleanup as a reason to broaden scope.
Use `just test` as the default validation command. It runs Rust tests through
`cargo nextest` in debug mode (for faster iteration) and then runs the Python
test suite. To limit Rust coverage to one package, pass its Cargo package name
positionally, for example `just test persisting-agentctl`. The `pchronicle`
positionally, for example `just test persisting-pchronicle-cli`. The `pchronicle`
alias also runs `persisting-pchronicle-cli` (same as the CI pchronicle shard);
use `just test pchronicle-cli` for the CLI crate alone. Use a direct
`cargo test` invocation only when doctests or an explicitly documented special
Expand Down
Loading
Loading