Wavenumber Python projects use uv for environment management, dependency locking, builds, and tool execution.
uv sync --all-extras
uv run dev-std audit .
uv run rack run --all
uv run python -m build
uv run twine check dist/*
Commit uv.lock. Do not hand-edit it. CI must fail when the lock
is stale.
wn-dev-std is model-only and is not published to PyPI. It still
builds wheels and sdists so the packaging path is exercised. Projects based
on this standard may opt into PyPI trusted publishing, internal publishing,
or no publishing. The installed command is dev-std;
wn-dev-std remains available as a compatibility alias.
Pure Python packages treat dist/ as transient build output.
Native or binary-backed projects may stage artifacts under grouped paths
such as dist/native/windows-x64/ and
dist/wasm/browser/. Projects using this policy must document
each artifact role, regeneration command, and release inclusion rule.
Mixed-mode projects should run native validation before wheel validation, then install the built wheel in a clean environment and smoke the public Python API plus the bundled command-line executable.
C++ projects use CMake, CTest, Ninja, clang-format, and clang-tidy. The
reference formatter and clang-tidy starter files live under
docs/templates/cpp/. CMake presets must enable
CMAKE_EXPORT_COMPILE_COMMANDS=ON.
Zephyr firmware projects use west, the project-selected Zephyr SDK,
dtc, LLVM tools, Python with Lizard, and any required flashing
tools. The first Zephyr templates live under
docs/templates/zephyr/. App-local build scripts should enable
CMAKE_EXPORT_COMPILE_COMMANDS=ON, run prebuild signoff before
west build, and run postbuild signoff after a successful
build.