fix(builder): stop when generated source cleanup fails #1218
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!1218
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/lift-cleanup-error"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A fresh lift now stops if an earlier
code_*.cor.c.wholefile cannot be removed. The normal builder error names the exact path and OS error. A file that has already disappeared remains harmless; permissions and the cleanup filename scope stay unchanged.The v2.0.10 cleanup previously ignored every
OSErrorand continued translating, then wrote a fresh lift key that included any surviving obsolete shard. A later compile/link failure removes that key correctly, but a persistent deletion failure can send the next build through the same cycle. Fail before translation and key writing instead.The regression executes the actual fresh-lift branch from
make_game.main, together with the real reporting/key helpers, using tiny authored temporary files and deletion-error doubles. Untouched main7b009156produces three intended failures: both obsolete C/whole-file permission cases and another removal error continue into lift/key writing. Five controls already pass. With the change, all eight cases pass on Windows and Linux, and the strict selected automatic runner passes 1/0/0 on both. Assertions are byte-identical between original and fixed runs. The test is discovered automatically; no workflow or runner policy change is needed.No real access denial, permission change, translator, compiler, SDK, game or existing generation directory is used. This does not validate full generation/link output or provide #918's completeness/concurrent-work protection. It follows the recovery work prompted by #1197 (@anonymm7711) and #1176 (@jamtastik819); it does not establish that a failed removal caused either report or claim to resolve all their failure modes. All eight hosted validation checks passed on
d254e6f: both Windows/Linux source jobs (zero annotations), Windows Builder/setup and renderer, Linux AppImage, SPIR-V, F2I and workflow lint. The two release-publication jobs were skipped for the PR as expected. See the source checks, Windows builds and AppImage build.