Spin-off from #5289. Windows has a number of characters that can't appear in path components. For portability, we should consider restricting the use of those in package descriptions. I started work on this but it's a yak shave of a yak shave and I realised it was a bigger task than I wanted to take on, with a few squidgy considerations, so here are my notes. I'm not a Windows person, so take all of this with a grain of salt.
? is needed for UNC paths.: and possibly UNC paths, too?os(linux), is that okay?There are portability worries going in the other direction, too: POSIX paths aren't Unicode, but Windows paths are. Restricting to printable ASCII is one option, but that's horrible. Demanding UTF-8 is attractive, but that might be too controversial still?
Not all of these are necessary to get something useful done, but they're things to think about.
As I commented already in #5289; this makes sense for cabal check; but it certainly shouldn't keep me from using such non-portable paths in my .cabal description if I don't distribute via Hackage!
One more consideration: globs can pull in non-portable pathnames, so even if the package description is perfectly portable, the package may not be. So cabal check or whatever will have to walk the tree.
Some issues that have cropped up related to non-portable paths:
Yes, makes sense. Should be fairly easy to implement by adding a new check.
Most helpful comment
As I commented already in #5289; this makes sense for
cabal check; but it certainly shouldn't keep me from using such non-portable paths in my.cabaldescription if I don't distribute via Hackage!