librelist archives

« back to archive

[ANN] Leiningen 2.3.2 released

[ANN] Leiningen 2.3.2 released

Phil Hagelberg
2013-08-20 @ 22:11
Hello everybody.

I'm happy to announce the release of Leiningen 2.3.2, a minor bugfix
release over 2.3.1. Changes include the following:

* Write `.nrepl-port` file for better tool interoperability. (Phil Hagelberg)
* Support targeted upgrades in `lein.bat`. (Shantanu Kumar)
* Warn when projects rely on implicit AOT of `:main`. (Phil Hagelberg)
* Fix a bug where implicit AOT of `:main` was disabled. (Phil Hagelberg)
* Disable profile isolation by default. Will be back in 3.x. (Phil Hagelberg)

The biggest change here the disabling of profile isolation (a new by
default due to incompatibilities with certain projects that hard-code
paths. Profile isolation was a new feature in 2.3.0 described in the FAQ:

> Leiningen supports isolating different profiles by their target
> directory. Simply specify `:target-path "target/%s"` in order to have
> each profile set use a different directory for generated files. Then you
> can put your `:aot` settings in the `:uberjar` profiles, and the .class
> files created from the AOT process will not affect normal development
> use. You can specify the profile-isolated `:target-path` in your `:user`
> profile if you want it applied across all the projects you work on.

I still recommend using profile isolation since it helps avoid a number
of subtle gotchas around stale AOT files and user-level dependencies
being visible with downstream consumers, but you now have to opt-in to
this feature by setting :target-path as described above.

We've also fixed a bug where setting :main without setting :aot would no
longer implicitly compile the :main namespace. It's still recommended to
be explicit about what :aot you need, (in the :uberjar profile if
applicable) but the old behaviour has been restored.

You'll also want to add a .gitignore entry for the new .nrepl-port file
which we're using for improved cross-tool compatibility; discussion of
that feature is here: