Repository navigation
test(fqn): guard against Unicode project-name collisions - #2219
lorenzozanee wants to merge 1 commit into
Conversation
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
|
Thank you for adding the Unicode collision regression. Current FQN encoding already contains the underlying Unicode handling, so this is valuable protection of an existing fix rather than a newly delivered runtime correction. We should keep #571's requested reporter verification separate and not close it solely because this test lands. |
|
Thank you — a guard against Unicode project-name collisions in FQNs is a sharp thing to think of, and 14 lines in one test file makes it easy to say yes to. One blocker: the Your commit carries no Everything else is green (31 success, 1 skipped). Sign it off and I will merge it. One question, genuinely curious rather than a review demand: does this guard fail today, or does it pin behaviour that is already correct? Both are worth having and I will take either — but they are different things, and if it is a pinning test I would like to say so in the merge so the next person reading it knows it was never a bug report. #2241 and #2242 merged cleanly today with correct sign-offs — the habit is already there, these branches just predate it. |
|
Thanks again for the Unicode collision guard. The description makes clear that this protects behavior already present, which answers the earlier question. The recorded sign-off request remains the next contributor step; reporter verification on #571 should stay separate from landing this test. |
|
Thanks again for the Unicode collision guard. The description answers the behavior-versus-regression question; the remaining recorded contributor step is the commit sign-off. Please let us know when that is updated, keeping reporter verification on #571 separate. |
|
Thank you, @lorenzozanee, for this guard. You picked the right property to pin: the existing #571 test checks one exact string, while yours checks that two different CJK folders can never collapse into the same project name, and that both names still pass the project-name validator. That is the failure users would actually hit, and it is now protected. We landed it in #2950 (merge 0640103), with you credited as co-author on the commit. We took that route because this branch's commit has no DCO sign-off, which only you can add, and we did not want the test to wait any longer. The one addition is a check that each name keeps the hex image of its own folder, which is the "remains part of the project identity" point from your description. Closing this one in favor of #2950. #571 stays open for the reporter's own verification, as discussed. Thanks again for the careful work. |
Two repositories whose paths differ only in a non-ASCII segment (for example /Users/dev/<CJK name A> and /Users/dev/<CJK name B>) must derive distinct project names. Before the DeusData#571 fix every non-ASCII byte was mapped to '-', so both collapsed to the same name and shared one index. The existing DeusData#571 test pins one exact string; this test pins the property that two different segments stay distinct and validator-safe. Hardening on top of the original test: each name must also contain the hex image of its own segment (e5bc80e58f91 / e5908ee7abaf), so a future mapping that keeps the names distinct without preserving the segment is caught as well. Refs DeusData#571 Distilled from DeusData#2219. Co-authored-by: lorenzozanee <[email protected]> Signed-off-by: Martin Vogel <[email protected]>
What does this PR do?
Adds regression coverage for issue #571 by asserting that distinct non-ASCII project path segments produce distinct validator-safe project names. The existing project-name implementation encodes non-ASCII bytes as hexadecimal, so CJK path segments remain part of the project identity instead of collapsing into the same ASCII slug.
Checklist
git commit -s) — required, CI rejectsunsigned commits (DCO, see CONTRIBUTING.md)
make -f Makefile.cbm test)make -f Makefile.cbm lint-ci)Fixes #571
Supersedes #2192(原PR分支已删,按原提交重建)