Repo Tools#
All root-level scripts, utilities, and CLI launchers. Most root scripts are thin wrappers around repo.bat (which
dispatches to tools/repoman/repoman.py).
Root Scripts#
Tool |
Description |
Args |
|---|---|---|
|
Incremental build. Output: |
|
|
Auto-format Python (ruff). Use |
|
|
Lint Python with ruff |
|
|
Build Sphinx documentation. Output: |
(none) |
|
Install pre-commit (format on commit) and pre-push (lint on push) git hooks |
|
|
Remove git hooks |
|
|
Create Python venv at |
(none) |
Linux/Mac equivalents: replace
.batwith.sh.Skip hooks temporarily:
git commit --no-verify/git push --no-verify. Run hooks manually:pre-commit run --all-files.
Lint caveat: lint_code.bat all auto-fixes issues and may report “0 errors” in the repo_lint summary even when
unfixable errors remain. Always check the full ruff output for lines like Found X errors (Y fixed, Z remaining) —
the summary line alone is not reliable.
Common Issues#
Kit cannot initialize Python after worktree cleanup#
If Kit or extension tests crash during startup with failed to get the Python codec of the filesystem encoding, the
shared packman Python install is likely broken. This can happen after cleaning up git worktrees because the default
cleanup path can remove files from the shared packman package cache.
To recover:
Find the packman cache from
PM_PACKAGES_ROOT(defaults toC:/packman-repo).Delete that packman cache directory.
Rebuild from the repo root with:
.\build.bat -x
The rebuild redownloads a valid Kit/Python package set.
Run#
Tool |
Description |
|---|---|
|
Developer mode — extra logging, hot-reload (default for development) |
|
Full Toolkit — test the release experience |
|
Modding Layout (StageCraft) |
|
AI Tools Layout (TextureCraft) |
|
Ingestion Layout (IngestCraft) |
All launchers are in _build\windows-x86_64\release\. If the bat doesn’t exist, run build.bat first.
Launch flag |
Effect |
|---|---|
|
Disable Sentry (avoid creating tickets during dev) |
|
Skip driver-version check on startup |
Repo Subcommands (repo.bat)#
Tools prefixed with repo_ are custom subcommands registered with repo.bat. Run them via repo.bat <subcommand> (
e.g., repo.bat check_changelog). They live in tools/utils/ and are dispatched through tools/repoman/repoman.py.
Subcommand |
Description |
|---|---|
|
Bump versions in |
|
Verify all modified extensions have changelog entries (CI) |
|
Verify |
|
Validate that specified words are not present in code files (CI) |
Standalone Utilities (tools/utils/)#
Tool |
Description |
|---|---|
|
List extensions changed vs. main branch |
|
Sync Pyright config from VSCode |
CLI Launchers (generated in _build/)#
Tool |
Description |
|---|---|
|
Run USD compatibility migrations |
|
Ingestion CLI (headless asset ingestion) |