ANN: ClojureScript release 0.0-1513

256 views
Skip to first unread message

Stuart Sierra

unread,
Oct 19, 2012, 3:52:24 PM10/19/12
to clo...@googlegroups.com
ClojureScript release 0.0-1513 is on its way to the Maven Central Repository.

Changes: http://build.clojure.org/job/clojurescript-release/18/

-S

Shantanu Kumar

unread,
Oct 21, 2012, 2:00:52 PM10/21/12
to Clojure


On Oct 20, 12:52 am, Stuart Sierra <the.stuart.sie...@gmail.com>
wrote:
> ClojureScript release 0.0-1513 is on its way to the Maven Central
> Repository.
>
> Changes:http://build.clojure.org/job/clojurescript-release/18/

This release (via lein-cljsbuild 0.2.9) broke one of my projects,
which worked with 0.0-1503 (lein-cljsbuild 0.2.8). I am not yet able
to isolate the issue into a small reproducible test-case, but below is
how you can see it in effect:

1. $ git clone g...@github.com:kumarshantanu/basil.git
2. $ cd basil
3. $ git checkout 06cd1f0 # latest commit as of now
4. $ # make sure you have PhantomJS 1.6 or higher
5. $ lein dev do clean, test # stack traces may help
6. Open `run-tests.html` in Firefox and see console

If you edit project.clj and replace lein-cljsbuild version 0.2.9 with
0.2.8, all tests pass. I tried debugging the issue using Firebug and
it mentioned 'variable scoping error', but I don't think I am close to
the actual cause. Sharing it here hoping someone can throw pointers.

Shantanu

Shantanu Kumar

unread,
Oct 21, 2012, 2:08:56 PM10/21/12
to Clojure
> 1. $ git clone g...@github.com:kumarshantanu/basil.git

Or whichever URL is convenient for this project:

https://github.com/kumarshantanu/basil

Shantanu

David Nolen

unread,
Oct 21, 2012, 2:21:14 PM10/21/12
to clo...@googlegroups.com
Please isolate the commit by using the lein checkouts feature - you can use the ClojureScript repo directly then and use git bisect to determine the exact commit that broke your build. Thanks.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Shantanu Kumar

unread,
Oct 22, 2012, 1:56:58 PM10/22/12
to Clojure


On Oct 21, 11:21 pm, David Nolen <dnolen.li...@gmail.com> wrote:
> Please isolate the commit by using the lein checkouts feature - you can use
> the ClojureScript repo directly then and use git bisect to determine the
> exact commit that broke your build. Thanks.

I'm afraid I didn't follow the first part -- can you please describe a
bit about how to setup lein checkouts for the clojurescript repo? The
"checkouts" feature has worked for me for ordinary Clojure libraries,
but for ClojureScript there's neither a project.clj file (which is
required for checkouts -- I created one manually looking at
pom.template.xml but that didn't help) nor it's a usual Clojure
project where sources can be simply loaded onto classpath. I am trying
to follow the build process for ClojureScript from the file 'devnotes/
cljs.org' ('Setup' section at bottom) but I am not done with that yet.
Any pointers on the following will be very useful:

1. Setting up lein checkouts with ClojureScript and lein-cljsbuild
2. Building ClojureScript as a final JAR

Shantanu

David Nolen

unread,
Oct 22, 2012, 2:01:04 PM10/22/12
to clo...@googlegroups.com
On Mon, Oct 22, 2012 at 1:56 PM, Shantanu Kumar <kumar.s...@gmail.com> wrote:


On Oct 21, 11:21 pm, David Nolen <dnolen.li...@gmail.com> wrote:
> Please isolate the commit by using the lein checkouts feature - you can use
> the ClojureScript repo directly then and use git bisect to determine the
> exact commit that broke your build. Thanks.

Switch into your project. Create a directory called checkouts. Checkout a fresh copy of ClojureScript in this directory. Add the following to your own project.clj:

:extra-classpath-dirs ["checkouts/clojurescript/src/clj"
                       "checkouts/clojurescript/src/cljs"]

Now your local copy of ClojureScript will be used.

David

Shantanu Kumar

unread,
Oct 22, 2012, 3:08:08 PM10/22/12
to Clojure
> Switch into your project. Create a directory called checkouts. Checkout a
> fresh copy of ClojureScript in this directory. Add the following to your
> own project.clj:
>
> :extra-classpath-dirs ["checkouts/clojurescript/src/clj"
>                        "checkouts/clojurescript/src/cljs"]
>
> Now your local copy of ClojureScript will be used.

Thanks, that helped! I found the tests in my project fail when I use
commit 19afb31a52504293ba2182c584b1867917316662 (or later) in
ClojureScript with the below commit message:

19afb31... CLJS-369: Capture variable shadows in analyzer; avoid
gensyms.

Discussion on this old bug thread in lein-cljsbuild was also helpful
to use checkouts with ClojureScript: https://github.com/emezeske/lein-cljsbuild/issues/123

Shantanu

David Nolen

unread,
Oct 22, 2012, 3:11:30 PM10/22/12
to clo...@googlegroups.com
On Mon, Oct 22, 2012 at 3:08 PM, Shantanu Kumar <kumar.s...@gmail.com> wrote:
19afb31a52504293ba2182c584b1867917316662

Do you have top level lets in your code?

(let [foo ...]
   (defn bar ...))

David 

Shantanu Kumar

unread,
Oct 22, 2012, 3:20:08 PM10/22/12
to Clojure


On Oct 23, 12:11 am, David Nolen <dnolen.li...@gmail.com> wrote:
> On Mon, Oct 22, 2012 at 3:08 PM, Shantanu Kumar <kumar.shant...@gmail.com>wrote:
>
> > 19afb31a52504293ba2182c584b1867917316662
>
> Do you have top level lets in your code?
>
> (let [foo ...]
>    (defn bar ...))

I have top-level let in a macro file, which is never referenced via
any of the tests:

https://github.com/kumarshantanu/basil/blob/master/src/basil/core_macro.clj


However, I was suspecting the error to be happening in group.clj:

https://github.com/kumarshantanu/basil/blob/master/src/basil/group.clj#L40

because, I noticed that all error instances are due to the same cause:

TypeError: 'undefined' is not an object (evaluating 'self__.f_obtain__
$1.call')

Shantanu

David Nolen

unread,
Oct 22, 2012, 3:23:13 PM10/22/12
to clo...@googlegroups.com
Thanks for digging further I think I have enough information to look into this.

David 

Shantanu Kumar

unread,
Oct 22, 2012, 3:24:45 PM10/22/12
to Clojure


On Oct 23, 12:20 am, Shantanu Kumar <kumar.shant...@gmail.com> wrote:
> On Oct 23, 12:11 am, David Nolen <dnolen.li...@gmail.com> wrote:
>
> > On Mon, Oct 22, 2012 at 3:08 PM, Shantanu Kumar <kumar.shant...@gmail.com>wrote:
>
> > > 19afb31a52504293ba2182c584b1867917316662
>
> > Do you have top level lets in your code?
>
> > (let [foo ...]
> >    (defn bar ...))
>
> I have top-level let in a macro file, which is never referenced via
> any of the tests:
>
> https://github.com/kumarshantanu/basil/blob/master/src/basil/core_mac...

The top-level let in the macro is nevertheless reached via :require
when running tests.

Shantanu

AtKaaZ

unread,
Oct 23, 2012, 12:52:34 AM10/23/12
to clo...@googlegroups.com
This here [1] is relevant to what you said.

Also this makes me realize that potentially someone using eclipse+ccw can use :extra-classpath-dirs to have two projects where one depends on another without having to lein uberjar on every change (and lein install or similar the .jar into some repo) at development time, of course.

[1] http://nakkaya.com/2011/12/04/leiningen-clojurescript-and-browser-repl/

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en



--
I may be wrong or incomplete.
Please express any corrections / additions,
they are encouraged and appreciated.
At least one entity is bound to be transformed if you do ;)

AtKaaZ

unread,
Oct 23, 2012, 1:03:34 AM10/23/12
to clo...@googlegroups.com
Just gonna note that I'll have to use :source-paths instead of :extra-classpath-dirs since the latter is gone in lein2, since lein 2.0.0-preview1

sources:
[1] https://github.com/emezeske/lein-cljsbuild/issues/123#issuecomment-7962308
[2] https://github.com/technomancy/leiningen/blob/master/NEWS.md

David Nolen

unread,
Oct 23, 2012, 7:29:49 PM10/23/12
to clo...@googlegroups.com
It was a regression to reify caused by CLJS-369, http://dev.clojure.org/jira/browse/CLJS-405

It's fixed in master. If you can confirm this works for you too that would be great.

David 

Shantanu Kumar

unread,
Oct 24, 2012, 1:56:00 AM10/24/12
to Clojure
> It was a regression to reify caused by CLJS-369,http://dev.clojure.org/jira/browse/CLJS-405
>
> It's fixed in master. If you can confirm this works for you too that would
> be great.

Yes, it works for me. Thanks!

Shantanu
Reply all
Reply to author
Forward
0 new messages