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 published to PyPI so downstream projects can pin a
reviewed governance tool version in CI. GitHub Release publication triggers
release validation, including trusted publishing checks, before a release is
treated as ready for downstream use. 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.