Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Clojure has Leiningen for library versioning / package management / builds. It's excellent.


It seems to be a compile time only tool. Does it let you safely deploy application code separately from its dependencies? Does it let different applications share libraries when possible? Does it come with tools that let you query the version and dependencies of a deployed library and see how those dependencies are satisfied? Can you push a security fix for a library to servers in the field without completely rebuilding and redeploying every application that uses the library (if you can figure out which ones they are?)


> It seems to be a compile time only tool.

Out-of-the-box it's a development tool, but it has plugins for certain types of deployment: https://github.com/technomancy/leiningen/wiki/Plugins

You can create tar/jar/war files, deploy artifacts to remote mvn repositories, push to the Google App Engine or Elastic Beanstalk, etc. Deployment to generic unix servers is handled by Pallet, which integrates well with Leiningen: https://github.com/pallet/pallet-lein

> Does it let different applications share libraries when possible?

This goes strongly against the culture of the JVM for various reasons that are outside the scope of Clojure itself.

> Can you push a security fix for a library to servers in the field without completely rebuilding and redeploying every application that uses the library.

Sure, this is pretty easy to do with Swank, but the specifics are going to vary widely based on the type of deployment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: