Release Notes for lein-cljsbuild
- Avoid calls to cljs.build.api/src-file->target_file on deps.cljs
- Use ClojureScript build API to build project
- Add support for mirrors project attribute
- Update advanced example project to work with PhantomJS 2.0
- Eliminated all remaining non-default ClojureScript compiler options
- Changes in Leiningen
checkoutsdirectories now are taken into account when triggering builds under
- Added support for
and the new
- Completely removed the
- cljsbuild configurations now have no default
:optimizationssetting beyond the ClojureScript compiler's own defaults (net effect currently:
:optimizations :none, unless specified otherwise in your configs)
:warning-handlersoption so that compiler warnings/errors/messages can be displayed or potentially fail the build (gh-370, gh-367)
- Stop attempting to reload
- Failing tests now properly cause cljsbuild to exit Leiningen with a non-zero
error code (gh-356, regression in
- Fix the version compatibility checks to allow any SNAPSHOT version of cljsbuild. (gh-346)
- Refactoring applied to minimize the amount of rework performed by
cljsbuild auto, yielding significant workflow responsiveness improvements (gh-349, gh-348, gh-345)
cljsbuild cleansubtask is now a no-op. You should use
lein cleanto remove prior compilation results, and ensure that your output configurations direct those results into a Leiningen
./targetby default) (gh-297)
0.0-2197is now the default release added to projects that do not specify a ClojureScript dependency explicitly, and is also the new minimum required version of ClojureScript.
- Older releases of lein-cljsbuild will only work with ClojureScript versions
- Fixed a problem where explicitly-specified Clojure and ClojureScript dependencies were being overridden by lein-cljsbuild's defaults (gh-298)
project.cljconfiguration (if one exists) is now passed on to subprocesses spawned by lein-cljsbuild (gh-291)
0.0-2156is now the default release added to projects that do not specify a ClojureScript dependency explicitly.
- Crossovers are now officially deprecated, and will be removed in future releases. Please use cljx to target both Clojure and ClojureScript from the same codebase.
- Fixed timestamps applied to compiled output files (gh-281, gh-282)
- Output files are now touched to change their mtime to match when the last
compilation was started, so that
cljsbuild autowill pick up any source file modifications made during the compile (gh-277)
project.cljis now used in all lein-cljsbuild tasks (gh-271)
- The order of project dependencies as specified in
project.cljis now preserved for the duration of all lein-cljsbuild tasks (gh-268)
No changes since
0.0-2014is now the default release added to projects that do not specify a ClojureScript dependency explicitly. Further, this version of ClojureScript is now a minimum requirement; if upgrading to
0.0-2014is not possible for some reason, you must stick with prior revisions of lein-cljsbuild. (gh-253, gh-264)
- lein-cljsbuild will now halt your build if you are declaring a ClojureScript dependency that is known to be incompatible with the version of lein-cljsbuild you are using. (gh-266)
- All tasks are now run with a max Java heap of 256MB. (gh-261)
- The name of each
:test-commandentry is now printed prior to that test being run. (gh-244)
- Fixed regression where
cljsbuild autowould exit on a compilation error (gh-249)
- Fixed regression where tests would halt on a failing
:test-command, rather than proceeding through all. (gh-252)
- Added new
samplesubtask that emits the contents of the
sample.project.cljfile detailing cljsbuild's options (gh-232)
- Hard compilation failures now properly fail the broader Leiningen invocation (gh-234)
- Any non-string values in a
:test-commandvector now properly cause a failure (gh-243)
:output-wrapperClojureScript compiler option is now defaulted to
:optimizationsoption is set to
- Fixed an issue where case-sensitivity of the drive letter on windows prevented the proper relativization of paths to Clojure files containing macros to be (re)loaded (gh-240)
- Test runs now properly fail if any
:test-commandsvector contains any non-string values (gh-243)
- Changed to use upstream ClojureScript version 0.0-1859.
- cljsbuild now warns if you have not explicitly specified a ClojureScript dependency in your project. (gh-224)
- The file scanning associated with
cljsbuild autohas been improved significantly, and should now represent a negligible CPU load. (gh-219)
cljsbuild auto, Clojure files are now only reloaded if they define macros. (gh-210)
- A sane error message is now emitted if you attempt to run a nonexistent cljsbuild task (gh-215)
- Various documentation and example project tweaks.
- Changed to use upstream ClojureScript version 0.0-1806.
- Changed to use upstream ClojureScript version 0.0-1803.
- Updated the Clojure version used in the plugin to 1.5.1.
- This plugin version requires Leiningen version 2.1.2 or higher.
lein cljsbuild testso that it exits quickly (i.e. without a 30-second delay).
- Hide the Clojure stacktrace when ClojureScript unit tests fail.
- Dropped support for Leiningen 1.x, now that Leiningen 2.0 is available. REPEAT: Leiningen 1.x is no longer supported.
- Changed the
:source-path "path"option to
:source-paths ["path" "path"]. The new option accepts a vector of paths rather than a single path. The old singular
:source-pathis now deprecated and will be removed soon.
- Changed all default output paths (e.g. for temporary compiler files, crossover files, and REPL files) to be in the
:target-pathdirectory. Explicitly configured paths can still be whatever you like.
- For compatibility with Leiningen 2.0,
:resource-pathsis now used instead of
- Fixed a long delay before exiting that could sometimes occur after one-shot tasks (like
:libsnow trigger rebuilds when using
- Removed CLOSURE_NO_DEPS notes from example projects, as it is no longer necessary.
- Changed to use upstream ClojureScript version 0.0-1552.
- Balanced the parenthesis and square braces in the README correctly.
- Added a workaround for an unresolved upstream compiler issue: http://dev.clojure.org/jira/browse/CLJS-418.
- Changed to use upstream ClojureScript version 0.0-1513.
- Changed to use clj-stacktrace version 0.2.5.
- Fixed a bug where a
RejectedExecutionExceptioncould be thrown if hooks were enabled and the project was run via
- Added the ability to set
:assertoption in each
- Fixed a bug where if exceptions would not be caught if thrown while automatically reloading a Clojure file (e.g. containing macros).
- Changed to use upstream ClojureScript version 0.0-1503.
- Fix a bug introduced in 0.2.6 that broke the
cljsbuild jartask for Leiningen 2.x.
- Alleviate the need for the parent project to specify a Clojure version.
- Updated to support recent preview releases of Leiningen 2.
- Changed to use upstream ClojureScript version 0.0-1450.
- Removed support for
:warn-on-undeclared, because the compiler itself now supports a
:warningsoption. Use that instead.
- Changed to use upstream ClojureScript version 0.0-1443.
- Ignore hidden files in the source and crossover paths (this makes things work better with emacs or other editors that use dotfiles for state).
- Changed to use upstream ClojureScript version 0.0-1424.
- Fixed an issue with copying crossover files under Windows.
- Automatically add
:externs. This means that libraries can put their libs and externs in
resources/closure-js/externs/<library-name>, respectively, and lein-cljsbuild will automatically pick them up.
Note that the minor version was incremented not due to any major features, but due to the fact that the
:notify-command option was changed in a backwards-incompatible way.
- The compiler is now run under Clojure 1.4.0.
- Added a new
- The :notify option has been changed such that its argument is consistent with other cljsbuild shell commands. This means that the
%argument is no longer respected, and the textual result will simply be appended as the last command line argument. Also,
:beep trueno longer has any effect. If either of these features is desired, the recommended solution is a small shell script wrapper.
- Clojure source files that reside in the ClojureScript :source-path (as well as crossover macro files) are now monitored for changes. When modified, they will be reloaded, and a build will be triggered. This is useful for ClojureScript projects that use macros.
- Multiple builds are now built sequentially instead of in parallel. This is due to the fact that the underlying compiler is no longer thread-safe.
- Changed to use upstream ClojureScript version 0.0-1236.
- Changed to use upstream ClojureScript version 0.0-1211.
- Updated example projects to use the latest Clojure, Ring, Compojure, and Hiccup versions.
- Minor fix for compatibility with the latest Leiningen 2 preview.
- The various REPL commands now work when used via Leiningen 2. This should mean that lein-cljsbuild is fully Leiningen-2-compatible.
- Raise a descriptive error if the parent project uses Clojure < 1.3.
- Ensure that
lein cljsbuild cleancleans up :stdout and :stderr files for various commands.
- Add a comprehensive unit test suite, to hopefully help prevent new releases from breaking things.
- Changed to use upstream ClojureScript version 0.0-1011. This should fix REPL issues.