cljsjs / boot-cljsjs

Helper tasks to aid the packaging of JS dependencies for Clojurescript projects
66 stars 22 forks source link

Unzipping on Windows #26

Open martinklepsch opened 9 years ago

martinklepsch commented 9 years ago

Apparently there are some problems around unzipping things on Windows using the unzip task: https://github.com/cljsjs/packages/pull/96

hipitihop commented 9 years ago

Although I dev on Ubuntu/Linux, we discovered this issue when my colleagues tried to build a package on their Windows 7 box. The build complains about not being able to delete the downloaded zip, and fails when sift regex has forward slashes in the path.

We are happy to be guinea pigs for testing any proposed fixes.

nilpunning commented 9 years ago

As an example.

With clsjs/codemirror the example sifts provided do not work on Windows:

(sift :add-jar {'cljsjs/codemirror #"cljsjs/codemirror/common/codemirror.css"})
(sift :move {#"cljsjs/codemirror/development/codemirror.css" "vendor/codemirror/codemirror.css"})))

My first attempt made them only work on Windows:

(sift :add-jar {'cljsjs/codemirror #"^cljsjs\\codemirror\\development\\codemirror.css$"})
(sift :move {#"^cljsjs\\codemirror\\development\\codemirror.css$" "vendor/codemirror/codemirror.css"})

Something like this should work for both:

(sift :add-jar {'cljsjs/codemirror #"^cljsjs.codemirror.development.codemirror.css$"})
(sift :move {#"^cljsjs.codemirror.development.codemirror.css$" "vendor/codemirror/codemirror.css"})

Or even this:

(sift :add-jar {'cljsjs/codemirror #"^cljsjs[/ \\]codemirror[/ \\]development[/ \\]codemirror.css$"})
(sift :move {#"^cljsjs[/ \\]codemirror[/ \\]development[/ \\]codemirror.css$" "vendor/codemirror/codemirror.css"})
martinklepsch commented 9 years ago

@micha do you have any thoughts on this? A solution to this probably belongs more into Boot itself than into boot-cljsjs.

aadrian commented 8 years ago

Any chance to have a "lein" version of this project? Thank you.

Deraen commented 8 years ago

@aadrian What do you mean? I don't see need for such and many features here are built tightly on top of Boot's features. Thus I doubt Cljsjs maintainers have interest in providing such version.

aadrian commented 8 years ago

What do you mean?

The number of JS Libs covered on https://cljsjs.github.io/ is just too small, and judging from the number of open requests and their completion time, I would say that it's a huge task.

So if the users could more easily make and not just request JS lib support, the project would be even more useful.

Most users already using Lein, won't switch just to be able to maintain and submit "cljsjs"s :).

Deraen commented 8 years ago

If you want to discuss this more, please create a separate issue.

I doubt Boot is the cause for number of packages or slow packaging time, most work when packaging a library goes into creating the extern file which is often manual work. Boot is also already used by good part of Clojure community (13% in December and I have a feeling that the growth rate has accelerated since then).

aadrian commented 8 years ago

... most work when packaging a library goes into creating the extern file which is often manual work.

Exactly :). So in the context of a working project that is already using a particular JS lib (or more) the "old way", for "87% of the users :)" it would be easier to just configure the extra file and submit it. Since it's part of the project that is already using those resources, is also the best test case.

The alternative (now in use use) would be to build another project with another build tool (that the user also needs to learn and master first), test it and just than submit it :).