Skip to content

Pin toolchains and split CLI orchestration - #45

Merged
itdevwu merged 4 commits into
masterfrom
chore/v0.6.0-groundwork
Nov 13, 2026
Merged

itdevwu merged 4 commits into
masterfrom
chore/v0.6.0-groundwork

Conversation

@itdevwu

@itdevwu itdevwu commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Pin Rust 1.99.1 in rust-toolchain.toml and install it in CI and release jobs, so local, CI, and shipped builds use the same compiler and Clippy. Floating stable previously broke CI when Rust 1.99 added lints.
  • Add environment-pytorch.yml for the PYTORCH_ENV live fixture (Python 3.11, torch 2.3.0, Triton, NumPy 1.x). The compiled-Triton test now checks Dynamo, Triton, and NumPy up front, and falls back to the CUDA link stub only when no unversioned libcuda.so is registered (WSL container runtimes).
  • Split xprobe/cli/src/main.rs (3962 → 866 lines) into args, failure, inventory, live, dev, and render modules with explicit imports. Line-for-line move; no behavior change.

Verification

  • just fmt-check, just lint, just test (153 tests) on the pinned toolchain
  • just test-agent-contract, test-bpf-live, test-cupti-live, test-multisource-live, test-injection-live, test-nvtx-live on RTX 3060
  • test-pytorch-cuda-live passes with the new env and fails fast with an explicit message on a Python 3.12 / torch 2.3 env
  • Fresh env created from environment-pytorch.yml imports torch 2.3.0+cu121, Triton 2.3.0, NumPy 1.26.4 with Dynamo supported

CI and release jobs installed whatever `stable` was current, so Rust
1.99 silently introduced new Clippy lints and changed the compiler that
builds shipped binaries. Pin 1.99.1 in rust-toolchain.toml and install
that toolchain in every workflow so local, CI, and release builds match.
The release live suite depended on an unrecorded local PyTorch env, and
the compiled-Triton case failed late on Python 3.12, missing NumPy, or a
runtime that registers only libcuda.so.1.

Add environment-pytorch.yml (Python 3.11, torch 2.3.0, Triton, NumPy 1.x),
check Dynamo, Triton, and NumPy before starting the workload, and point
Triton at the CUDA link stub only when no unversioned libcuda.so is
registered.
Move clap arguments, command failures, CPU and syscall inventory, live
collection, hidden development commands, and human rendering out of
main.rs into dedicated modules with explicit imports. main.rs keeps the
entry point and the public measure, validate, doctor, and discover flow.
No behavior changes.
@itdevwu
itdevwu merged commit 8c4e482 into master Nov 13, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant