Open ijmo opened 8 years ago
Have you checked if boot-reload and boot-cljs-repl have the same problem?
They were implemented after boot-cljs so they are using by-path
but will just build path by concatenating the extension to it, i.e. with forward slashes:
https://github.com/adzerk-oss/boot-reload/blob/master/src/adzerk/boot_reload.clj#L70-L75
Would be super if you can check those and send PR to boot-reload and boot-cljs-repl if needed.
I saw it just now. Those seem to have same issue on Windows. Let me make PRs to both boot-reload and boot-cljs-repl. Happy to help!
If by-path
has always problems in Windows, I wonder if this should be fixed in Boot itself instead of all libraries using it.
I think you're right. Seeing by-path, it does not handle the separator problem. It should be fixed not boot-reload or boot-cljs-repl.
@Deraen yeah, i think boot should only use forward slashes, but that will be a breaking change. I think it's something that will simplify things for windows users, though, so perhaps making the breaking change now is the best approach (it's only a breaking change for windows users, who are having to deal with all these issues anyway).
One of the biggest issues with backslash paths is the discrepancy between filesystem paths and URIs, since URIs are not platform-specific and use only forward slashes. Since the classpath is a collection of URIs this becomes a pretty big pain when we're dealing with files that are on the classpath—most of what boot and boot tasks do.
I think we should start to think about how to fix boot and make the change as soon as we're confident we have a good solution.
Forward-slash-separated ids are supported on Windows.
e.g. :ids #{"js/main"} instead of :ids #{"js\main"}