http://dev.clojure.org/jira/browse/CLJS-418

We currently distribute the Google Closure Library in two separate JARs: 
the main library and the third-party extensions. We do this because the 
third-party extensions are covered by different licenses.

But, as it turns out, various classes in the main library have explicit 
dependencies on things in the third-party extensions. See See also this 
G.Closure mailing list discussion:
https://groups.google.com/d/msg/closure-library-discuss/4DG-XJn0s4E/i7nlq84V41kJ

As a result, the ClojureScript browser-connected REPL has a transitive 
dependency on the Google Closure Library third-party extensions. This 
manifests as an error in script/cljsc and a NullPointerException in 
lein-cljsbuild.

It seems that the dependency on third-party extensions is unavoidable. 
There are several possible fixes:

1. Release a new G.Closure Library JAR with a *declared dependency* on the 
third-party extensions JAR. This best reflects the *actual* dependency 
relationships.

2. Release a new G.Closure Library JAR with the third-party extensions 
included in the JAR. This would make it harder to exclude the 
third-party-licensed code from projects which do not actually require it.

3. Release a new version of ClojureScript with a declared dependency on the 
third-party extensions JAR. This makes the dependency more visible to 
ClojureScript developers.

Regardless of the approach taken, developers can always use explicit 
dependencies/exclusions to choose which version of the G.Closure library to 
include in their projects.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to