Skip to content

Build and validate a change

From the repository root, first configure GODOT_BIN as described in developer setup, then run:

Terminal window
./scripts/validate.ps1

The script builds GDCraft.csproj, checks the level-interface migration, then launches the headless validation suite in scenes/world/World.tscn. It stops if the build or migration check fails, so a stale assembly is not used. The full run log is written to the ignored validation.log file.

Use -Filter to run a comma-separated suite or specific test names. For example:

Terminal window
./scripts/validate.ps1 -Filter Redstone
./scripts/validate.ps1 -Filter 'Persistence,Entities' -Continue

The test runner’s current list and names can be inspected from Godot with --test-list; check the validation script’s documented arguments for optional Godot parameters.

  • GODOT_BIN is not set: set it to the Godot 4.7 .NET console executable.
  • Build failure: fix compilation errors before interpreting runtime validation output.
  • Migration check failure: the output identifies block hooks that need the level interface boundary.
  • Assertion or runtime failure: inspect the failure summary and validation.log; verify whether it reproduces in the editor.

After a change, review git diff and ensure only the intended files changed. Update the relevant subsystem guide when ownership or architecture has materially changed. Update docs/CURRICULUM.md when a coherent learning subsystem is complete.