Skip to content

The command line

$ vcraft --help
Command What it does
vcraft new <name> Scaffolds a project: manifest, V source, demo, test, README
vcraft build Runs the generator, compiles the extension and writes a wheel
vcraft develop Builds and installs into the active virtualenv, editable by default
vcraft info Prints what a build would resolve: module, suffix, tag, toolchain
vcraft clean Removes dist/ and the editable build output
vcraft generate-ci Writes a GitHub Actions workflow that builds and checks the wheels
vcraft publish Uploads the built wheels (refuses an editable build)
vcraft toolchain Reports the V compiler vcraft uses and whether it is the pinned one
vcraft toolchain install Builds the pinned V into vcraft's own cache
vcraft version / --version Prints the version

Common flags

Flag Applies to Effect
--release build Optimized build (-prod)
--target <name> build, info Cross target: linux-x86_64-gnu, windows-amd64, …
--platform <tag> build Overrides the wheel platform tag; must agree with --target
--manylinux <ver> / --musllinux <ver> build Claims a Linux distribution policy
--abi3 <version> build One stable-ABI wheel for version and newer
--free-threading build Build against the free-threaded ABI
--interpreter <path> build, info The interpreter to build against
--out-dir <dir> build Where the wheel is written
--dry-run build, develop Print the plan without running it

vcraft info is pure planning: it names the OS, architecture, tag and compiler without touching a toolchain, so it works everywhere, including for a target whose compiler is not installed.

Examples

$ vcraft build --release
$ vcraft build --target linux-aarch64-gnu --manylinux 2_17
$ vcraft build --abi3 3.11
$ vcraft build --interpreter /opt/python/cp312-cp312/bin/python
$ vcraft info --target windows-amd64

See Wheels for tags and policies, and Continuous integration for generate-ci.