en un clic
build
// Builds the GenVM project. Use after making code changes to compile Rust binaries.
// Builds the GenVM project. Use after making code changes to compile Rust binaries.
Add RST docstrings to public Python methods/classes. Use when asked to document Python code.
Runs tests for the GenVM project. Use after making code changes to verify correctness.
Sets up the development environment for GenVM repository. Use when setting up the repo for the first time or when dependencies need to be refreshed.
| name | build |
| description | Builds the GenVM project. Use after making code changes to compile Rust binaries. |
To build the GenVM project:
If ninja fails with missing and no known rule to make it (e.g., after adding/removing/renaming source files), regenerate the build file first:
./configure.rb
This runs the configure.rb Ruby script at the project root, which regenerates build/build.ninja with the current file list.
Build all Rust binaries:
nix develop .#full --command bash .claude/skills/build/run-ninja.sh -C build all/bin
This runs ninja silently and only shows output on failure (to save tokens).
Available ninja targets:
| Target | Description |
|---|---|
all | Build everything |
all/bin | Build all Rust binaries |
all/data | Build data about runners using Nix |
codegen | Run code generation |
Output locations:
out/bin/genvm-modules - modules binaryout/executor/vTEST/bin/genvm - executor binaryRunners can only be built on x86_64 using the all target. On other platforms, download them instead.
Download runners:
nix develop .#full --command python3 build/out/bin/post-install.py --create-venv false --default-step false --runners-download true --error-on-missing-executor false
To develop/modify a runner (e.g., cloudpickle):
Enable dev mode:
Set runners/support/versions/dev-mode.nix to true
Set hash to "test":
In runners/support/versions/current.nix, set the runner's hash to "test"
Make your modifications and run tests With dev-mode enabled and hash set to "test", you can build and run tests.
Disable dev mode:
Set runners/support/versions/dev-mode.nix back to false. The build will now tell you to set hashes to null.
Set hashes to null and build:
Set the runner's hash (and dependent runners' hashes) to null, then build:
nix develop .#full --command ninja -C build all
The build will fail with a hash mismatch showing the new hash.
Update hashes:
Copy the new hash from the error message back into hashes.nix. Repeat for dependent runners.
Rebuild to verify: Run the build again to confirm all hashes are correct.