fix(setup): account for selected preparation and dependency failures - #56
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary and scope
Project 4; base f9d5ed6, HEAD f269420, branch luno/fix-setup-module-failure-status. Two files +168/-30: linux_setup.sh and tests/test-linux-setup.sh. Retain preparation-failed candidates for selection; only selected failures affect final status. Schedule selected dependencies before consumers, block transitive consumers on failure, continue unrelated modules. Validate syntax before execution so parser exit 2 cannot become degraded success. Disabled/unselected modules and legitimate degraded behavior retain normal semantics. No workflow/package strategy/Cloudflare changes.
Validation
https://github.com/LucaLin233/Linux/actions/runs/34263421848: both required environments passed; full=false, linux-setup and setup-exec suites executed in each. Ubuntu warning/error lint passed. Tests cover discovery failures, disabled/unselected exclusion, direct/transitive blocking, dependency order/single execution, unrelated continuation, degraded status, syntax failure and real main mixed/valid exact exit status. Local bash -n, diff checks and remote/local byte comparison passed. Second-pass self-review completed, not third-party review. No production behavior tests.
Risks
No cryptographic module manifest added; existing download validation remains. Failed downloads cannot reveal enabled/platform metadata: expose failed candidates rather than guess. Existing module-specific platform skips remain unchanged; no generic platform contract introduced. Numeric display order remains but execution is dependency-first. Explicit user-confirmed external dependencies retain existing semantics. Cyclic plans retain rejection. Not a live deployment or full-suite PR validation claim.
Rollback and authorization
Recommend merge for this scope; revert eventual squash through PR if needed. Draft pending explicit merge confirmation. Project 4 not yet completed: merge and post-merge main CI are still required. No production/data changes.