EU Build and Testing - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Build and testing
Home · BASIC · UO API · A–Z · Examples · Languages
Build requirements
- Windows x64 and 64-bit PowerShell;
- the .NET SDK pinned by
global.json, or a compatible patch in the same feature band; - an available NuGet cache or network access for package restore;
- Node.js and npm when rebuilding the Eclipse Theia payload;
- sufficient disk space for NativeAOT output and both editions.
Use the repository-provided Windows build command from the root of the selected source edition. Its PowerShell implementation performs environment checks, tests, compilation and output validation. Keep global.json and the package lockfiles intact unless you deliberately update and retest the toolchain.
Manual .NET checks
dotnet --version
dotnet restore .\ClassicUO.sln -p:NuGetAudit=false
dotnet test .\tests\ClassicUO.UnitTests\ClassicUO.UnitTests.csproj -c Release
dotnet test .\external\InjectionScript\src\InjectionScript.Tests\InjectionScript.Tests.csproj -c Release
dotnet test .\external\InjectionScript\src\InjectionScript.Lsp.Tests\InjectionScript.Lsp.Tests.csproj -c Release
The full and without-Basic source trees must be restored, built and tested independently. A successful full build does not prove that the without-Basic edition is free of Basic UI or Runtime dependencies.
Rebuild Eclipse Theia
Only required when the IDE frontend or extension changed:
cd .\external\YokoTheia
npm install
npm run build
Do not replace the lockfile or platform versions without rerunning the IDE and language-service checks.
NativeAOT and game data
The release client is validated as a Windows x64 NativeAOT payload. A graphical smoke test requires local Ultima Online data and is intentionally separate because copyrighted game data is not distributed with the source.
Required verification areas
- ClassicUO tests for both editions;
- InjectionScript Runtime tests;
- LSP and IDE tests;
- NativeAOT builds with no compile errors;
- selected AutoLoad persistence per character;
- Basic Auto Load procedure discovery and execution;
- Basic Example storage and execution;
- unnamed and existing-file Save behavior;
- full-document initialization without scrolling;
- Run, Debug, Pause, Continue, Step and Stop;
- parallel scripts and green/yellow/stopped state indicators;
- Runtime/API Manual parity and valid Basic examples;
- localization and without-Basic isolation.
Archive verification
After creating the distribution ZIP:
- extract it into a clean temporary directory;
- compare the file tree and every payload hash with the staging directory;
- rerun native payload probes for both clients;
- publish the ZIP SHA-256 in an adjacent
.sha256.txtfile.
Automated tests do not replace a visual run against a real server. Separately inspect game-data rendering, server gumps, shard-specific packets and features whose data source is the server.