I was hoping not to have to ask this question, since it’s likely to start a heated debate. But here goes…
How would Storm developers feel about switching the build system from Leiningen to Maven? This has nothing to do with personal preference (I’m fine with either). I ask in the context of release management and integration with the ASF infrastructure. I know Leiningen is very concise (since it uses clojure) and Maven is often looked at as a “mess of xml”. And there are a lot of other differences that people feel passionate about. So I’d like to put “minor” differences aside for a minute and focus on a few points that are important from a release management perspective. 1. ASF infrastructure support This is probably the biggest factor. From what I can tell (I could be wrong) Storm is the first ASF project to use Clojure and Leiningen, so it is not well supported from an infrastructure perspective. For example, although there is a Leiningen plugin for Jenkins, it’s not installed on builds.apache.org, so we’d have to ask INFRA to install it which could take a long time. To work around that, the build would have to do a temporary install of Leiningen with each build. We’d probably have to add a bunch of support scripts as well to do things like detect test failures, etc. Maven on the other hand is pretty much a first class citizen in terms of ASF infrastructure, and using Maven makes it easy to build/sign releases, stage to Sonatype, etc. There are a wealth of plugins as well that integrate well with infra for such things as publishing docs, project websites, etc. 2. Developer productivity One thing lot of people seem to like about Lieningen is the ability to quickly bring up a REPL and start hacking away. For this experiment, I used to the clojure maven plugin (https://github.com/talios/clojure-maven-plugin) and found it (for me) to be on par with Leiningen. To bring up a REPL you just type: `mvn clojure:repl` To do a comparison, I put together a quick and dirty experimental branch with Leiningen replaced with Maven: https://github.com/ptgoetz/incubator-storm/tree/maven-test I’d encourage anyone to check it out play around to see what developing Storm with Maven would be like. I’d like to hear opinions from other committers and developers. If switching to Maven is something we want to do, I’ll volunteer to do the work. Thanks, Taylor
signature.asc
Description: Message signed with OpenPGP using GPGMail
