بنقرة واحدة
build
Builds the GenVM project. Use after making code changes to compile Rust binaries.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Builds the GenVM project. Use after making code changes to compile Rust binaries.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
GenVM commit message conventions. Use when writing a commit message, squashing/merging a PR, or amending history. Covers the `type(scope): summary <emoji>` format, the five types, the standard scope set, the gitmoji suffix, and mistakes to avoid (typos, vague "fix CI N").
Read this BEFORE trying to fix a GenVM build that fails on macOS. GenVM is NOT built natively on macOS — building from source on Darwin breaks the deterministic runner-artifact invariant. Use a remote Linux nix-builder instead. Triggers on any build/nix/runner/linker/ar failure on a Mac (Apple Silicon or Intel).
Add RST docstrings to public Python methods/classes. Use when asked to document Python code.
GenVM Rust test conventions and style. Use when writing, adding, or modifying Rust tests — inline `#[cfg(test)] mod tests`, integration tests under a crate's `tests/`, helpers, assertions, and how `ya-test-runner` discovers them.
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/scripts/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.