Skip to content

build(packaging): refuse beta packages from a dirty tree (#132) - #150

Draft
cubetribe wants to merge 1 commit into
mainfrom
chore/132-enforce-clean-beta-builds
Draft

cubetribe wants to merge 1 commit into
mainfrom
chore/132-enforce-clean-beta-builds

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Was: build-mac.sh und build-linux.sh brechen bei unsauberem Baum (git status --porcelain) vor dem Unity-Aufruf ab. Neu: --allow-dirty (Stempel behält -dirty), --check-only, Sidecar Builds/<Plattform>/.build-commit für --skip-build. HEAD ≠ origin/main nur Warnung, offline robust. README 2.1.0 mit Bauort-Rezept.

Warum: Teil 1 von #132 (untrackte InputGateDiagnostic.cs) ist erledigt — die Datei existiert nirgends mehr. Teil 2 (Beta nur aus sauberem Baum) stand nur in der Doku. Fixes #132, Entscheidung D-124 (Entwurf).

Bereiche: tools/packaging/, DecisionLog, CHANGELOG. Kein Spielcode.

Changelog: [Unreleased] → Geändert.
Tests: bash -n; Shell-Gegenprobe in einem Wegwerf-Repo (sauber/unsauber/--allow-dirty/--skip-build mit und ohne Sidecar/offline); dotnet test 778/778 (keine C#-Änderung); check_docs.py OK.
Unity-Spuren / echter Build: nicht gelaufen (kein Unity-Build, kein Signieren, kein DMG).
Spielabnahme: entfällt.

Review-Befunde (mittel, für den Inhaber): Baum wird nach dem Unity-Lauf nicht erneut geprüft; das Bauort-Rezept nennt nur skip-worktree auf AssetMappingRegistry.asset, obwohl unter Assets/_Project/Art 153 Dateien getrackt sind. Details: reports/v8.6.0/issue-lauf-2026-10-17/05b-review-1-issue-132.md.

🤖 Generated with Claude Code

An untracked file under Assets/ compiles into every build made from the
working copy and into none made from a fresh clone; #132 found such a
build in the hands of testers. The first half (the stray diagnostic
file) is already gone. The second half was only documentation: the
scripts appended "-dirty" and carried on. build-mac.sh and build-linux.sh
now stop before the Unity call when git status is not clean, with
--allow-dirty as the explicit way out and --check-only for a dry run.
--skip-build goes through the same check and compares against a sidecar
Builds/<platform>/.build-commit written after a successful build, so a
fresh commit label can no longer be stamped onto an old build. A HEAD
that differs from origin/main is a warning only, and an offline fetch
does not abort. The README documents the build location.

Fixes #132. Decision D-124 (draft; binding with the merge). Shell
counter-checks ran in a throwaway repo; no Unity build, signing or DMG
step was exercised. Sim tests 778/778 (no C# change).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Untrackte InputGateDiagnostic.cs kompiliert in jeden Build aus der Arbeitskopie — einchecken oder löschen

1 participant