Repository navigation
Tags
Tags
Build and test all seven components from one tree A Nix flake builds every component from its own pyproject.toml, so the derivations follow upstream as the trees move. The hand-maintained parts are the native wiring (Rust for angr, CMake for pyvex and pypcode), an exact-version table for the few third-party pins whose version changes behaviour, and the handful of packages nixpkgs does not carry. Four of those are packaged here rather than skipped, because skipping each one costs real coverage: pyxdia, without which five of cle's PE tests fail quietly on a PDB that cannot be read; and pydantic-ai, mcp and fastmcp, which angr's optional llm extra needs and which tests/llm and tests/mcp import. Nothing is deselected — every test each component ships is run. One workflow warms the whole closure once, publishes it as a Nix binary cache through an actions/cache entry with a GitHub release behind it, and then runs fourteen test jobs against it in parallel. angr is sharded ten ways with pytest-split against recorded per-test timings, so the stage costs what its slowest shard costs rather than what its slowest suite costs. ci/dev-setup.sh installs every component into a .venv as an editable, so the source tree is what runs while you are working on it, and the Nix-built packages are what CI tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>