-
Notifications
You must be signed in to change notification settings - Fork 5k
Many references to Common/src/**/Interop code have incorrect casing in the path #28257
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
Comments
Use a task rather than replacing the original lines in the projects to reduce the chance of merge conflicts. Tracked by https://github.com/dotnet/corefx/issues/34211
@dagood I'd rather not submit a temporary hack. Does this work? https://github.com/dotnet/corefx/compare/master...danmosemsft:casing?expand=1 I would rather you submit it, as it would take a long time for me to set up a Linux machine and biuld all configurations and I'm guessing I need fixes you have on your machine. I have no idea how to stop this regressing. Maybe change all these paths to consistent casing. |
Agreed about the fix, I have this small note but I guess it's pretty tucked in there. 🙂
If I hit more casing issues in the future, I'll just submit a PR. Thanks for the fix! |
@dagood if your experiment becomes official I think you should plan on adding the build system check so it fails in Windows. |
Thought about that some, and checking for it on Windows actually has an interesting edge case... you can't actually tell what the "correct" case is on Win without asking Git, since Git doesn't (can't?) correct case differences on case-insensitive filesystems. If CI deletes and recreates the repo every time, we can check in CI, but I don't know if that always happens or if it just does cleaning steps in some cases. (It could also cause problems for devs.) I don't know how common this would actually be, but I don't want to introduce machine state dependent failures/flakiness. Maybe the check could be run conditionally if Git says the casing in general is correct, but then things could slip through and fail later CI/rolling builds. We could run Git commands to figure out if the case is correct (instead of checking on the filesystem), but running one I'm not sure this is worth solving before we get an allconfigurations Linux leg in CI here (which would implicitly check case correctness anyway). dotnet/source-build#379 would do that. |
+1 I suspect that there is number of other issues that can break Linux, but that are not caught by the Windows build. If we want allconfigurations build the work, the best way to check it is to just build it. |
The wrong paths I found were all in
Common/src/CoreLib/Interop/Windows
andCommon/src/Interop/Windows
. It seems this hasn't been causing a problem yet because they're always built on Windows, which uses a case-insensitive file system.I hit this because I'm working on getting
-allconfigurations
to compile on Linux (dotnet/source-build#210), and the casing mismatches cause failures.I was able to add this target to fix up the
Compile
items (this also shows what the common casing problems are):I used a target because I didn't want to deal with merge conflicts, but it would probably be better to fix the
Compile
items through the repo. That target is based on 57358b7 (v3.0.0-preview.18571.3).The text was updated successfully, but these errors were encountered: