- Improved checkout handling when cljsbuild entry is missing #473
- Add
lein cljsbuild deps
task to install cljsbuild deps to local Maven repo #497
- When no output-dir given use relative target-path instead of absolute target-path. A relative target path is required when building for nodejs #464.
- Use full project map to build subproject. Previously, some project options (e.g. :root and :prep-tasks) weren't included causing problems such as #465 and #434.
- No :output-to default needed when :modules option provided. Fix auto build for modules. #467
- Fix #453: use ProcessBuilder for output redirect (#459)
- Fix Markdown issues (#460, #461)
- Update sample.project.clj doc to reflect default :optimizations value (#456)
- Fix #455: use clojure.tools.namespace for reloading (#455)
- Add support for lein 2.7's
:managed-dependencies
(#454) - Fix: 1.1.4 causes cljsbuild to sometimes compile sources in other build configs (#451)
- Fix bad ns form with regard to core specs
- Use full project config to create subproject
- Remove
System.exit
after compilation - Remove cljs-compat
- 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
checkouts
directories now are taken into account when triggering builds undercljsbuild auto
- Added support for
reader conditionals
and the new
.cljc
file type. - Completely removed the
cljsbuild clean
subtask. - cljsbuild configurations now have no default
:optimizations
setting beyond the ClojureScript compiler's own defaults (net effect currently::optimizations :none
, unless specified otherwise in your configs)
- Added
:warning-handlers
option so that compiler warnings/errors/messages can be displayed or potentially fail the build (gh-370, gh-367) - Stop attempting to reload
data_readers.clj
(gh-360) - Failing tests now properly cause cljsbuild to exit Leiningen with a non-zero
error code (gh-356, regression in
1.0.4
) - 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) - The
cljsbuild clean
subtask is now a no-op. You should uselein clean
to remove prior compilation results, and ensure that your output configurations direct those results into a Leiningen:clean-target
(which includes./target
by default) (gh-297)
- ClojureScript
0.0-2197
is 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
0.0-2014
-0.0-2173
. - Fixed a problem where explicitly-specified Clojure and ClojureScript dependencies were being overridden by lein-cljsbuild's defaults (gh-298)
- The
:local-repo
project.clj
configuration (if one exists) is now passed on to subprocesses spawned by lein-cljsbuild (gh-291)
- ClojureScript
0.0-2156
is 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 auto
will pick up any source file modifications made during the compile (gh-277) :jvm-opts
defined inproject.clj
is now used in all lein-cljsbuild tasks (gh-271)- The order of project dependencies as specified in
project.clj
is now preserved for the duration of all lein-cljsbuild tasks (gh-268)
No changes since 1.0.0-alpha2
.
- ClojureScript
0.0-2014
is 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 to0.0-2014
is 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-command
entry is now printed prior to that test being run. (gh-244) - Fixed regression where
cljsbuild auto
would 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
sample
subtask that emits the contents of thesample.project.clj
file 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-command
vector now properly cause a failure (gh-243) - The
:output-wrapper
ClojureScript compiler option is now defaulted totrue
if the:optimizations
option is set to:advanced
(gh-201) - 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-commands
vector 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 auto
has been improved significantly, and should now represent a negligible CPU load. (gh-219) - Under
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.
- Fix
lein cljsbuild test
so 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-path
is 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-path
directory. Explicitly configured paths can still be whatever you like. - For compatibility with Leiningen 2.0,
:resource-paths
is now used instead of:resources-path
. - Fixed a long delay before exiting that could sometimes occur after one-shot tasks (like
cljsbuild once
). - Changes to JavaScript files in
:libs
now trigger rebuilds when usingcljsbuild auto
. - Removed CLOSURE_NO_DEPS notes from example projects, as it is no longer necessary.
Milestone Details for this Release
- 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.
- Modifications to JavaScript files specified in the :libs compiler option will now cause :builds to be rebuilt.
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1513.
- Changed to use clj-stacktrace version 0.2.5.
Milestone Details for this Release
- Fixed a bug where a
RejectedExecutionException
could be thrown if hooks were enabled and the project was run vialein trampoline
. - Added the ability to set
clojure.core/*assert*
via the:assert
option in each:builds
map. - 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.
Milestone Details for this Release
- Fix a bug introduced in 0.2.6 that broke the
cljsbuild jar
task for Leiningen 2.x. - Alleviate the need for the parent project to specify a Clojure version.
Milestone Details for this Release
- Updated to support recent preview releases of Leiningen 2.
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1450.
Milestone Details for this Release
- Removed support for
:warn-on-undeclared
, because the compiler itself now supports a:warnings
option. Use that instead.
Milestone Details for this Release
- 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).
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1424.
- Fixed an issue with copying crossover files under Windows.
Milestone Details for this Release
- Automatically add
closure-js/libs
to:libs
andclosure-js/externs
to:externs
. This means that libraries can put their libs and externs inresources/closure-js/libs/<library-name>
andresources/closure-js/externs/<library-name>
, respectively, and lein-cljsbuild will automatically pick them up.
Milestone Details for this Release
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
:build
suboption:incremental
, which determines whether intermediate JavaScript sources are left intact between automatic builds. The old behavior was to delete intermediate files before each build. This slowed things down, but worked around (unisolated) problems with incremental compilation. Incremental builds are now the default, as they appear to work well, but this option allows the old behavior to be selected if necessary for troubleshooting. - 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 true
no 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.
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1236.
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1211.
- Updated example projects to use the latest Clojure, Ring, Compojure, and Hiccup versions.
Milestone Details for this Release
- Minor fix for compatibility with the latest Leiningen 2 preview.
Milestone Details for this Release
- 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 clean
cleans up :stdout and :stderr files for various commands. - Add a comprehensive unit test suite, to hopefully help prevent new releases from breaking things.
Milestone Details for this Release
- Changed to use upstream ClojureScript version 0.0-1011. This should fix REPL issues.