JuliaRegistries / RegistryCI.jl

Continuous integration (CI) tools for Julia package registries, including registry consistency testing, automatic merging (automerge) of pull requests, and automatic TagBot triggers
https://juliaregistries.github.io/RegistryCI.jl/stable
Other
31 stars 30 forks source link

Add a check for case dependent file distinction #441

Closed laborg closed 1 year ago

laborg commented 2 years ago

Previously issues against Pkg.jl: Having filenames which only differ by case leads to problems on case insensitive OSes. A check for this would improve user experience.

Previous PR: https://github.com/JuliaLang/Pkg.jl/pull/1099

ericphanson commented 2 years ago

We already require packages’ names are not too similar to each other (and in particular disallow only differing by case). Is this issue about something else, or is it already handled by our existing checks?

ericphanson commented 2 years ago

Ah, is it to inspect the package code and ensure filepaths within the package are distinct beyond casing? That’s a good idea, and we already clone the repo for the license check.

laborg commented 2 years ago

Yes, this is not for checking the package name but to ensure that people developing on e.g. Linux (usually with a case sensitive file system) don't use case in source file names that would lead to problems on e.g. Windows. (happend to me...)

GunnarFarneback commented 2 years ago

There are some other things that cause problems on Windows such as filenames with invalid path characters or ending in a dot. The answers to https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names list some things worth checking. Example found in the wild (not a registered package).