-
Notifications
You must be signed in to change notification settings - Fork 0
Resolve companion ranges across filename case differences #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
37a1d9f
Resolve companion ranges across filename case differences
imnasnainaec 66f52d7
Describe case-tolerant companion discovery under 0.1.0
imnasnainaec b863047
Keep "entry" for LIFT entries in the companion-case fallback
imnasnainaec ed2d26b
Resolve companions by folded name, and never load the .lift as one
imnasnainaec 0cd9f95
Describe case- and normalization-tolerant companion discovery
imnasnainaec 8d1c24a
Trim the companion-folding prose
imnasnainaec ca36d34
Keep folder-shaped and self-referencing hrefs out of companion resolu…
imnasnainaec 8ffa816
Resolve both sides before deciding two paths are one file
imnasnainaec b0d6653
Say what the folding rules are, not how they got there
imnasnainaec 1202a1e
Rework the companion-folding prose, and name a predicate like one
imnasnainaec d5c12d9
Call the tie-break deterministic rather than stable
imnasnainaec 86c9013
Refuse a companion name that several files answer to
imnasnainaec cda1d7b
Say what folds the two spellings, not that they differ by a form
imnasnainaec 2f97d63
Cut the companion-collision note down to effect and remedy
imnasnainaec 06def3a
Keep only what the companion-collision code cannot say itself
imnasnainaec 3345e29
Skip a companion collision when one of its files loaded
imnasnainaec 4ae4045
Drop the collision refusal from the 0.1.0 companion entry
imnasnainaec 2928de6
Give identity as the reason the .lift is not its own companion
imnasnainaec d8b1a9b
Cover a companion whose root is not <lift-ranges>
imnasnainaec File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A fold match that turns out not to be a ranges document takes the whole load down with it. A folder holding
Ñandú.lift(NFC) beside aÑandú.lift-ranges(NFD) whose root is not<lift-ranges>raisesLiftParseErrorout ofload()— I ran it — where on a case-sensitive filesystem it previously loaded fine with no companion tracked.That is the same outcome the
.liftrefusal above exists to prevent, and the reasoning there — failing the whole load rather than skipping one companion — reads like it generalizes to any folded match. I expect the answer is that a file namedX.lift-rangesin any spelling that is not a ranges document is a broken folder and deserves to be loud, and that an exactly-named companion and a folded one are alike in that respect. Was the asymmetry deliberate?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deliberate, and your expected answer is the one. The
.liftskip is identity, not error tolerance: the file is the document being loaded, so nothing there is a companion whatever it holds. (A name claiming to be a ranges document is different, and exact and folded matches behave alike there.)Skipping would also be silent in your example: a sibling match leaves no href to dangle and no collision to report, so on main that folder loads and validates clean. To address the source of the question: 2928de6 gives the
identity reason instead of the crash; d8b1a9b pins the counterpart in a new test.
--drafted by Claude; lightly edited by me--