feat(mcpp.plugins): 0.5.1, overlapping roots are refused - #373
Merged
Conversation
0.5.0's design record required the refusal and 0.5.0 shipped without it. A file reachable from two roots has two namespace paths, and which one it got depended on the order of the list; it was also read twice and merged with itself, so the entry looked like two implementations agreeing rather than one file counted twice. 0.5.1 also stops a single-file root from registering a re-run glob over the directory that file happens to sit in. The floor stays at mcpp 2026.9.8.1. The CN asset is the same bytes as the GitHub source archive of tag v0.5.1, sha256 1be429b00faaf48afa6c607bdcb98f05b242fef297bd2c588f67fae98f0d83e1, verified by downloading it back after the upload.
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.
Publishes
mcpp-pluginsv0.5.1, merged asa402220with a green run onmain.0.5.0's design record required overlapping roots to be refused and 0.5.0 shipped without the check. A file reachable from two roots has two namespace paths, and which one it got depended on the order of the list; it was also read twice and merged with itself, so the entry looked like two implementations agreeing rather than one file counted twice. A misconfiguration that produces a plausible result is worse than one that stops.
0.5.1 also stops a single-file root from registering a re-run glob over the directory that file happens to sit in.
Checked before opening: Lua syntax,
check_cross_package_refs,check_platform_version_parity,check_duplicate_versions,mcpp xpkg parse, exactly one["latest"]per platform table (three, all at 0.5.1), and the CN asset fetched back and hashed --1be429b0...equals the GitHub source archive's sha256.