SDT/scripts
stan44 2c5493f249
Some checks failed
reliability-matrix / ubuntu-latest / .NET tests (push) Failing after 2m46s
reliability-matrix / macos-latest / .NET tests (push) Has been cancelled
reliability-matrix / windows-latest / .NET tests (push) Has been cancelled
second first push?
2026-03-01 21:40:14 -06:00
..
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 21:40:14 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 20:52:56 -06:00
2026-03-01 21:40:14 -06:00
2026-03-01 21:40:14 -06:00

Scripts (Python-first, cross-platform)

This folder now uses Python as the default runtime for orchestration and diagnostics.

Preferred scripts

  • diag.py: tool probing and install-plan generation (dotnet, python, node, npm, cargo, tauri)
  • build.py: normalized build actions used by SDT workflows
  • dev_shell.py: cross-platform shell bootstrap export/doctor helper
  • dotnet-min.py: resilient dotnet wrapper with local cache env
  • pip-min.py: resilient pip wrapper with local cache env and repo-local target default
  • npm-clean.py: remove node_modules cross-platform
  • migration-gate.py: build/test quality gate
  • nuget-export-cache.py: archive .nuget cache
  • nuget-import-cache.py: restore .nuget cache from archive
  • publish-app.py: build web or tauri app (cross-platform)
  • publish-sidecar.py: publish sidecar .NET service
  • publish-webgateway.py: publish gateway .NET service and optional web assets
  • run-webgateway.py: run gateway in dev or published-output mode
  • publish-output.py: orchestrate sidecar/web/gateway/desktop publish steps
  • sync-output.py: sweep newest build artifacts into output/
  • script_common.py: shared helpers (repo root resolution, env shaping, command runner)
    • project.rootHints supports glob markers (for example *.sln) and directory/file markers (.git, package.json)
    • Windows PATH token expansion (%NVM_HOME%, %NVM_SYMLINK%, etc.) is applied during command resolution

Shell bootstrap wrappers

  • dev-shell.ps1: PowerShell wrapper over dev_shell.py
  • dev-shell.sh: bash/zsh wrapper over dev_shell.py
  • dev-shell.cmd: cmd wrapper over dev_shell.py

Legacy scripts

Existing .ps1 entrypoints are now compatibility wrappers that forward to Python scripts. script-common.ps1 is legacy-only compatibility and not used by active SDT workflows.

Original PowerShell implementations are archived under scripts/legacy/ as *.legacy.ps1 for reference during transition.

Root Hint Semantics

project.rootHints is evaluated in this order:

  1. Exact marker exists at candidate root (file or directory)
  2. Root-level glob match (glob)
  3. Recursive glob match (rglob)

Examples:

  • "*.sln"
  • ".git"
  • "package.json"
  • "src-tauri/tauri.conf.json"

Quick usage

python scripts/diag.py probe --tool dotnet --json
python scripts/dotnet-min.py build
python scripts/migration-gate.py
python scripts/nuget-export-cache.py --output-zip nuget-cache-export.zip
python scripts/nuget-import-cache.py --input-zip nuget-cache-export.zip
python scripts/npm-clean.py --working-dir .
python scripts/dev_shell.py export --shell pwsh --json
python scripts/dev_shell.py doctor