Hey y'all, here are some short but exciting boot announcements I wanted to share!
Boot2: it's coming.
Micha has been hero-moding on boot2 over the past few months, and I'm told it will be Ready Soon™. boot2 and related tools now also have a new home, this GitHub organization: https://github.com/boot-clj. boot1 remains at tailrecursion/boot and is in something like maintenance mode.
While boot2 shares much philosophically and architecturally with boot1, boot2 is a significant refactoring that is not backwards compatible.
Beyond refinements to the boot API and plugin infrastructure informed by over a year of boot1 production use, boot2 features:
keyword arg and command-line parameter symmetry In boot2,
deftask defines a task, or function, that can be composed with other tasks. Running a task will usually involve parameterizing it somehow (like setting
:optimizations for the cljs task). Prior to boot2, this parameterization was cumbersome to do at the command line. boot2 brings a total revamp of the way tasks are defined and documented, so now it's easy to compose and parameterize tasks both in your
build.boot and from the CLI.
runtime classpath isolation without resorting to separate JVMs. In boot2, a new mechanism, pods, provide a way to load Maven dependencies hygienically in particular contexts. This work is based on shimdandy by our friend Toby Crawley of Immutant fame. The reason they're awesome? Tasks in your
build.boot can have their own dependencies, while still sharing the JVM with your application. You can also use the
pod facilities on your own to do things like: create macros that use different versions of the same dependency, run your tests against various library versions to check for regression or compatibility bugs... and probably way more cool things we don't even know yet.
bootstrapped boot1 leaned heavily on Leiningen for packaging and deployment support. boot2 is completely independent of Leiningen, and has its own native
war tasks that can be composed and parameterized either in a
build.boot or from the command line.
dead-simple ClojureScript REPL The amenities of boot2 will make for a fantastic ClojureScript interactive setup, possibly the best yet. For a sense of how awesome ClojureScript REPLing will be, check out adzerk/boot-cljs-repl
Your help wanted
While boot2 is well on its way, we have yet to port Hoplon, but it's next on the hit list. Our goal is to have boot2 polished and ready for release, and Hoplon 6 ready atop boot2, by the end of the year. But we'll need your help!
If you have time to experiment with boot2, please do. We can use help with code, but also with documentation. We'll do our best to announce here other ways you can help, and other news, as it comes to mind.
Thank you in advance for taking boot2 for a spin. If you hit any snags or have questions, don't hesitate to post here or chat with us in
#hoplon on freenode.