-
Notifications
You must be signed in to change notification settings - Fork 49
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
Case insensitive filesystems #54
Comments
Oh shoot, I never noticed it downloaded crates case-sensitively. Since crates.io-index stores everything lowercase, I think it's fine to modify the creates directory to make everything lowercase. As far as a non-breaking transition, that might be a bit tougher. The two options I can think of are:
Any thoughts on either of those two solutions? |
Well, it's a little more complicated than I thought... And finally, I'm not sure that it really prevents panamax from serving crates, if the mirror has been made on a case insensitive filesystem. My problem occurred when I rsync from Linux to a Windows formatted external disk: cargo seems to use a URI with lowercase and uppercase characters. For example:
e.g. in No easy solutions... Probably the best one is to change Dealing with case-insensitive filenames/filesystems is a pain. With Go modules, it's very complicated too: in the download uri, uppercase letters are replaced with an exclamation mark followed by the letter's lowercase equivalent: github.com/BurntSushi → github.com/!burnt!sushi 😐 |
So it looks like in In that case (pun not intended), it should be just a matter of downloading every crate as lowercase, and modifying warp to lowercase all URLs. As an aside, it's strange that |
The directory tree of the crate mirror uses package names, which can mix lower and uppercase characters.
In the Cargo Book, it says that file names should be in lowercase, with a lowercase prefix (reference). So in the Git
crates.io-index
also, filenames are lowercase.Case-insensitive file systems (macOS, Windows...) break Panamax and prevent it from delivering crates.
I will certainly modify to create a lowercase directory tree, but the question of transition arises: should I move files if both exist (example:
crates/An/
andcrates/an/
)? If a script is acceptable, it would be much easier.The text was updated successfully, but these errors were encountered: