8 Entwicklung und Build
Timo Bannier edited this page 2026-10-12 02:37:28 +02:00

Entwicklung und Build

Stand: App/Plugin 0.13.18, 12.10.2026.

Voraussetzungen

  • Windows 10/11 x64
  • Git
  • .NET SDK 10 aus global.json
  • Visual Studio oder Microsoft Build Tools mit zum SDK passenden Werkzeugen
  • Desktopentwicklung mit .NET und C++
  • CMake
  • SCS SDK 1.15
  • Inno Setup 6 als Projektvorgabe; letzter Build mit Inno Setup 7.1.0 erfolgreich

Repository klonen

git clone ssh://git@git.bastelhof.srv64.de:2222/Bastelhof/TruckSimLogBook.git
cd TruckSimLogBook

App bauen

$env:DOTNET_CLI_HOME = Join-Path (Get-Location) '.dotnet'
dotnet restore TruckSimLogBook.sln
dotnet build src\TruckSimLogBook\TruckSimLogBook.csproj `
  -c Debug -p:Platform=x64

Tests

Prüfstand 12.10.2026, 0.13.18: 104 .NET-Tests bestanden, nativer CTest plugin_sdk_roadtrip bestanden. Release-Prüfsummen je Build prüfen. Reale Kosten-Testfahrten und neue Bildschirmaufnahmen bleiben offen. Auch die neue Schadens-/Verschleißabnahme bleibt offen. Lokale geprüfte Toolchain: .NET SDK 10.0.401, Visual Studio 2026/MSVC 19.51, Windows SDK 10.0.26100.

dotnet test src\TruckSimLogBook.Tests\TruckSimLogBook.Tests.csproj `
  -c Release -p:Platform=x64

Plugin bauen

cmake -S src\TruckSimLogBook.Plugin `
  -B src\TruckSimLogBook.Plugin\build -A x64 -DBUILD_TESTING=ON
cmake --build src\TruckSimLogBook.Plugin\build --config Release
ctest --test-dir src\TruckSimLogBook.Plugin\build -C Release --output-on-failure

Das Ergebnis ist TruckSimLogBook.Plugin.dll. Für einen Feldtest wird es in den bin\win_x64\plugins-Ordner des jeweiligen Spiels kopiert.

Setup bauen

.\scripts\build.ps1 -Configuration Release
.\scripts\verify-release.ps1

Das Skript veröffentlicht App und Plugin, erstellt Setup und Feldtest, übernimmt Dokumentation und erzeugt SHA-256-Prüfsummen unter build\trucksim_logbook\<Version>.

Nur dieser versionierte Ordner ist ein Release. installer\out wird intern als temporäres Staging verwendet und darf nicht veröffentlicht werden.

Screenshots und App-Tour

Die vorhandene App-Tour ist archiviert, nicht der aktuelle Stand von 0.13.18. Neue echte Aufnahmen benötigen eine verfügbare interaktive Windows-Sitzung und einen geprüften Build. Das bestehende Aufnahmeskript liegt im Hauptrepository:

.\scripts\capture-app-tour.ps1 -Configuration Debug -FrameDelayMs 1800

Danach werden docs\media\app-tour und wiki\media\app-tour synchronisiert, und unter Bilder mit Version, Herkunft und Aufnahmedatum dokumentiert. Vor Veröffentlichung Profil-, Webhook- und echte Tourdaten anonymisieren. Schaubilder nicht als Bildschirmaufnahmen ausgeben.

Versionierung

Das Projekt verwendet während der Beta ein Schema wie V0.13.18 (Experimental Beta). Versionsstände müssen in App-Projekt, Installer, Changelog und Dokumentation konsistent bleiben. Hilfsskript:

.\scripts\bump-version.ps1 -Part beta

Weitere Entwicklerdokumente

Im Hauptrepository:

  • docs\development\programming-guide.md
  • docs\architecture\plugin-integration.md
  • docs\architecture\overview.md
  • docs\ui\design.md
  • docs\deployment\builds.md
  • docs\development\plugin-development.md
  • docs\fieldtest\telemetry-costs.md
  • docs\reference\trailer-name-catalogs.md
  • docs\architecture\job-markets.md
  • docs\architecture\tour-damage.md
  • docs\project\development-status.md
  • docs\README.md als Themenindex

Nach Fertigstellung die aktuelle App als separate sichtbare Vorschau starten und offen lassen. Eigene Settings/DB mit konsistentem lesenden Snapshot; installierte Originale und Release-Prüfsummen nicht verändern. Vorschauen sind lokale Testkopien, kein Release. Aktuelle Kopie: artifacts/preview-0.13.18-live-test.

Wiki separat pflegen

git clone ssh://git@git.bastelhof.srv64.de:2222/Bastelhof/TruckSimLogBook.wiki.git wiki
git -C wiki status
git -C wiki add .
git -C wiki commit -m "Aktualisiere Wiki"
git -C wiki push origin main

Vor dem Push den tatsächlichen Wiki-Branch mit git -C wiki branch --show-current prüfen und gegebenenfalls statt main verwenden. Das Hauptrepository ignoriert wiki/; beide Repositories werden separat committed und gepusht. Benutzerdaten, Secrets, Diagnoselogs und lokale Builds niemals committen.