ANN: Clojure 1.4.0-beta1

200 views
Skip to first unread message

Stuart Sierra

unread,
Feb 3, 2012, 10:47:41 AM2/3/12
to clo...@googlegroups.com, cloju...@googlegroups.com
Clojure 1.4 goes beta! This release is essentially the same as
1.4.0-alpha5. It will hit the Maven Central repository in a few hours.

No new features in the 1.4 line after this point. Bug fixes are still allowed.

Also, if somebody wants to compile a list on the wiki of all the bug
fixes and changes since 1.3, that would be very helpful. Thanks!

-Stuart Sierra
clojure.com

Tassilo Horn

unread,
Feb 3, 2012, 12:19:27 PM2/3/12
to clo...@googlegroups.com, cloju...@googlegroups.com
Stuart Sierra <the.stua...@gmail.com> writes:

Hi Stu,

> Clojure 1.4 goes beta! This release is essentially the same as
> 1.4.0-alpha5. It will hit the Maven Central repository in a few
> hours.

Great news, I'd very much like to test-drive it before the 1.4.0
release. Is there anything better than downloading its JAR and
replacing the clojure-1.3.0.jar in my project with it?

As soon as I change my [org.clojure/clojure "1.3.0"] dependency to
"1.4.0-alpha5" (beta1 seems not have arrived yet) or "[1.3.0,)", maven
gets messed up when fetching dependencies...

Right now, my minimized test project deps are

:dependencies [[org.clojure/clojure "1.3.0"]
[ordered "0.3.0"]
[org.clojure/tools.macro "[0.1.1,)"]]

which works fine. Now I've seen that ordered-1.0.0 is out. That still
works fine.

:dependencies [[org.clojure/clojure "1.3.0"]
[ordered "1.0.0"]
[org.clojure/tools.macro "[0.1.1,)"]]

Now trying to get the clojure snapshot breaks maven's dependency
management.

:dependencies [[org.clojure/clojure "1.4.0-alpha5"]
[ordered "1.0.0"]
[org.clojure/tools.macro "[0.1.1,)"]]

It errors because it couldn't download
org.clojure:clojure:jar:1.3.0-alpha5. But why 1.3.0-alpha5?!?

Strangely, when reverting my test project to an older ordered version,
it works fine again.

:dependencies [[org.clojure/clojure "1.4.0-alpha5"]
[ordered "0.3.0"]
[org.clojure/tools.macro "[0.1.1,)"]]

Argh, I'll never understand maven. Is there something option to make it
show the dependency tree? I mean, tools.macro doesn't seem to have any
dependencies declared and ordered 1.0.0 has clojure "[1.2.0,1.3.0]" as
dependency. But why on earth does maven then try to get 1.3.0-alpha5?

And is there a way to influence external deps? For example, I'm pretty
sure that the ordered library works just fine with 1.4.0. Currently, it
seems to me that in order to upgrade my own project to 1.4.0, I have to
wait until all my dependencies also added 1.4.0 as a allowed dependency,
which might take ages and hinders early test-driving and adoption of new
clojure releases.

Sorry, that mail was not intended to become a long rant. But I'm really
interested to know how others deal with the "maven hell".

Bye,
Tassilo

Praki Prakash

unread,
Feb 3, 2012, 12:53:31 PM2/3/12
to clo...@googlegroups.com
I use mvn -X to diagnose such issues. mvn can also produce detailed
reports on dependency and much more (mvn site -- I think).

HTH

> --
> 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

--
(praki)

Stuart Sierra

unread,
Feb 3, 2012, 2:08:21 PM2/3/12
to clo...@googlegroups.com, cloju...@googlegroups.com
Both Maven and Leiningen can exclude transitive dependencies. In lein, it looks like this:

https://github.com/technomancy/leiningen/blob/8baf33ec80bae1d3509590215262351aa2d72fbe/sample.project.clj#L35

-S

Sam Aaron

unread,
Feb 3, 2012, 2:09:47 PM2/3/12
to clo...@googlegroups.com

On 3 Feb 2012, at 15:47, Stuart Sierra wrote:

> Also, if somebody wants to compile a list on the wiki of all the bug
> fixes and changes since 1.3, that would be very helpful. Thanks!

That would be wonderful (particularly if someone could post a link to that list on this mailing list). Not being too steeped in the ways and means of Clojure dev workflows and practices I always find it tremendously difficult to get an understanding of what's going on with the development. As such, I have absolutely no idea what's going into 1.4, what's left to be done and how the changes will impact my Clojure software.

I'm sure that as soon as I post this, someone will reply with a link to a page with some useful information. However, I'm personally unable to easily find anything using google and/or starting here: http://dev.clojure.org/

It would be great (perhaps this already exists?) if there was a page which was just a list of version numbers with a CHANGELOG associated with each.

Sam

---
http://sam.aaron.name


Stuart Sierra

unread,
Feb 3, 2012, 2:11:55 PM2/3/12
to clo...@googlegroups.com
Starting with 1.3 there is a changes.md file in the Clojure source.
-S

Cedric Greevey

unread,
Feb 3, 2012, 2:24:45 PM2/3/12
to clo...@googlegroups.com
On Fri, Feb 3, 2012 at 2:09 PM, Sam Aaron <sama...@gmail.com> wrote:
>
> On 3 Feb 2012, at 15:47, Stuart Sierra wrote:
>
>> Also, if somebody wants to compile a list on the wiki of all the bug
>> fixes and changes since 1.3, that would be very helpful. Thanks!
>
> That would be wonderful (particularly if someone could post a link to that list on this mailing list). Not being too steeped in the ways and means of Clojure dev workflows and practices I always find it tremendously difficult to get an understanding of what's going on with the development. As such, I have absolutely no idea what's going into 1.4, what's left to be done and how the changes will impact my Clojure software.

Last time I looked, we were still waiting for such a list/link to be
posted here for the 1.2->1.3 changes.

Tassilo Horn

unread,
Feb 3, 2012, 2:25:15 PM2/3/12
to clo...@googlegroups.com
Praki Prakash <praki....@gmail.com> writes:

Hi Praki,

> I use mvn -X to diagnose such issues. mvn can also produce detailed
> reports on dependency and much more (mvn site -- I think).

I operate maven thru leiningen only, but probably I should get some
understanding of maven, too. Right now, I even cannot determine the
maven command for fetching deps (after generating a maven pom.xml using
"lein pom"). ;-)

Phil already told me how I can explicitly disable the possibly
conflicting deps of a dep of my dep inside leiningen over at
clojure-dev.

https://groups.google.com/d/msg/clojure-dev/ceGaYJfLdKE/FExtowIXSxEJ

Thanks,
Tassilo

Cedric Greevey

unread,
Feb 3, 2012, 2:26:31 PM2/3/12
to clo...@googlegroups.com
On Fri, Feb 3, 2012 at 2:11 PM, Stuart Sierra
<the.stua...@gmail.com> wrote:
> Starting with 1.3 there is a changes.md file in the Clojure source.

I'm fairly sure the OP wants a human-readable, user-centric file he
can view by clicking a link or pasting a URL into his browser, not a
.md file (whatever THAT is) that he has to find, download, and unzip
the source distribution to get at.

Tassilo Horn

unread,
Feb 3, 2012, 2:28:17 PM2/3/12
to cloju...@googlegroups.com, clo...@googlegroups.com
Stuart Sierra <the.stua...@gmail.com> writes:

Hi Stuart,

> Both Maven and Leiningen can exclude transitive dependencies. In lein,
> it looks like this:
>
> https://github.com/technomancy/leiningen/blob/8baf33ec80bae1d3509590215262351aa2d72fbe/sample.project.clj#L35

Yes, Phil already pointed that out, and it does the trick. :-)

Thanks,
Tassilo (running successfully on 1.4.0-beta1, now)

Sam Aaron

unread,
Feb 3, 2012, 2:33:31 PM2/3/12
to clo...@googlegroups.com

The md file (which stands for markdown[1]) is here:

https://github.com/clojure/clojure/blob/master/changes.md

However it only covers 1.3 and nothing w.r.t. 1.4 work

Sam

[1]:http://daringfireball.net/projects/markdown/

---
http://sam.aaron.name

Tassilo Horn

unread,
Feb 3, 2012, 2:40:26 PM2/3/12
to clo...@googlegroups.com
Cedric Greevey <cgre...@gmail.com> writes:

> On Fri, Feb 3, 2012 at 2:11 PM, Stuart Sierra
> <the.stua...@gmail.com> wrote:
>> Starting with 1.3 there is a changes.md file in the Clojure source.
>
> I'm fairly sure the OP wants a human-readable, user-centric file he
> can view by clicking a link or pasting a URL into his browser,

Yeah, do it exactly that way. ;-)

https://github.com/clojure/clojure/blob/master/changes.md

> not a .md file (whatever THAT is)

MarkDown, the wiki syntax used by github.

> that he has to find, download, and unzip the source distribution to
> get at.

It's 2012, the sources are browsable online!

Bye,
Tassilo

Cedric Greevey

unread,
Feb 3, 2012, 3:00:31 PM2/3/12
to clo...@googlegroups.com

Not without a link to them they aren't.

FWIW, the file seems to act like perfectly readable HTML in the
browser (surprisingly -- I was expecting something more like trying to
read raw HTML, with tags cluttering up everything, and no working
outbound links, since I didn't expect Firefox to speak .md) but is
fairly terse on details (and, especially, on rationales for some of
the changes) though it links to a much more detailed page about the
numerics changes.

Sam Aaron

unread,
Feb 3, 2012, 3:38:14 PM2/3/12
to clo...@googlegroups.com

On 3 Feb 2012, at 20:00, Cedric Greevey wrote:
>
> FWIW, the file seems to act like perfectly readable HTML in the
> browser (surprisingly -- I was expecting something more like trying to
> read raw HTML, with tags cluttering up everything, and no working
> outbound links, since I didn't expect Firefox to speak .md)

That's because Github kicks ass :-) It automatically renders markdown files as html when you view them in the browser.

Markdown was invented to be readable as raw text and then easily convertible to html.

Sam

---
http://sam.aaron.name

Jim Crossley

unread,
Feb 3, 2012, 3:51:26 PM2/3/12
to clo...@googlegroups.com
Tassilo Horn <tas...@member.fsf.org> writes:

[...]

> I operate maven thru leiningen only, but probably I should get some
> understanding of maven, too. Right now, I even cannot determine the
> maven command for fetching deps (after generating a maven pom.xml
> using "lein pom"). ;-)

mvn install

[...]

Tassilo Horn

unread,
Feb 3, 2012, 4:20:36 PM2/3/12
to clo...@googlegroups.com
Jim Crossley <jcros...@gmail.com> writes:

>> I operate maven thru leiningen only, but probably I should get some
>> understanding of maven, too. Right now, I even cannot determine the
>> maven command for fetching deps (after generating a maven pom.xml
>> using "lein pom"). ;-)
>
> mvn install

Ah, ok, seems to work. Except that it doesn't copy the deps into my
project but only to ~/.m2/, but that's probably the maven way. And it
fetches much more than the transitive closure of my project's
dependencies, i.e., plexus, surefire, commons-cli, doxia, and what not,
many of them even in various different versions...

Bye,
Tassilo

Jim Crossley

unread,
Feb 3, 2012, 5:17:43 PM2/3/12
to clo...@googlegroups.com
Tassilo Horn <tas...@member.fsf.org> writes:

[...]

> Ah, ok, seems to work. Except that it doesn't copy the deps into my


> project but only to ~/.m2/, but that's probably the maven way.

Correct. Though this plugin may be of interest:
http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html

> And it fetches much more than the transitive closure of my project's
> dependencies, i.e., plexus, surefire, commons-cli, doxia, and what
> not, many of them even in various different versions...

Yeah, probably due to deps of the plugins if you've never built any
maven project locally.

Jim

>
> Bye,
> Tassilo

Alasdair MacLeod

unread,
Feb 3, 2012, 6:24:26 PM2/3/12
to Clojure
> That's because Github kicks ass :-) It automatically renders markdown files as html when you view them in the browser.
I've downloaded the jar but don't see any changes.md file in there
https://github.com/clojure/clojure/blob/master/changes.md lists 1.3
changes
I don't see a 1.4 branch on GitHub and don't know where else to look.

Can someone provide a link to the 1.4 changes.md if it exists?

AndyK

unread,
Feb 3, 2012, 10:06:07 PM2/3/12
to Clojure
Is 1.4 supposed to be compatible with 1.3 and libraries written to
1.3?

For example, I've found some 1.2 libraries don't play nicely with 1.3
because of the clojure-contrib changes and would like to avoid
problems like that while being able to use 1.4 in my code.

Sean Corfield

unread,
Feb 4, 2012, 12:41:08 AM2/4/12
to clo...@googlegroups.com
On Fri, Feb 3, 2012 at 7:06 PM, AndyK <andy....@gmail.com> wrote:
> Is 1.4 supposed to be compatible with 1.3 and libraries written to
> 1.3?

The changes between 1.3 and 1.4 are a lot smaller than between 1.2 and
1.3, fortunately :)

> For example, I've found some 1.2 libraries don't play nicely with 1.3
> because of the clojure-contrib changes and would like to avoid
> problems like that while being able to use 1.4 in my code.

The contrib changes were a one-off, breaking the monolithic 1.2
contrib into smaller, well-maintained pieces, and there is already
automatic testing of those new libraries against 1.4.0 - see the
matrix tests here: http://build.clojure.org/

One thing you can do to help yourself in this is use lein-multi to
automatically run your application's tests against different versions.
At World Singles, we run all our tests against 1.3.0 (what we're using
in production), 1.4.0-master-SNAPSHOT and the latest "official" build
(currently beta1).
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)

Reply all
Reply to author
Forward
0 new messages