Open raucao opened 4 years ago
We should definitely mention it, because there is an expectation that URLs might be case-insensitive.
E.g. on github they partially are:
As a programmer, I lean towards saying the URL should be case-sensitive, because in most programming languages string literals are case-sensitive. But I think I could be persuaded either way.
If we want to work with providers who are using various filesystems there is a bit of a problem.
remotestorage choice | case sensitive backend | case preserving backend | case folding backend |
---|---|---|---|
case sensitive | trivial | hard1 | easy 2 |
case preserving | hard3 | trivial | easy2 |
case folding | hard3 | possible | trivial |
Looking at it this way the optimal solution for implementers is case-folding. However this has a bunch of problems for applications and users.
With those things considered I think we should treat paths as byte strings. This makes it easy for the servers to make fast, accurate implementations of remotestorage. However it does mean that it passes folding and normalization onto the app developers. However I think that can be fixed with a couple of good libraries and will be a lot less painful to fix than tracking down a couple of remotestorage implementations that do folding wrong (or just use an older Unicode standard).
There are downsides though:
We should probably also check with major remotestorage providers to see what they do and if it would be hard for them to migrate/support the standardized way.
The question came up in https://github.com/remotestorage/remotestorage.js/pull/1179 and I haven't found any mention of it in the spec. Has this been discussed before?