diff --git a/doc/boot.core.md b/doc/boot.core.md
index 0a88e594..ef41c3c6 100644
--- a/doc/boot.core.md
+++ b/doc/boot.core.md
@@ -12,7 +12,7 @@ The Boot core namespace, containing most of Boot's public API.
##### Boot Environment
- [`get-env`](#get-env) [`get-sys-env`](#get-sys-env) [`merge-env!`](#merge-env) [`post-env!`](#post-env) [`pre-env!`](#pre-env) [`set-env!`](#set-env) [`set-sys-env!`](#set-sys-env)
+ [`get-checkouts`](#get-checkouts) [`get-env`](#get-env) [`get-sys-env`](#get-sys-env) [`merge-env!`](#merge-env) [`post-env!`](#post-env) [`pre-env!`](#pre-env) [`set-env!`](#set-env) [`set-sys-env!`](#set-sys-env)
##### Define Tasks
@@ -40,7 +40,7 @@ The Boot core namespace, containing most of Boot's public API.
##### Filter Sequences Of TmpFiles
- [`by-ext`](#by-ext) [`by-name`](#by-name) [`by-path`](#by-path) [`by-re`](#by-re) [`file-filter`](#file-filter) [`not-by-ext`](#not-by-ext) [`not-by-name`](#not-by-name) [`not-by-path`](#not-by-path) [`not-by-re`](#not-by-re)
+ [`by-ext`](#by-ext) [`by-meta`](#by-meta) [`by-name`](#by-name) [`by-path`](#by-path) [`by-re`](#by-re) [`file-filter`](#file-filter) [`not-by-ext`](#not-by-ext) [`not-by-meta`](#not-by-meta) [`not-by-name`](#not-by-name) [`not-by-path`](#not-by-path) [`not-by-re`](#not-by-re)
##### Other Fileset Queries
@@ -56,7 +56,7 @@ The Boot core namespace, containing most of Boot's public API.
##### Misc. Helpers
- [`empty-dir!`](#empty-dir) [`git-files`](#git-files) [`gpg-decrypt`](#gpg-decrypt) [`json-generate`](#json-generate) [`json-parse`](#json-parse) [`sync!`](#sync) [`touch`](#touch) [`watch-dirs`](#watch-dirs) [`yaml-generate`](#yaml-generate) [`yaml-parse`](#yaml-parse)
+ [`empty-dir!`](#empty-dir) [`git-files`](#git-files) [`gpg-decrypt`](#gpg-decrypt) [`json-generate`](#json-generate) [`json-parse`](#json-parse) [`patch!`](#patch) [`sync!`](#sync) [`template`](#template) [`touch`](#touch) [`watch-dirs`](#watch-dirs) [`yaml-generate`](#yaml-generate) [`yaml-parse`](#yaml-parse)
##### Deprecated / Internal
@@ -64,7 +64,7 @@ The Boot core namespace, containing most of Boot's public API.
-### [`*app-version*`](../../2.5.5/boot/core/src/boot/core.clj#L29)
+### [`*app-version*`](../../2.6.0/boot/core/src/boot/core.clj#L31)
```
The running version of boot app.
@@ -72,7 +72,7 @@ The running version of boot app.
-### [`*boot-opts*`](../../2.5.5/boot/core/src/boot/core.clj#L32)
+### [`*boot-opts*`](../../2.6.0/boot/core/src/boot/core.clj#L34)
```
Command line options for boot itself.
@@ -80,7 +80,7 @@ Command line options for boot itself.
-### [`*boot-script*`](../../2.5.5/boot/core/src/boot/core.clj#L30)
+### [`*boot-script*`](../../2.6.0/boot/core/src/boot/core.clj#L32)
```
The script's name (when run as script).
@@ -88,7 +88,7 @@ The script's name (when run as script).
-### [`*boot-version*`](../../2.5.5/boot/core/src/boot/core.clj#L31)
+### [`*boot-version*`](../../2.6.0/boot/core/src/boot/core.clj#L33)
```
The running version of boot core.
@@ -96,7 +96,7 @@ The running version of boot core.
-### [`*warnings*`](../../2.5.5/boot/core/src/boot/core.clj#L33)
+### [`*warnings*`](../../2.6.0/boot/core/src/boot/core.clj#L35)
```
Count of warnings during build.
@@ -104,7 +104,7 @@ Count of warnings during build.
-### [`add-asset`](../../2.5.5/boot/core/src/boot/core.clj#L419)
+### [`add-asset`](../../2.6.0/boot/core/src/boot/core.clj#L487)
```clojure
(add-asset fileset dir & {:keys [mergers include exclude], :as opts})
@@ -112,11 +112,32 @@ Count of warnings during build.
```
Add the contents of the java.io.File dir to the fileset's assets.
+
+ Option :include and :exclude, a #{} of regex expressions, control
+ which paths are added; a path is only added if it matches an :include
+ regex and does not match any :exclude regexes.
+
+ If the operation produces duplicate entries, they will be merged using
+ the rules specified by the :mergers option. A merge rule is a
+ [regex fn] pair, where fn takes three parameters:
+
+ - an InputStream for the previous entry,
+ - an InputStream of the new entry,
+ - and an OutputStream that will replace the entry.
+
+ You will typically use default mergers as in:
+
+ [[ #"data_readers.clj$" into-merger ]
+ [ #"META-INF/services/.*" concat-merger ]
+ [ #".*" first-wins-merger ]]
+
+ The merge rule regular expressions are tested in order, and the fn
+ from the first match is applied.
```
-### [`add-cached-asset`](../../2.5.5/boot/core/src/boot/core.clj#L424)
+### [`add-cached-asset`](../../2.6.0/boot/core/src/boot/core.clj#L513)
```clojure
(add-cached-asset fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts})
@@ -128,7 +149,7 @@ FIXME: document
-### [`add-cached-resource`](../../2.5.5/boot/core/src/boot/core.clj#L454)
+### [`add-cached-resource`](../../2.6.0/boot/core/src/boot/core.clj#L585)
```clojure
(add-cached-resource fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts})
@@ -140,7 +161,7 @@ FIXME: document
-### [`add-cached-source`](../../2.5.5/boot/core/src/boot/core.clj#L439)
+### [`add-cached-source`](../../2.6.0/boot/core/src/boot/core.clj#L549)
```clojure
(add-cached-source fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts})
@@ -152,7 +173,7 @@ FIXME: document
-### [`add-meta`](../../2.5.5/boot/core/src/boot/core.clj#L464)
+### [`add-meta`](../../2.6.0/boot/core/src/boot/core.clj#L595)
```clojure
(add-meta fileset meta-map)
@@ -167,7 +188,7 @@ will be merged into the TmpFile objects associated with the paths.
-### [`add-resource`](../../2.5.5/boot/core/src/boot/core.clj#L449)
+### [`add-resource`](../../2.6.0/boot/core/src/boot/core.clj#L559)
```clojure
(add-resource fileset dir & {:keys [mergers include exclude], :as opts})
@@ -175,11 +196,32 @@ will be merged into the TmpFile objects associated with the paths.
```
Add the contents of the java.io.File dir to the fileset's resources.
+
+ Option :include and :exclude, a #{} of regex expressions, control
+ which paths are added; a path is only added if it matches an :include
+ regex and does not match any :exclude regexes.
+
+ If the operation produces duplicate entries, they will be merged using
+ the rules specified by the :mergers option. A merge rule is a
+ [regex fn] pair, where fn takes three parameters:
+
+ - an InputStream for the previous entry,
+ - an InputStream of the new entry,
+ - and an OutputStream that will replace the entry.
+
+ You will typically use default mergers as in:
+
+ [[ #"data_readers.clj$" into-merger ]
+ [ #"META-INF/services/.*" concat-merger ]
+ [ #".*" first-wins-merger ]]
+
+ The merge rule regular expressions are tested in order, and the fn
+ from the first match is applied.
```
-### [`add-source`](../../2.5.5/boot/core/src/boot/core.clj#L434)
+### [`add-source`](../../2.6.0/boot/core/src/boot/core.clj#L523)
```clojure
(add-source fileset dir & {:keys [mergers include exclude], :as opts})
@@ -187,11 +229,32 @@ Add the contents of the java.io.File dir to the fileset's resources.
```
Add the contents of the java.io.File dir to the fileset's sources.
+
+ Option :include and :exclude, a #{} of regex expressions, control
+ which paths are added; a path is only added if it matches an :include
+ regex and does not match any :exclude regexes.
+
+ If the operation produces duplicate entries, they will be merged using
+ the rules specified by the :mergers option. A merge rule is a
+ [regex fn] pair, where fn takes three parameters:
+
+ - an InputStream for the previous entry,
+ - an InputStream of the new entry,
+ - and an OutputStream that will replace the entry.
+
+ You will typically use default mergers as in:
+
+ [[ #"data_readers.clj$" into-merger ]
+ [ #"META-INF/services/.*" concat-merger ]
+ [ #".*" first-wins-merger ]]
+
+ The merge rule regular expressions are tested in order, and the fn
+ from the first match is applied.
```
-### [`boot`](../../2.5.5/boot/core/src/boot/core.clj#L796)
+### [`boot`](../../2.6.0/boot/core/src/boot/core.clj#L940)
```clojure
(boot & argv)
@@ -205,7 +268,7 @@ Otherwise they are assumed to evaluate to task middleware.
-### [`bootignore`](../../2.5.5/boot/core/src/boot/core.clj#L37)
+### [`bootignore`](../../2.6.0/boot/core/src/boot/core.clj#L39)
```
Set of regexes source file paths must not match.
@@ -213,7 +276,7 @@ Set of regexes source file paths must not match.
-### [`by-ext`](../../2.5.5/boot/core/src/boot/core.clj#L1012)
+### [`by-ext`](../../2.6.0/boot/core/src/boot/core.clj#L1187)
```clojure
(by-ext exts files & [negate?])
@@ -228,7 +291,25 @@ listed in `exts`.
-### [`by-name`](../../2.5.5/boot/core/src/boot/core.clj#L986)
+### [`by-meta`](../../2.6.0/boot/core/src/boot/core.clj#L1143)
+
+```clojure
+(by-meta preds files & [negate?])
+```
+
+```
+This function takes two arguments: `preds` and `files`, where `preds` is a
+seq of predicates to be applied to the file metadata and `files` is a seq of
+file objects obtained from the fileset with the help of `boot.core/ls` or any
+other way. Returns a seq of files in `files` which match all of the
+predicates in `preds`. `negate?` inverts the result.
+
+This function will not unwrap the `File` objects from `TmpFiles`.
+```
+
+
+
+### [`by-name`](../../2.6.0/boot/core/src/boot/core.clj#L1161)
```clojure
(by-name names files & [negate?])
@@ -243,7 +324,7 @@ names listed in `names`.
-### [`by-path`](../../2.5.5/boot/core/src/boot/core.clj#L999)
+### [`by-path`](../../2.6.0/boot/core/src/boot/core.clj#L1174)
```clojure
(by-path paths files & [negate?])
@@ -258,7 +339,7 @@ paths listed in `paths`.
-### [`by-re`](../../2.5.5/boot/core/src/boot/core.clj#L1025)
+### [`by-re`](../../2.6.0/boot/core/src/boot/core.clj#L1200)
```clojure
(by-re res files & [negate?])
@@ -273,7 +354,7 @@ the regex patterns in `res`.
-### [`cache-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L279)
+### [`cache-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L347)
```clojure
(cache-dir! key & {:keys [global]})
@@ -288,7 +369,7 @@ directories for the same key when run in different projects.
-### [`cleanup`](../../2.5.5/boot/core/src/boot/core.clj#L717)
+### [`cleanup`](../../2.6.0/boot/core/src/boot/core.clj#L868)
```clojure
(cleanup & body)
@@ -302,7 +383,7 @@ clean up persistent resources created by the task (eg. threads, files, etc.)
-### [`commit!`](../../2.5.5/boot/core/src/boot/core.clj#L378)
+### [`commit!`](../../2.6.0/boot/core/src/boot/core.clj#L446)
```clojure
(commit! fileset)
@@ -315,7 +396,7 @@ tree structure.
-### [`configure-repositories!`](../../2.5.5/boot/core/src/boot/core.clj#L633)
+### [`configure-repositories!`](../../2.6.0/boot/core/src/boot/core.clj#L775)
```clojure
(configure-repositories!) (configure-repositories! f)
@@ -330,7 +411,7 @@ example).
-### [`cp`](../../2.5.5/boot/core/src/boot/core.clj#L410)
+### [`cp`](../../2.6.0/boot/core/src/boot/core.clj#L478)
```clojure
(cp fileset src-file dest-tmpfile)
@@ -343,7 +424,7 @@ tmpfile with the contents of the java.io.File src-file.
-### [`deftask`](../../2.5.5/boot/core/src/boot/core.clj#L695)
+### [`deftask`](../../2.6.0/boot/core/src/boot/core.clj#L844)
```clojure
(deftask sym & forms)
@@ -355,7 +436,7 @@ Define a boot task.
-### [`disable-task!`](../../2.5.5/boot/core/src/boot/core.clj#L898)
+### [`disable-task!`](../../2.6.0/boot/core/src/boot/core.clj#L1044)
```clojure
(disable-task! & tasks)
@@ -371,7 +452,7 @@ Disables the given tasks by replacing them with the identity task.
-### [`empty-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L508)
+### [`empty-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L639)
```clojure
(empty-dir! & dirs)
@@ -384,7 +465,7 @@ The directories in dirs themselves are not deleted.
-### [`file-filter`](../../2.5.5/boot/core/src/boot/core.clj#L977)
+### [`file-filter`](../../2.6.0/boot/core/src/boot/core.clj#L1134)
```clojure
(file-filter mkpred)
@@ -396,7 +477,7 @@ A file filtering function factory. FIXME: more documenting here.
-### [`fileset-added`](../../2.5.5/boot/core/src/boot/core.clj#L485)
+### [`fileset-added`](../../2.6.0/boot/core/src/boot/core.clj#L616)
```clojure
(fileset-added before after & props)
@@ -408,7 +489,7 @@ Returns a new fileset containing only files that were added.
-### [`fileset-changed`](../../2.5.5/boot/core/src/boot/core.clj#L495)
+### [`fileset-changed`](../../2.6.0/boot/core/src/boot/core.clj#L626)
```clojure
(fileset-changed before after & props)
@@ -420,7 +501,7 @@ Returns a new fileset containing only files that were changed.
-### [`fileset-diff`](../../2.5.5/boot/core/src/boot/core.clj#L477)
+### [`fileset-diff`](../../2.6.0/boot/core/src/boot/core.clj#L608)
```clojure
(fileset-diff before after & props)
@@ -435,7 +516,7 @@ or content md5 hash of the files (the default is both).
-### [`fileset-namespaces`](../../2.5.5/boot/core/src/boot/core.clj#L500)
+### [`fileset-namespaces`](../../2.6.0/boot/core/src/boot/core.clj#L631)
```clojure
(fileset-namespaces fileset)
@@ -447,7 +528,7 @@ Returns a set of symbols: the namespaces defined in this fileset.
-### [`fileset-reduce`](../../2.5.5/boot/core/src/boot/core.clj#L872)
+### [`fileset-reduce`](../../2.6.0/boot/core/src/boot/core.clj#L1018)
```clojure
(fileset-reduce fileset get-files & reducers)
@@ -462,7 +543,7 @@ through to the next reducing function.
-### [`fileset-removed`](../../2.5.5/boot/core/src/boot/core.clj#L490)
+### [`fileset-removed`](../../2.6.0/boot/core/src/boot/core.clj#L621)
```clojure
(fileset-removed before after & props)
@@ -474,7 +555,19 @@ Returns a new fileset containing only files that were removed.
-### [`get-env`](../../2.5.5/boot/core/src/boot/core.clj#L641)
+### [`get-checkouts`](../../2.6.0/boot/core/src/boot/core.clj#L783)
+
+```clojure
+(get-checkouts)
+```
+
+```
+FIXME
+```
+
+
+
+### [`get-env`](../../2.6.0/boot/core/src/boot/core.clj#L790)
```clojure
(get-env & [k not-found])
@@ -488,7 +581,7 @@ given. Calling this function with no arguments returns the environment map.
-### [`get-sys-env`](../../2.5.5/boot/core/src/boot/core.clj#L673)
+### [`get-sys-env`](../../2.6.0/boot/core/src/boot/core.clj#L822)
```clojure
(get-sys-env) (get-sys-env k) (get-sys-env k not-found)
@@ -503,7 +596,7 @@ either the system property or environment variable k.
-### [`git-files`](../../2.5.5/boot/core/src/boot/core.clj#L971)
+### [`git-files`](../../2.6.0/boot/core/src/boot/core.clj#L1124)
```clojure
(git-files & {:keys [untracked]})
@@ -516,7 +609,7 @@ command line `git ls-files`. The :untracked option includes untracked files.
-### [`gpg-decrypt`](../../2.5.5/boot/core/src/boot/core.clj#L936)
+### [`gpg-decrypt`](../../2.6.0/boot/core/src/boot/core.clj#L1089)
```clojure
(gpg-decrypt path-or-file & {:keys [as]})
@@ -529,7 +622,7 @@ Uses gpg(1) to decrypt a file and returns its contents as a string. The
-### [`init!`](../../2.5.5/boot/core/src/boot/core.clj#L555)
+### [`init!`](../../2.6.0/boot/core/src/boot/core.clj#L696)
```clojure
(init!)
@@ -542,7 +635,7 @@ startup. There should be no need to call this function directly.
-### [`input-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L338)
+### [`input-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L406)
```clojure
(input-dirs fileset)
@@ -554,7 +647,7 @@ Get a list of directories containing files with input roles.
-### [`input-files`](../../2.5.5/boot/core/src/boot/core.clj#L353)
+### [`input-files`](../../2.6.0/boot/core/src/boot/core.clj#L421)
```clojure
(input-files fileset)
@@ -566,7 +659,7 @@ Get a set of TmpFile objects corresponding to files with input role.
-### [`input-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L358)
+### [`input-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L426)
```clojure
(input-fileset fileset)
@@ -578,7 +671,7 @@ FIXME: document
-### [`json-generate`](../../2.5.5/boot/core/src/boot/core.clj#L942)
+### [`json-generate`](../../2.6.0/boot/core/src/boot/core.clj#L1095)
```clojure
(json-generate x & [opt-map])
@@ -590,7 +683,7 @@ Same as cheshire.core/generate-string.
-### [`json-parse`](../../2.5.5/boot/core/src/boot/core.clj#L948)
+### [`json-parse`](../../2.6.0/boot/core/src/boot/core.clj#L1101)
```clojure
(json-parse x & [key-fn])
@@ -602,7 +695,7 @@ Same as cheshire.core/parse-string.
-### [`last-file-change`](../../2.5.5/boot/core/src/boot/core.clj#L36)
+### [`last-file-change`](../../2.6.0/boot/core/src/boot/core.clj#L38)
```
Last source file watcher update time.
@@ -610,7 +703,7 @@ Last source file watcher update time.
-### [`launch-nrepl`](../../2.5.5/boot/core/src/boot/core.clj#L1040)
+### [`launch-nrepl`](../../2.6.0/boot/core/src/boot/core.clj#L1215)
```clojure
(launch-nrepl & {:keys [pod], :as opts})
@@ -622,7 +715,7 @@ Launches an nREPL server in a pod. See the repl task for options.
-### [`load-data-readers!`](../../2.5.5/boot/core/src/boot/core.clj#L181)
+### [`load-data-readers!`](../../2.6.0/boot/core/src/boot/core.clj#L211)
```clojure
(load-data-readers!)
@@ -634,7 +727,7 @@ Refresh *data-readers* with readers from newly acquired dependencies.
-### [`ls`](../../2.5.5/boot/core/src/boot/core.clj#L373)
+### [`ls`](../../2.6.0/boot/core/src/boot/core.clj#L441)
```clojure
(ls fileset)
@@ -646,7 +739,7 @@ Get a set of TmpFile objects for all files in the fileset.
-### [`merge-env!`](../../2.5.5/boot/core/src/boot/core.clj#L663)
+### [`merge-env!`](../../2.6.0/boot/core/src/boot/core.clj#L812)
```clojure
(merge-env! & kvs)
@@ -661,7 +754,7 @@ Keys whose values aren't collections).
-### [`mv`](../../2.5.5/boot/core/src/boot/core.clj#L404)
+### [`mv`](../../2.6.0/boot/core/src/boot/core.clj#L472)
```clojure
(mv fileset from-path to-path)
@@ -674,7 +767,7 @@ the tmpfile at from-path to to-path, returning a new fileset.
-### [`mv-asset`](../../2.5.5/boot/core/src/boot/core.clj#L429)
+### [`mv-asset`](../../2.6.0/boot/core/src/boot/core.clj#L518)
```clojure
(mv-asset fileset tmpfiles)
@@ -686,7 +779,7 @@ FIXME: document
-### [`mv-resource`](../../2.5.5/boot/core/src/boot/core.clj#L459)
+### [`mv-resource`](../../2.6.0/boot/core/src/boot/core.clj#L590)
```clojure
(mv-resource fileset tmpfiles)
@@ -698,7 +791,7 @@ FIXME: document
-### [`mv-source`](../../2.5.5/boot/core/src/boot/core.clj#L444)
+### [`mv-source`](../../2.6.0/boot/core/src/boot/core.clj#L554)
```clojure
(mv-source fileset tmpfiles)
@@ -710,7 +803,7 @@ FIXME: document
-### [`new-build-at`](../../2.5.5/boot/core/src/boot/core.clj#L35)
+### [`new-build-at`](../../2.6.0/boot/core/src/boot/core.clj#L37)
```
Latest build occured at time.
@@ -718,7 +811,7 @@ Latest build occured at time.
-### [`new-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L80)
+### [`new-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L100)
```
FIXME: document this
@@ -726,7 +819,7 @@ FIXME: document this
-### [`not-by-ext`](../../2.5.5/boot/core/src/boot/core.clj#L1020)
+### [`not-by-ext`](../../2.6.0/boot/core/src/boot/core.clj#L1195)
```clojure
(not-by-ext exts files)
@@ -738,7 +831,21 @@ This function is the same as `by-ext` but negated.
-### [`not-by-name`](../../2.5.5/boot/core/src/boot/core.clj#L994)
+### [`not-by-meta`](../../2.6.0/boot/core/src/boot/core.clj#L1154)
+
+```clojure
+(not-by-meta preds files)
+```
+
+```
+Negated version of `by-meta`.
+
+ This function will not unwrap the `File` objects from `TmpFiles`.
+```
+
+
+
+### [`not-by-name`](../../2.6.0/boot/core/src/boot/core.clj#L1169)
```clojure
(not-by-name names files)
@@ -750,7 +857,7 @@ This function is the same as `by-name` but negated.
-### [`not-by-path`](../../2.5.5/boot/core/src/boot/core.clj#L1007)
+### [`not-by-path`](../../2.6.0/boot/core/src/boot/core.clj#L1182)
```clojure
(not-by-path paths files)
@@ -762,7 +869,7 @@ This function is the same as `by-path` but negated.
-### [`not-by-re`](../../2.5.5/boot/core/src/boot/core.clj#L1033)
+### [`not-by-re`](../../2.6.0/boot/core/src/boot/core.clj#L1208)
```clojure
(not-by-re res files)
@@ -774,7 +881,7 @@ This function is the same as `by-re` but negated.
-### [`output-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L343)
+### [`output-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L411)
```clojure
(output-dirs fileset)
@@ -786,7 +893,7 @@ FIXME: document this
-### [`output-files`](../../2.5.5/boot/core/src/boot/core.clj#L363)
+### [`output-files`](../../2.6.0/boot/core/src/boot/core.clj#L431)
```clojure
(output-files fileset)
@@ -798,7 +905,7 @@ Get a set of TmpFile objects corresponding to files with output role.
-### [`output-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L368)
+### [`output-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L436)
```clojure
(output-fileset fileset)
@@ -810,7 +917,19 @@ FIXME: document
-### [`post-env!`](../../2.5.5/boot/core/src/boot/core.clj#L586)
+### [`patch!`](../../2.6.0/boot/core/src/boot/core.clj#L653)
+
+```clojure
+(patch! dest srcs & {:keys [ignore state link]})
+```
+
+```
+Given prev-state
+```
+
+
+
+### [`post-env!`](../../2.6.0/boot/core/src/boot/core.clj#L724)
```
Event handler called when the env atom is modified. This handler is for
@@ -821,7 +940,7 @@ the new directories to the classpath.
-### [`pre-env!`](../../2.5.5/boot/core/src/boot/core.clj#L600)
+### [`pre-env!`](../../2.6.0/boot/core/src/boot/core.clj#L739)
```
This multimethod is used to modify how new values are merged into the boot
@@ -831,7 +950,7 @@ value associated with the given `key` in the env atom.
-### [`rebuild!`](../../2.5.5/boot/core/src/boot/core.clj#L550)
+### [`rebuild!`](../../2.6.0/boot/core/src/boot/core.clj#L691)
```clojure
(rebuild!)
@@ -843,7 +962,7 @@ Manually trigger build watch.
-### [`replace-task!`](../../2.5.5/boot/core/src/boot/core.clj#L885)
+### [`replace-task!`](../../2.6.0/boot/core/src/boot/core.clj#L1031)
```clojure
(replace-task! & replacements)
@@ -862,7 +981,7 @@ Example:
-### [`reset-build!`](../../2.5.5/boot/core/src/boot/core.clj#L737)
+### [`reset-build!`](../../2.6.0/boot/core/src/boot/core.clj#L888)
```clojure
(reset-build!)
@@ -876,7 +995,7 @@ function should be called before each build iteration.
-### [`reset-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L724)
+### [`reset-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L875)
```clojure
(reset-fileset & [fileset])
@@ -890,7 +1009,7 @@ fileset containing only the latest project files.
-### [`rm`](../../2.5.5/boot/core/src/boot/core.clj#L385)
+### [`rm`](../../2.6.0/boot/core/src/boot/core.clj#L453)
```clojure
(rm fileset files)
@@ -903,7 +1022,7 @@ does not affect the underlying filesystem in any way.
-### [`set-env!`](../../2.5.5/boot/core/src/boot/core.clj#L648)
+### [`set-env!`](../../2.6.0/boot/core/src/boot/core.clj#L797)
```clojure
(set-env! & kvs)
@@ -920,7 +1039,7 @@ clojure.core/update-in works.
-### [`set-sys-env!`](../../2.5.5/boot/core/src/boot/core.clj#L685)
+### [`set-sys-env!`](../../2.6.0/boot/core/src/boot/core.clj#L834)
```clojure
(set-sys-env! & kvs)
@@ -934,7 +1053,7 @@ to remove the system property.
-### [`sync!`](../../2.5.5/boot/core/src/boot/core.clj#L514)
+### [`sync!`](../../2.6.0/boot/core/src/boot/core.clj#L645)
```clojure
(sync! dest & srcs)
@@ -949,7 +1068,7 @@ instead of copying file contents. File modification times are preserved.
-### [`task-options!`](../../2.5.5/boot/core/src/boot/core.clj#L908)
+### [`task-options!`](../../2.6.0/boot/core/src/boot/core.clj#L1054)
```clojure
(task-options! & task-option-pairs)
@@ -974,10 +1093,10 @@ be used as the new one. For example:
-### [`temp-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L277)
+### [`temp-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L345)
```clojure
-(temp-dir! & args__594__auto__)
+(temp-dir! & args__584__auto__)
```
```
@@ -986,7 +1105,21 @@ be used as the new one. For example:
-### [`tmp-dir`](../../2.5.5/boot/core/src/boot/core.clj#L304)
+### [`template`](../../2.6.0/boot/core/src/boot/core.clj#L1082)
+
+```clojure
+(template form)
+```
+
+```
+The syntax-quote (aka quasiquote) reader macro as a normal macro. Provides
+the unquote ~ and unquote-splicing ~@ metacharacters for templating forms
+without performing symbol resolution.
+```
+
+
+
+### [`tmp-dir`](../../2.6.0/boot/core/src/boot/core.clj#L372)
```clojure
(tmp-dir tmpfile)
@@ -998,7 +1131,7 @@ Returns the temporary directory containing the tmpfile.
-### [`tmp-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L273)
+### [`tmp-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L341)
```clojure
(tmp-dir!)
@@ -1010,7 +1143,7 @@ Creates a boot-managed temporary directory, returning a java.io.File.
-### [`tmp-file`](../../2.5.5/boot/core/src/boot/core.clj#L310)
+### [`tmp-file`](../../2.6.0/boot/core/src/boot/core.clj#L378)
```clojure
(tmp-file tmpfile)
@@ -1022,7 +1155,7 @@ Returns the java.io.File object for the tmpfile.
-### [`tmp-get`](../../2.5.5/boot/core/src/boot/core.clj#L324)
+### [`tmp-get`](../../2.6.0/boot/core/src/boot/core.clj#L392)
```clojure
(tmp-get fileset path & [not-found])
@@ -1036,7 +1169,7 @@ not-found is returned, otherwise nil.
-### [`tmp-path`](../../2.5.5/boot/core/src/boot/core.clj#L298)
+### [`tmp-path`](../../2.6.0/boot/core/src/boot/core.clj#L366)
```clojure
(tmp-path tmpfile)
@@ -1048,7 +1181,7 @@ Returns the tmpfile's path relative to the fileset root.
-### [`tmp-time`](../../2.5.5/boot/core/src/boot/core.clj#L316)
+### [`tmp-time`](../../2.6.0/boot/core/src/boot/core.clj#L384)
```clojure
(tmp-time tmpfile)
@@ -1060,10 +1193,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpdir`](../../2.5.5/boot/core/src/boot/core.clj#L308)
+### [`tmpdir`](../../2.6.0/boot/core/src/boot/core.clj#L376)
```clojure
-(tmpdir & args__594__auto__)
+(tmpdir & args__584__auto__)
```
```
@@ -1072,10 +1205,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpfile`](../../2.5.5/boot/core/src/boot/core.clj#L314)
+### [`tmpfile`](../../2.6.0/boot/core/src/boot/core.clj#L382)
```clojure
-(tmpfile & args__594__auto__)
+(tmpfile & args__584__auto__)
```
```
@@ -1084,10 +1217,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpget`](../../2.5.5/boot/core/src/boot/core.clj#L330)
+### [`tmpget`](../../2.6.0/boot/core/src/boot/core.clj#L398)
```clojure
-(tmpget & args__594__auto__)
+(tmpget & args__584__auto__)
```
```
@@ -1096,10 +1229,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmppath`](../../2.5.5/boot/core/src/boot/core.clj#L302)
+### [`tmppath`](../../2.6.0/boot/core/src/boot/core.clj#L370)
```clojure
-(tmppath & args__594__auto__)
+(tmppath & args__584__auto__)
```
```
@@ -1108,10 +1241,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmptime`](../../2.5.5/boot/core/src/boot/core.clj#L320)
+### [`tmptime`](../../2.6.0/boot/core/src/boot/core.clj#L388)
```clojure
-(tmptime & args__594__auto__)
+(tmptime & args__584__auto__)
```
```
@@ -1120,7 +1253,7 @@ Returns the last modified timestamp for the tmpfile.
-### [`touch`](../../2.5.5/boot/core/src/boot/core.clj#L966)
+### [`touch`](../../2.6.0/boot/core/src/boot/core.clj#L1119)
```clojure
(touch f)
@@ -1132,7 +1265,7 @@ Same as the Unix touch(1) program.
-### [`user-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L332)
+### [`user-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L400)
```clojure
(user-dirs fileset)
@@ -1145,7 +1278,7 @@ source, resource, or asset paths.
-### [`user-files`](../../2.5.5/boot/core/src/boot/core.clj#L347)
+### [`user-files`](../../2.6.0/boot/core/src/boot/core.clj#L415)
```clojure
(user-files fileset)
@@ -1158,7 +1291,7 @@ the project's source, resource, or asset paths.
-### [`watch-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L524)
+### [`watch-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L665)
```clojure
(watch-dirs callback dirs & {:keys [debounce]})
@@ -1176,7 +1309,7 @@ tune the watcher sensitivity.
-### [`with-pass-thru`](../../2.5.5/boot/core/src/boot/core.clj#L862)
+### [`with-pass-thru`](../../2.6.0/boot/core/src/boot/core.clj#L1008)
```clojure
(with-pass-thru bind & body)
@@ -1191,7 +1324,7 @@ result is then returned up the handler stack.
-### [`with-post-wrap`](../../2.5.5/boot/core/src/boot/core.clj#L836)
+### [`with-post-wrap`](../../2.6.0/boot/core/src/boot/core.clj#L982)
```clojure
(with-post-wrap bind & body)
@@ -1214,7 +1347,7 @@ where ... are the given body expressions.
-### [`with-pre-wrap`](../../2.5.5/boot/core/src/boot/core.clj#L812)
+### [`with-pre-wrap`](../../2.6.0/boot/core/src/boot/core.clj#L958)
```clojure
(with-pre-wrap bind & body)
@@ -1236,7 +1369,7 @@ where ... are the given body expressions.
-### [`yaml-generate`](../../2.5.5/boot/core/src/boot/core.clj#L954)
+### [`yaml-generate`](../../2.6.0/boot/core/src/boot/core.clj#L1107)
```clojure
(yaml-generate x)
@@ -1248,7 +1381,7 @@ Same as clj-yaml.core/generate-string.
-### [`yaml-parse`](../../2.5.5/boot/core/src/boot/core.clj#L960)
+### [`yaml-parse`](../../2.6.0/boot/core/src/boot/core.clj#L1113)
```clojure
(yaml-parse x)
diff --git a/doc/boot.pod.md b/doc/boot.pod.md
index 7e4c9b79..8e5feea3 100644
--- a/doc/boot.pod.md
+++ b/doc/boot.pod.md
@@ -9,15 +9,15 @@ jar files, and classloaders.
##### Pods
- [`call-in*`](#call-in) [`destroy-pod`](#destroy-pod) [`eval-fn-call`](#eval-fn-call) [`eval-in*`](#eval-in) [`get-pods`](#get-pods) [`make-pod`](#make-pod) [`pod-pool`](#pod-pool) [`require-in`](#require-in) [`send!`](#send) [`with-call-in`](#with-call-in) [`with-call-worker`](#with-call-worker) [`with-eval-in`](#with-eval-in) [`with-eval-worker`](#with-eval-worker)
+ [`call-in*`](#call-in) [`destroy-pod`](#destroy-pod) [`eval-fn-call`](#eval-fn-call) [`eval-in*`](#eval-in) [`get-pods`](#get-pods) [`make-pod`](#make-pod) [`pod-name`](#pod-name) [`pod-pool`](#pod-pool) [`require-in`](#require-in) [`send!`](#send) [`this-pod`](#this-pod) [`with-call-in`](#with-call-in) [`with-call-worker`](#with-call-worker) [`with-eval-in`](#with-eval-in) [`with-eval-worker`](#with-eval-worker) [`with-invoke-in`](#with-invoke-in) [`with-invoke-worker`](#with-invoke-worker)
##### Classpath
- [`add-classpath`](#add-classpath) [`add-dependencies`](#add-dependencies) [`add-dependencies-in`](#add-dependencies-in) [`add-dependencies-worker`](#add-dependencies-worker) [`classloader-hierarchy`](#classloader-hierarchy) [`classloader-resources`](#classloader-resources) [`copy-resource`](#copy-resource) [`dependency-loaded?`](#dependency-loaded?) [`get-classpath`](#get-classpath) [`modifiable-classloader?`](#modifiable-classloader?) [`resources`](#resources) [`seal-app-classloader`](#seal-app-classloader)
+ [`add-classpath`](#add-classpath) [`add-dependencies`](#add-dependencies) [`add-dependencies-in`](#add-dependencies-in) [`add-dependencies-worker`](#add-dependencies-worker) [`classloader-hierarchy`](#classloader-hierarchy) [`classloader-resources`](#classloader-resources) [`copy-resource`](#copy-resource) [`dependency-loaded?`](#dependency-loaded?) [`get-classpath`](#get-classpath) [`modifiable-classloader?`](#modifiable-classloader?) [`resource-last-modified`](#resource-last-modified) [`resources`](#resources) [`seal-app-classloader`](#seal-app-classloader)
##### Dependencies
- [`apply-exclusions`](#apply-exclusions) [`apply-global-exclusions`](#apply-global-exclusions) [`canonical-coord`](#canonical-coord) [`copy-dependency-jar-entries`](#copy-dependency-jar-entries) [`default-dependencies`](#default-dependencies) [`dependency-pom-properties`](#dependency-pom-properties) [`dependency-pom-properties-map`](#dependency-pom-properties-map) [`extract-ids`](#extract-ids) [`jars-dep-graph`](#jars-dep-graph) [`jars-in-dep-order`](#jars-in-dep-order) [`outdated`](#outdated) [`resolve-dependencies`](#resolve-dependencies) [`resolve-dependency-jar`](#resolve-dependency-jar) [`resolve-dependency-jars`](#resolve-dependency-jars) [`resolve-nontransitive-dependencies`](#resolve-nontransitive-dependencies)
+ [`apply-exclusions`](#apply-exclusions) [`apply-global-exclusions`](#apply-global-exclusions) [`canonical-coord`](#canonical-coord) [`coord->map`](#coord->map) [`copy-dependency-jar-entries`](#copy-dependency-jar-entries) [`default-dependencies`](#default-dependencies) [`dependency-pom-properties`](#dependency-pom-properties) [`dependency-pom-properties-map`](#dependency-pom-properties-map) [`extract-ids`](#extract-ids) [`jars-dep-graph`](#jars-dep-graph) [`jars-in-dep-order`](#jars-in-dep-order) [`map->coord`](#map->coord) [`outdated`](#outdated) [`resolve-dependencies`](#resolve-dependencies) [`resolve-dependency-jar`](#resolve-dependency-jar) [`resolve-dependency-jars`](#resolve-dependency-jars) [`resolve-nontransitive-dependencies`](#resolve-nontransitive-dependencies) [`resolve-release-versions`](#resolve-release-versions)
##### Jars
@@ -33,11 +33,11 @@ jar files, and classloaders.
##### Deprecated / Internal
- [`set-data!`](#set-data) [`set-pod-id!`](#set-pod-id) [`set-pods!`](#set-pods) [`set-worker-pod!`](#set-worker-pod)
+ [`eval-in-callee`](#eval-in-callee) [`eval-in-caller`](#eval-in-caller) [`set-data!`](#set-data) [`set-pod-id!`](#set-pod-id) [`set-pods!`](#set-pods) [`set-this-pod!`](#set-this-pod) [`set-worker-pod!`](#set-worker-pod) [`with-pod`](#with-pod) [`with-worker`](#with-worker)
-### [`add-classpath`](../../2.5.5/boot/pod/src/boot/pod.clj#L64)
+### [`add-classpath`](../../2.6.0/boot/pod/src/boot/pod.clj#L65)
```clojure
(add-classpath jar-or-dir) (add-classpath jar-or-dir classloader)
@@ -52,7 +52,7 @@ thread's context classloader).
-### [`add-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L480)
+### [`add-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L580)
```clojure
(add-dependencies env)
@@ -65,7 +65,7 @@ jars to the classpath.
-### [`add-dependencies-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L486)
+### [`add-dependencies-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L586)
```clojure
(add-dependencies-in pod env)
@@ -78,7 +78,7 @@ jars to the classpath in the pod.
-### [`add-dependencies-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L493)
+### [`add-dependencies-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L593)
```clojure
(add-dependencies-worker env)
@@ -91,7 +91,7 @@ jars to the classpath in the worker pod.
-### [`add-shutdown-hook!`](../../2.5.5/boot/pod/src/boot/pod.clj#L269)
+### [`add-shutdown-hook!`](../../2.6.0/boot/pod/src/boot/pod.clj#L303)
```clojure
(add-shutdown-hook! f)
@@ -110,7 +110,7 @@ the JVM exits otherwise).
-### [`apply-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L461)
+### [`apply-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L561)
```clojure
(apply-exclusions excl [p v & opts :as dep])
@@ -123,7 +123,7 @@ vector dep, creating the :exclusions key and deduplicating as necessary.
-### [`apply-global-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L474)
+### [`apply-global-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L574)
```clojure
(apply-global-exclusions excl deps)
@@ -136,7 +136,7 @@ See apply-exclusions.
-### [`call-in*`](../../2.5.5/boot/pod/src/boot/pod.clj#L297)
+### [`call-in*`](../../2.6.0/boot/pod/src/boot/pod.clj#L361)
```clojure
(call-in* expr) (call-in* pod expr)
@@ -161,7 +161,7 @@ objects which are not printable/readable by Clojure.
-### [`caller-namespace`](../../2.5.5/boot/pod/src/boot/pod.clj#L694)
+### [`caller-namespace`](../../2.6.0/boot/pod/src/boot/pod.clj#L794)
```clojure
(caller-namespace)
@@ -174,7 +174,7 @@ caller of the function.
-### [`canonical-coord`](../../2.5.5/boot/pod/src/boot/pod.clj#L399)
+### [`canonical-coord`](../../2.6.0/boot/pod/src/boot/pod.clj#L492)
```clojure
(canonical-coord [id & more :as coord])
@@ -189,7 +189,7 @@ For example: (canonical-coord '[foo "1.2.3"]) ;=> [foo/foo "1.2.3"]
-### [`classloader-hierarchy`](../../2.5.5/boot/pod/src/boot/pod.clj#L50)
+### [`classloader-hierarchy`](../../2.6.0/boot/pod/src/boot/pod.clj#L51)
```clojure
(classloader-hierarchy) (classloader-hierarchy tip)
@@ -203,7 +203,7 @@ if one is not provided.
-### [`classloader-resources`](../../2.5.5/boot/pod/src/boot/pod.clj#L94)
+### [`classloader-resources`](../../2.6.0/boot/pod/src/boot/pod.clj#L95)
```clojure
(classloader-resources resource-name) (classloader-resources classloaders resource-name)
@@ -219,7 +219,7 @@ circumstances match what clojure.java.io/resource returns.
-### [`concat-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L543)
+### [`concat-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L643)
```clojure
(concat-merger prev new out)
@@ -233,7 +233,21 @@ OutputStream out.
-### [`copy-dependency-jar-entries`](../../2.5.5/boot/pod/src/boot/pod.clj#L600)
+### [`coord->map`](../../2.6.0/boot/pod/src/boot/pod.clj#L153)
+
+```clojure
+(coord->map [p v & more])
+```
+
+```
+Returns the map representation for the given dependency vector. The map
+will include :project and :version keys in addition to any other keys in
+the dependency vector (eg., :scope, :exclusions, etc).
+```
+
+
+
+### [`copy-dependency-jar-entries`](../../2.6.0/boot/pod/src/boot/pod.clj#L700)
```clojure
(copy-dependency-jar-entries env outdir coord & regexes)
@@ -250,20 +264,21 @@ least one regex will be extracted to outdir.
-### [`copy-resource`](../../2.5.5/boot/pod/src/boot/pod.clj#L194)
+### [`copy-resource`](../../2.6.0/boot/pod/src/boot/pod.clj#L218)
```clojure
(copy-resource resource-path out-path)
```
```
-Copies the contents of the jar resource at resource-path to the path or File
-out-path on the filesystem. The copy operation is not atomic.
+Copies the contents of the classpath resource at resource-path to the path or
+File out-path on the filesystem, preserving last modified times when possible.
+The copy operation is not atomic.
```
-### [`copy-url`](../../2.5.5/boot/pod/src/boot/pod.clj#L209)
+### [`copy-url`](../../2.6.0/boot/pod/src/boot/pod.clj#L238)
```clojure
(copy-url url-str out-path & {:keys [cache], :or {cache true}})
@@ -276,7 +291,7 @@ the :cache option is false caching of URLs is disabled.
-### [`data`](../../2.5.5/boot/pod/src/boot/pod.clj#L221)
+### [`data`](../../2.6.0/boot/pod/src/boot/pod.clj#L250)
```
Set by boot.App/newCore, may be a ConcurrentHashMap for sharing data between
@@ -285,7 +300,7 @@ instances of Boot that are running inside of Boot.
-### [`default-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L685)
+### [`default-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L785)
```clojure
(default-dependencies deps {:keys [dependencies], :as env})
@@ -298,7 +313,7 @@ favoring dependency versions in env over deps in case of conflict.
-### [`dependency-loaded?`](../../2.5.5/boot/pod/src/boot/pod.clj#L144)
+### [`dependency-loaded?`](../../2.6.0/boot/pod/src/boot/pod.clj#L145)
```clojure
(dependency-loaded? [project & _])
@@ -312,7 +327,7 @@ isn't on the classpath.
-### [`dependency-pom-properties`](../../2.5.5/boot/pod/src/boot/pod.clj#L152)
+### [`dependency-pom-properties`](../../2.6.0/boot/pod/src/boot/pod.clj#L167)
```clojure
(dependency-pom-properties coord)
@@ -325,7 +340,7 @@ Properties object corresponding to the dependency jar's pom.properties file.
-### [`dependency-pom-properties-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L159)
+### [`dependency-pom-properties-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L174)
```clojure
(dependency-pom-properties-map coord)
@@ -338,7 +353,7 @@ of the contents of the jar's pom.properties file.
-### [`destroy-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L722)
+### [`destroy-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L822)
```clojure
(destroy-pod pod)
@@ -350,7 +365,7 @@ Closes open resources held by the pod, making the pod eligible for GC.
-### [`env`](../../2.5.5/boot/pod/src/boot/pod.clj#L217)
+### [`env`](../../2.6.0/boot/pod/src/boot/pod.clj#L246)
```
This pod's boot environment.
@@ -358,7 +373,7 @@ This pod's boot environment.
-### [`eval-fn-call`](../../2.5.5/boot/pod/src/boot/pod.clj#L289)
+### [`eval-fn-call`](../../2.6.0/boot/pod/src/boot/pod.clj#L323)
```clojure
(eval-fn-call [f & args])
@@ -370,7 +385,7 @@ Given an expression of the form (f & args), resolves f and applies f to args.
-### [`eval-in*`](../../2.5.5/boot/pod/src/boot/pod.clj#L351)
+### [`eval-in*`](../../2.6.0/boot/pod/src/boot/pod.clj#L419)
```clojure
(eval-in* expr) (eval-in* pod expr)
@@ -395,7 +410,31 @@ objects which are not printable/readable by Clojure.
-### [`extract-ids`](../../2.5.5/boot/pod/src/boot/pod.clj#L22)
+### [`eval-in-callee`](../../2.6.0/boot/pod/src/boot/pod.clj#L472)
+
+```clojure
+(eval-in-callee caller-pod callee-pod expr)
+```
+
+```
+FIXME: document this
+```
+
+
+
+### [`eval-in-caller`](../../2.6.0/boot/pod/src/boot/pod.clj#L476)
+
+```clojure
+(eval-in-caller caller-pod callee-pod expr)
+```
+
+```
+FIXME: document this
+```
+
+
+
+### [`extract-ids`](../../2.6.0/boot/pod/src/boot/pod.clj#L23)
```clojure
(extract-ids sym)
@@ -407,7 +446,7 @@ Given a dependency symbol sym, returns a vector of [group-id artifact-id].
-### [`first-wins-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L553)
+### [`first-wins-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L653)
```clojure
(first-wins-merger prev _ out)
@@ -419,7 +458,7 @@ Writes the InputStream prev to the OutputStream out.
-### [`get-classpath`](../../2.5.5/boot/pod/src/boot/pod.clj#L79)
+### [`get-classpath`](../../2.6.0/boot/pod/src/boot/pod.clj#L80)
```clojure
(get-classpath) (get-classpath classloaders)
@@ -438,7 +477,7 @@ at subsets of the current classloader hierarchy, e.g.:
-### [`get-pods`](../../2.5.5/boot/pod/src/boot/pod.clj#L251)
+### [`get-pods`](../../2.6.0/boot/pod/src/boot/pod.clj#L285)
```clojure
(get-pods name-or-pattern) (get-pods name-or-pattern unique?)
@@ -453,7 +492,7 @@ thrown unless exactly one pod matches.
-### [`into-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L533)
+### [`into-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L633)
```clojure
(into-merger prev new out)
@@ -466,7 +505,7 @@ the data from new into prev, and writes the result to the OutputStream out.
-### [`jar-entries`](../../2.5.5/boot/pod/src/boot/pod.clj#L521)
+### [`jar-entries`](../../2.6.0/boot/pod/src/boot/pod.clj#L621)
```clojure
(jar-entries path-or-jarfile & {:keys [cache], :or {cache true}})
@@ -479,7 +518,7 @@ string pairs corresponding to all entries contained the jar contains.
-### [`jar-entries*`](../../2.5.5/boot/pod/src/boot/pod.clj#L499)
+### [`jar-entries*`](../../2.6.0/boot/pod/src/boot/pod.clj#L599)
```clojure
(jar-entries* path-or-jarfile)
@@ -492,7 +531,7 @@ entry in the jar path-or-jarfile, which can be a string or File.
-### [`jar-entries-memoized*`](../../2.5.5/boot/pod/src/boot/pod.clj#L517)
+### [`jar-entries-memoized*`](../../2.6.0/boot/pod/src/boot/pod.clj#L617)
```
Memoized version of jar-entries*.
@@ -500,7 +539,7 @@ Memoized version of jar-entries*.
-### [`jars-dep-graph`](../../2.5.5/boot/pod/src/boot/pod.clj#L585)
+### [`jars-dep-graph`](../../2.6.0/boot/pod/src/boot/pod.clj#L685)
```clojure
(jars-dep-graph env)
@@ -513,7 +552,7 @@ boot environment map env, including transitive dependencies.
-### [`jars-in-dep-order`](../../2.5.5/boot/pod/src/boot/pod.clj#L591)
+### [`jars-in-dep-order`](../../2.6.0/boot/pod/src/boot/pod.clj#L691)
```clojure
(jars-in-dep-order env)
@@ -529,7 +568,7 @@ before jar B in the returned list.
-### [`lifecycle-pool`](../../2.5.5/boot/pod/src/boot/pod.clj#L621)
+### [`lifecycle-pool`](../../2.6.0/boot/pod/src/boot/pod.clj#L721)
```clojure
(lifecycle-pool size create destroy & {:keys [priority]})
@@ -563,7 +602,7 @@ or :refresh, or no arguments.
-### [`make-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L705)
+### [`make-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L805)
```clojure
(make-pod) (make-pod {:keys [directories dependencies], :as env})
@@ -576,7 +615,21 @@ may be given to initialize the pod with dependencies, directories, etc.
-### [`modifiable-classloader?`](../../2.5.5/boot/pod/src/boot/pod.clj#L57)
+### [`map->coord`](../../2.6.0/boot/pod/src/boot/pod.clj#L160)
+
+```clojure
+(map->coord {:keys [project version], :as more})
+```
+
+```
+Returns the dependency vector for the given map representation. The project
+and version will be taken from the values of the :project and :version keys
+and all other keys will be appended pairwise.
+```
+
+
+
+### [`modifiable-classloader?`](../../2.6.0/boot/pod/src/boot/pod.clj#L58)
```clojure
(modifiable-classloader? cl)
@@ -590,7 +643,7 @@ be modified.
-### [`non-caching-url-input-stream`](../../2.5.5/boot/pod/src/boot/pod.clj#L202)
+### [`non-caching-url-input-stream`](../../2.6.0/boot/pod/src/boot/pod.clj#L231)
```clojure
(non-caching-url-input-stream url-str)
@@ -604,7 +657,7 @@ may change.
-### [`outdated`](../../2.5.5/boot/pod/src/boot/pod.clj#L444)
+### [`outdated`](../../2.6.0/boot/pod/src/boot/pod.clj#L544)
```clojure
(outdated env & {:keys [snapshots]})
@@ -619,7 +672,7 @@ only release versions will be considered.
-### [`pod-id`](../../2.5.5/boot/pod/src/boot/pod.clj#L230)
+### [`pod-id`](../../2.6.0/boot/pod/src/boot/pod.clj#L259)
```
Each pod is numbered in the order in which it was created.
@@ -627,7 +680,20 @@ Each pod is numbered in the order in which it was created.
-### [`pod-pool`](../../2.5.5/boot/pod/src/boot/pod.clj#L729)
+### [`pod-name`](../../2.6.0/boot/pod/src/boot/pod.clj#L353)
+
+```clojure
+(pod-name pod) (pod-name pod new-name)
+```
+
+```
+Returns pod's name if called with one argument, sets pod's name to new-name
+and returns new-name if called with two arguments.
+```
+
+
+
+### [`pod-pool`](../../2.6.0/boot/pod/src/boot/pod.clj#L829)
```clojure
(pod-pool env & {:keys [size init destroy]})
@@ -669,7 +735,7 @@ Options:
-### [`pods`](../../2.5.5/boot/pod/src/boot/pod.clj#L226)
+### [`pods`](../../2.6.0/boot/pod/src/boot/pod.clj#L255)
```
A WeakHashMap whose keys are all of the currently running pods.
@@ -677,7 +743,7 @@ A WeakHashMap whose keys are all of the currently running pods.
-### [`pom-properties`](../../2.5.5/boot/pod/src/boot/pod.clj#L123)
+### [`pom-properties`](../../2.6.0/boot/pod/src/boot/pod.clj#L124)
```clojure
(pom-properties jarpath)
@@ -691,7 +757,7 @@ multiple pom.properties files are present in the jar.
-### [`pom-properties-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L165)
+### [`pom-properties-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L180)
```clojure
(pom-properties-map prop-or-jarpath)
@@ -704,7 +770,7 @@ pom-or-jarpath is either a slurpable thing or a Properties object.
-### [`pom-xml`](../../2.5.5/boot/pod/src/boot/pod.clj#L175)
+### [`pom-xml`](../../2.6.0/boot/pod/src/boot/pod.clj#L190)
```clojure
(pom-xml jarpath) (pom-xml jarpath pompath)
@@ -719,7 +785,7 @@ resource path of the pom.xml file in the jar.
-### [`pom-xml-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L339)
+### [`pom-xml-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L407)
```clojure
(pom-xml-map jarpath) (pom-xml-map jarpath pompath)
@@ -734,7 +800,7 @@ from the jar by the resource path specified by pompath.
-### [`require-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L392)
+### [`require-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L465)
```clojure
(require-in pod ns)
@@ -746,7 +812,7 @@ Evaluates (require 'ns) in the pod. Avoid this function.
-### [`resolve-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L408)
+### [`resolve-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L501)
```clojure
(resolve-dependencies env)
@@ -761,7 +827,7 @@ dependencies includes all transitive dependencies.
-### [`resolve-dependency-jar`](../../2.5.5/boot/pod/src/boot/pod.clj#L436)
+### [`resolve-dependency-jar`](../../2.6.0/boot/pod/src/boot/pod.clj#L536)
```clojure
(resolve-dependency-jar env coord)
@@ -774,7 +840,7 @@ by coord, given the boot environment configuration env.
-### [`resolve-dependency-jars`](../../2.5.5/boot/pod/src/boot/pod.clj#L416)
+### [`resolve-dependency-jars`](../../2.6.0/boot/pod/src/boot/pod.clj#L516)
```clojure
(resolve-dependency-jars env & [ignore-clj?])
@@ -790,7 +856,7 @@ BOOT_CLOJURE_NAME environment setting, which defaults to org.clojure.clojure).
-### [`resolve-nontransitive-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L429)
+### [`resolve-nontransitive-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L529)
```clojure
(resolve-nontransitive-dependencies env dep)
@@ -804,7 +870,35 @@ dependencies of dep's dependencies).
-### [`resources`](../../2.5.5/boot/pod/src/boot/pod.clj#L106)
+### [`resolve-release-versions`](../../2.6.0/boot/pod/src/boot/pod.clj#L509)
+
+```clojure
+(resolve-release-versions env)
+```
+
+```
+Given environment map env, replaces the versions of dependencies that are
+specified with the special Maven RELEASE version with the concrete versions
+of the resolved dependencies.
+```
+
+
+
+### [`resource-last-modified`](../../2.6.0/boot/pod/src/boot/pod.clj#L209)
+
+```clojure
+(resource-last-modified resource-path)
+```
+
+```
+Returns the last modified time (long, milliseconds since epoch) of the
+classpath resource at resource-path. A result of 0 usually indicates that
+the modification time was not available for this resource.
+```
+
+
+
+### [`resources`](../../2.6.0/boot/pod/src/boot/pod.clj#L107)
```clojure
(resources resource-name) (resources classloaders resource-name)
@@ -820,7 +914,7 @@ eturns.
-### [`seal-app-classloader`](../../2.5.5/boot/pod/src/boot/pod.clj#L28)
+### [`seal-app-classloader`](../../2.6.0/boot/pod/src/boot/pod.clj#L29)
```clojure
(seal-app-classloader)
@@ -845,7 +939,7 @@ be needed in client code under normal circumstances.
-### [`send!`](../../2.5.5/boot/pod/src/boot/pod.clj#L283)
+### [`send!`](../../2.6.0/boot/pod/src/boot/pod.clj#L317)
```clojure
(send! form)
@@ -857,7 +951,7 @@ This is ALPHA status, it may change, be renamed, or removed.
-### [`set-data!`](../../2.5.5/boot/pod/src/boot/pod.clj#L247)
+### [`set-data!`](../../2.6.0/boot/pod/src/boot/pod.clj#L280)
```clojure
(set-data! x)
@@ -869,7 +963,7 @@ FIXME: document this
-### [`set-pod-id!`](../../2.5.5/boot/pod/src/boot/pod.clj#L248)
+### [`set-pod-id!`](../../2.6.0/boot/pod/src/boot/pod.clj#L281)
```clojure
(set-pod-id! x)
@@ -881,7 +975,7 @@ FIXME: document this
-### [`set-pods!`](../../2.5.5/boot/pod/src/boot/pod.clj#L246)
+### [`set-pods!`](../../2.6.0/boot/pod/src/boot/pod.clj#L279)
```clojure
(set-pods! x)
@@ -893,7 +987,19 @@ FIXME: document this
-### [`set-worker-pod!`](../../2.5.5/boot/pod/src/boot/pod.clj#L249)
+### [`set-this-pod!`](../../2.6.0/boot/pod/src/boot/pod.clj#L282)
+
+```clojure
+(set-this-pod! x)
+```
+
+```
+FIXME: document this
+```
+
+
+
+### [`set-worker-pod!`](../../2.6.0/boot/pod/src/boot/pod.clj#L283)
```clojure
(set-worker-pod! x)
@@ -905,7 +1011,7 @@ FIXME: document this
-### [`shutdown-hooks`](../../2.5.5/boot/pod/src/boot/pod.clj#L239)
+### [`shutdown-hooks`](../../2.6.0/boot/pod/src/boot/pod.clj#L272)
```
Atom containing shutdown hooks to be performed at exit. This is used instead
@@ -916,7 +1022,7 @@ boot. See #'boot.pod/add-shutdown-hook! for more info.
-### [`standard-jar-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L527)
+### [`standard-jar-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L627)
```
Entries matching these Patterns will not be extracted from jars when they
@@ -925,7 +1031,7 @@ are exploded during uberjar construction.
-### [`standard-jar-mergers`](../../2.5.5/boot/pod/src/boot/pod.clj#L558)
+### [`standard-jar-mergers`](../../2.6.0/boot/pod/src/boot/pod.clj#L658)
```
A vector containing vectors of the form [ ]. These
@@ -935,7 +1041,15 @@ or creating jar files. See boot.task.built-in/uber for more info.
-### [`unpack-jar`](../../2.5.5/boot/pod/src/boot/pod.clj#L566)
+### [`this-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L263)
+
+```
+A WeakReference to this pod's shim instance.
+```
+
+
+
+### [`unpack-jar`](../../2.6.0/boot/pod/src/boot/pod.clj#L666)
```clojure
(unpack-jar jar-path dest-dir & opts)
@@ -950,7 +1064,7 @@ be preserved. Files will not be written atomically.
-### [`with-call-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L321)
+### [`with-call-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L385)
```clojure
(with-call-in pod expr)
@@ -964,11 +1078,15 @@ These will be evaluated in the calling scope and substituted in the template
like the ` (syntax-quote) reader macro.
Note: Unlike syntax-quote, no name resolution is done on the template forms.
+
+Note2: The macro returned value will be nil unless it is
+printable/readable. For instance, returning File objects will not work
+as they are not printable/readable by Clojure.
```
-### [`with-call-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L334)
+### [`with-call-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L402)
```clojure
(with-call-worker expr)
@@ -980,7 +1098,7 @@ Like with-call-in, evaluating expr in the worker pod.
-### [`with-eval-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L375)
+### [`with-eval-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L443)
```clojure
(with-eval-in pod & body)
@@ -992,12 +1110,17 @@ to the caller. The expr may be a template containing the ~ (unqupte) and
~@ (unquote-splicing) reader macros. These will be evaluated in the calling
scope and substituted in the template like the ` (syntax-quote) reader macro.
-Note: Unlike syntax-quote, no name resolution is done on the template forms.
+Note: Unlike syntax-quote, no name resolution is done on the template
+forms.
+
+Note2: The macro returned value will be nil unless it is
+printable/readable. For instance, returning File objects will not work
+as they are not printable/readable by Clojure.
```
-### [`with-eval-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L387)
+### [`with-eval-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L460)
```clojure
(with-eval-worker & body)
@@ -1009,7 +1132,64 @@ Like with-eval-in, evaluating expr in the worker pod.
-### [`worker-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L234)
+### [`with-invoke-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L331)
+
+```clojure
+(with-invoke-in pod [sym & args])
+```
+
+```
+Given a pod, a fully-qualified symbol sym, and args which are Java objects,
+invokes the function denoted by sym with the given args. This is a low-level
+interface--args are not serialized before being passed to the pod and the
+result is not deserialized before being returned. Passing Clojure objects as
+arguments or returning Clojure objects from the pod will result in undefined
+behavior.
+
+This macro correctly handles the case where pod is the current pod without
+thread binding issues: in this case the invocation will be done in another
+thread.
+```
+
+
+
+### [`with-invoke-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L348)
+
+```clojure
+(with-invoke-worker [sym & args])
+```
+
+```
+Like with-invoke-in, invoking the function in the worker pod.
+```
+
+
+
+### [`with-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L482)
+
+```clojure
+(with-pod pod & body)
+```
+
+```
+FIXME: document this
+```
+
+
+
+### [`with-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L488)
+
+```clojure
+(with-worker & body)
+```
+
+```
+FIXME: document this
+```
+
+
+
+### [`worker-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L267)
```
A reference to the boot worker pod. All pods share access to the worker
diff --git a/doc/boot.task.built-in.md b/doc/boot.task.built-in.md
index 1db98f6b..200696a2 100644
--- a/doc/boot.task.built-in.md
+++ b/doc/boot.task.built-in.md
@@ -2,11 +2,37 @@
Boot built-in tasks.
-[`add-repo`](#add-repo) [`aot`](#aot) [`checkout`](#checkout) [`help`](#help) [`install`](#install) [`jar`](#jar) [`javac`](#javac) [`pom`](#pom) [`push`](#push) [`repl`](#repl) [`show`](#show) [`sift`](#sift) [`speak`](#speak) [`target`](#target) [`uber`](#uber) [`wait`](#wait) [`war`](#war) [`watch`](#watch) [`web`](#web) [`zip`](#zip)
+##### Info
+
+ [`help`](#help) [`show`](#show)
+
+##### Develop
+
+ [`notify`](#notify) [`repl`](#repl) [`speak`](#speak) [`wait`](#wait) [`watch`](#watch)
+
+##### Fileset
+
+ [`add-repo`](#add-repo) [`sift`](#sift) [`uber`](#uber)
+
+##### Build
+
+ [`aot`](#aot) [`javac`](#javac)
+
+##### Package
+
+ [`jar`](#jar) [`pom`](#pom) [`war`](#war) [`web`](#web) [`zip`](#zip)
+
+##### Deploy
+
+ [`install`](#install) [`push`](#push) [`target`](#target)
+
+##### Deprecated
+
+ [`checkout`](#checkout)
-### [`add-repo`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L406)
+### [`add-repo`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L497)
```clojure
(add-repo & {:keys [help untracked ref], :as *opts*})
@@ -26,7 +52,7 @@ Keyword Args:
-### [`aot`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L546)
+### [`aot`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L645)
```clojure
(aot & {:keys [help all namespace], :as *opts*})
@@ -43,14 +69,14 @@ Keyword Args:
-### [`checkout`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L69)
+### [`checkout`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L75)
```clojure
(checkout & {:keys [help dependencies], :as *opts*})
```
```
-Checkout dependencies task.
+Checkout dependencies task. DEPRECATED.
This task facilitates working on a project and its dependencies at the same
time, by extracting the dependency jar contents into the fileset. Transitive
@@ -74,7 +100,7 @@ Keyword Args:
-### [`help`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L30)
+### [`help`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L31)
```clojure
(help & {:keys [help], :as *opts*})
@@ -89,7 +115,7 @@ Keyword Args:
-### [`install`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L678)
+### [`install`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L777)
```clojure
(install & {:keys [help file pom], :as *opts*})
@@ -138,7 +164,7 @@ Keyword Args:
-### [`jar`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L608)
+### [`jar`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L707)
```clojure
(jar & {:keys [help file manifest main], :as *opts*})
@@ -156,7 +182,7 @@ Keyword Args:
-### [`javac`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L566)
+### [`javac`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L665)
```clojure
(javac & {:keys [help options], :as *opts*})
@@ -172,10 +198,61 @@ Keyword Args:
-### [`pom`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L315)
+### [`notify`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L175)
+
+```clojure
+(notify & {:keys [help audible visual audible-notify-fn visual-notify-fn theme soundfiles messages title icon uid], :as *opts*})
+```
+
+```
+Aural and visual notifications during build.
+
+Default audio themes: system (the default), ordinance, pillsbury,
+and woodblock. New themes can be included via jar dependency with
+the sound files as resources:
+
+ boot
+ └── notify
+ ├── _failure.mp3
+ ├── _success.mp3
+ └── _warning.mp3
+
+Sound files specified individually take precedence over theme sounds.
+
+For visual notifications, there is a default implementation that
+tries to use the `terminal-notifier' program on OS X systems, and
+the `notify-send' program on Linux systems.
+
+You can also supply custom notification functions via the *-notify-fn
+options. Both are functions that take one argument which is a map of
+options.
+
+The audible notification function will receive a map with three keys
+- :type, :file, and :theme.
+
+The visual notification function will receive a map with four keys
+- :title, :uid, :icon, and :message.
+
+Keyword Args:
+ :help bool Print this help info.
+ :audible bool Play an audible notification
+ :visual bool Display a visual notification
+ :audible-notify-fn sym A function to be used for audible notifications in place of the default method.
+ :visual-notify-fn sym A function to be used for visual notifications in place of the default method
+ :theme str The name of the audible notification sound theme
+ :soundfiles {kw str} Sound files overriding theme sounds. Keys can be :success, :warning or :failure
+ :messages {kw str} Templates overriding default messages. Keys can be :success, :warning or :failure
+ :title str Title of the notification
+ :icon str Full path of the file used as notification icon
+ :uid str Unique ID identifying this boot process
+```
+
+
+
+### [`pom`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L399)
```clojure
-(pom & {:keys [help project version description url scm license developers dependencies], :as *opts*})
+(pom & {:keys [help project version description classifier packaging url scm license developers dependencies], :as *opts*})
```
```
@@ -188,6 +265,8 @@ Keyword Args:
:project sym The project id (eg. foo/bar).
:version str The project version.
:description str The project description.
+ :classifier str The project classifier.
+ :packaging str The project packaging type, i.e. war, pom
:url str The project homepage url.
:scm {kw str} The project scm map (KEY is one of url, tag, connection, developerConnection).
:license {str str} The map {name url} of project licenses.
@@ -197,7 +276,7 @@ Keyword Args:
-### [`push`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L727)
+### [`push`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L826)
```clojure
(push & {:keys [help file pom file-regex gpg-sign gpg-user-id gpg-keyring gpg-passphrase repo repo-map tag ensure-branch ensure-clean ensure-release ensure-snapshot ensure-tag ensure-version], :as *opts*})
@@ -237,7 +316,7 @@ Keyword Args:
-### [`repl`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L270)
+### [`repl`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L354)
```clojure
(repl & {:keys [help server client eval bind host init skip-init port pod init-ns middleware handler], :as *opts*})
@@ -275,10 +354,10 @@ Keyword Args:
-### [`show`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L164)
+### [`show`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L245)
```clojure
-(show & {:keys [help fake-classpath classpath deps env fileset list-pods pedantic pods update-snapshots updates], :as *opts*})
+(show & {:keys [help fake-classpath classpath deps env fileset list-pods pedantic pods update-snapshots updates verify-deps], :as *opts*})
```
```
@@ -296,11 +375,12 @@ Keyword Args:
:pods regex The name filter used to select which pods to inspect.
:update-snapshots bool Include snapshot versions in updates searches.
:updates bool Print newer releases of outdated dependencies.
+ :verify-deps bool Include signature status of each dependency in graph.
```
-### [`sift`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L346)
+### [`sift`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L437)
```clojure
(sift & {:keys [help to-asset to-resource to-source add-asset add-resource add-source add-jar with-meta add-meta move include invert], :as *opts*})
@@ -363,7 +443,7 @@ Keyword Args:
-### [`speak`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L121)
+### [`speak`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L131)
```clojure
(speak & {:keys [help theme success warning failure], :as *opts*})
@@ -372,8 +452,9 @@ Keyword Args:
```
Audible notifications during build.
-Default themes: system (the default), ordinance, and woodblock. New themes
-can be included via jar dependency with the sound files as resources:
+Default themes: system (the default), ordinance, pillsbury, and
+woodblock. New themes can be included via jar dependency with the
+sound files as resources:
boot
└── notify
@@ -393,7 +474,7 @@ Keyword Args:
-### [`target`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L214)
+### [`target`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L296)
```clojure
(target & {:keys [help dir no-link no-clean], :as *opts*})
@@ -411,7 +492,7 @@ Keyword Args:
-### [`uber`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L423)
+### [`uber`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L514)
```clojure
(uber & {:keys [help as-jars include-scope exclude-scope include exclude merge], :as *opts*})
@@ -478,7 +559,7 @@ Keyword Args:
-### [`wait`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L203)
+### [`wait`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L285)
```clojure
(wait & {:keys [help time], :as *opts*})
@@ -496,7 +577,7 @@ Keyword Args:
-### [`war`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L639)
+### [`war`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L738)
```clojure
(war & {:keys [help file], :as *opts*})
@@ -512,7 +593,7 @@ Keyword Args:
-### [`watch`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L225)
+### [`watch`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L307)
```clojure
(watch & {:keys [help quiet verbose manual], :as *opts*})
@@ -532,7 +613,7 @@ Keyword Args:
-### [`web`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L512)
+### [`web`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L611)
```clojure
(web & {:keys [help serve create destroy context-create context-destroy], :as *opts*})
@@ -554,7 +635,7 @@ Keyword Args:
-### [`zip`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L663)
+### [`zip`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L762)
```clojure
(zip & {:keys [help file], :as *opts*})
diff --git a/doc/boot.util.md b/doc/boot.util.md
index 334812d2..dd326939 100644
--- a/doc/boot.util.md
+++ b/doc/boot.util.md
@@ -17,11 +17,11 @@ life easier in Boot scripts.
##### Logging
- [`dbug`](#dbug) [`fail`](#fail) [`info`](#info) [`warn`](#warn) [`warn-deprecated`](#warn-deprecated)
+ [`dbug`](#dbug) [`dbug*`](#dbug) [`fail`](#fail) [`info`](#info) [`warn`](#warn) [`warn-deprecated`](#warn-deprecated)
##### Useful Macros
- [`do-while-let`](#do-while-let) [`dotoseq`](#dotoseq) [`guard`](#guard) [`while-let`](#while-let) [`with-err-str`](#with-err-str) [`with-let`](#with-let) [`with-resolve`](#with-resolve) [`with-rethrow`](#with-rethrow) [`without-exiting`](#without-exiting)
+ [`do-while-let`](#do-while-let) [`dotoseq`](#dotoseq) [`extends-protocol`](#extends-protocol) [`guard`](#guard) [`while-let`](#while-let) [`with-err-str`](#with-err-str) [`with-let`](#with-let) [`with-resolve`](#with-resolve) [`with-rethrow`](#with-rethrow) [`without-exiting`](#without-exiting)
##### Printing
@@ -29,11 +29,11 @@ life easier in Boot scripts.
##### Miscellaneous
- [`auto-flush`](#auto-flush) [`bind-syms`](#bind-syms) [`dep-as-map`](#dep-as-map) [`extract-ids`](#extract-ids) [`index-of`](#index-of) [`jarname`](#jarname) [`let-assert-keys`](#let-assert-keys) [`path->ns`](#path->ns) [`read-string-all`](#read-string-all) [`with-semaphore`](#with-semaphore) [`with-semaphore-noblock`](#with-semaphore-noblock)
+ [`auto-flush`](#auto-flush) [`bind-syms`](#bind-syms) [`dep-as-map`](#dep-as-map) [`extract-ids`](#extract-ids) [`index-of`](#index-of) [`jarname`](#jarname) [`let-assert-keys`](#let-assert-keys) [`map-as-dep`](#map-as-dep) [`path->ns`](#path->ns) [`read-string-all`](#read-string-all) [`with-semaphore`](#with-semaphore) [`with-semaphore-noblock`](#with-semaphore-noblock)
-### [`*colorize?*`](../../2.5.5/boot/pod/src/boot/util.clj#L45)
+### [`*colorize?*`](../../2.6.0/boot/pod/src/boot/util.clj#L45)
```
Atom containing the value that determines whether ANSI colors escape codes
@@ -42,7 +42,7 @@ will be printed with boot output.
-### [`*sh-dir*`](../../2.5.5/boot/pod/src/boot/util.clj#L314)
+### [`*sh-dir*`](../../2.6.0/boot/pod/src/boot/util.clj#L377)
```
The directory to use as CWD for shell commands.
@@ -50,7 +50,7 @@ The directory to use as CWD for shell commands.
-### [`*verbosity*`](../../2.5.5/boot/pod/src/boot/util.clj#L31)
+### [`*verbosity*`](../../2.6.0/boot/pod/src/boot/util.clj#L31)
```
Atom containing the verbosity level, 1 is lowest, 3 highest. Level 2
@@ -68,7 +68,7 @@ Levels:
-### [`auto-flush`](../../2.5.5/boot/pod/src/boot/util.clj#L251)
+### [`auto-flush`](../../2.6.0/boot/pod/src/boot/util.clj#L305)
```clojure
(auto-flush writer)
@@ -82,7 +82,7 @@ boot exits, even if output was written from a background thread.
-### [`bind-syms`](../../2.5.5/boot/pod/src/boot/util.clj#L293)
+### [`bind-syms`](../../2.6.0/boot/pod/src/boot/util.clj#L356)
```clojure
(bind-syms form)
@@ -94,7 +94,7 @@ Returns the names bound in the given destructuring form.
-### [`colorize?-system-default`](../../2.5.5/boot/pod/src/boot/util.clj#L21)
+### [`colorize?-system-default`](../../2.6.0/boot/pod/src/boot/util.clj#L21)
```clojure
(colorize?-system-default)
@@ -111,7 +111,7 @@ turn it off.
-### [`dbug`](../../2.5.5/boot/pod/src/boot/util.clj#L57)
+### [`dbug`](../../2.6.0/boot/pod/src/boot/util.clj#L65)
```clojure
(dbug & more)
@@ -120,11 +120,27 @@ turn it off.
```
Print DEBUG level message. Arguments of the form fmt & args suitable for
passing to clojure.core/format.
+
+Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod
+creation or log level won't be affected.
```
-### [`dep-as-map`](../../2.5.5/boot/pod/src/boot/util.clj#L274)
+### [`dbug*`](../../2.6.0/boot/pod/src/boot/util.clj#L57)
+
+```clojure
+(dbug* fmt & args)
+```
+
+```
+Macro version of boot.util/dbug, arguments are only evaluated when the
+message will be printed (i.e., verbosity level >= 2).
+```
+
+
+
+### [`dep-as-map`](../../2.6.0/boot/pod/src/boot/util.clj#L328)
```clojure
(dep-as-map [project version & kvs])
@@ -137,7 +153,7 @@ keys plus any modifiers (eg. :scope, :exclusions, etc).
-### [`do-while-let`](../../2.5.5/boot/pod/src/boot/util.clj#L126)
+### [`do-while-let`](../../2.6.0/boot/pod/src/boot/util.clj#L165)
```clojure
(do-while-let [binding test] & body)
@@ -149,7 +165,7 @@ Like while-let, except that the body is executed at least once.
-### [`dosh`](../../2.5.5/boot/pod/src/boot/util.clj#L330)
+### [`dosh`](../../2.6.0/boot/pod/src/boot/util.clj#L393)
```clojure
(dosh & args)
@@ -163,7 +179,7 @@ stdout and stderr as it is produced.
-### [`dotoseq`](../../2.5.5/boot/pod/src/boot/util.clj#L133)
+### [`dotoseq`](../../2.6.0/boot/pod/src/boot/util.clj#L172)
```clojure
(dotoseq obj seq-exprs & body)
@@ -180,7 +196,7 @@ A cross between doto and doseq. For example:
-### [`exit-error`](../../2.5.5/boot/pod/src/boot/util.clj#L173)
+### [`exit-error`](../../2.6.0/boot/pod/src/boot/util.clj#L212)
```clojure
(exit-error & body)
@@ -189,14 +205,17 @@ A cross between doto and doseq. For example:
```
Binds *out* to *err*, evaluates the body, and exits with non-zero status.
-Note: This macro does not call System.exit(), because this instance of boot
-may be nested in another boot instance. Instead a special method on boot.App
-is called which handles the exit behavior (calling shutdown hooks etc.).
+ Notes:
+ * This is the preferred method for returning an exit code != 0, this
+ method returns 1.
+ * This macro does not call System.exit(), because this instance of boot
+ may be nested in another boot instance. Instead a special method on boot.App
+ is called which handles the exit behavior (calling shutdown hooks etc.).
```
-### [`exit-ok`](../../2.5.5/boot/pod/src/boot/util.clj#L184)
+### [`exit-ok`](../../2.6.0/boot/pod/src/boot/util.clj#L226)
```clojure
(exit-ok & body)
@@ -205,14 +224,35 @@ is called which handles the exit behavior (calling shutdown hooks etc.).
```
Evaluates the body, and exits with non-zero status.
-Note: This macro does not call System.exit(), because this instance of boot
-may be nested in another boot instance. Instead a special method on boot.App
-is called which handles the exit behavior (calling shutdown hooks etc.).
+ Notes:
+ * Boot's main explicitly wraps user tasks in exit-ok so that in general
+ it is not necessary to call it for exiting with 0.
+ * This macro does not call System.exit(), because this instance of boot
+ may be nested in another boot instance. Instead a special method on boot.App
+ is called which handles the exit behavior (calling shutdown hooks etc.).
+```
+
+
+
+### [`extends-protocol`](../../2.6.0/boot/pod/src/boot/util.clj#L112)
+
+```clojure
+(extends-protocol protocol & specs)
+```
+
+```
+Like extend-protocol but allows specifying multiple classes for each of the
+implementations:
+
+ (extends-protocol IFoo
+ clojure.lang.MapEntry ; <-- this is the difference, multiple
+ clojure.lang.PersistentVector ; <-- classes per implementation
+ (-foo [x] (into [] (map bar x))))
```
-### [`extract-ids`](../../2.5.5/boot/pod/src/boot/util.clj#L267)
+### [`extract-ids`](../../2.6.0/boot/pod/src/boot/util.clj#L321)
```clojure
(extract-ids sym)
@@ -225,7 +265,7 @@ non-namespaced symbols have group-id the same as artifact-id.
-### [`fail`](../../2.5.5/boot/pod/src/boot/util.clj#L75)
+### [`fail`](../../2.6.0/boot/pod/src/boot/util.clj#L92)
```clojure
(fail & more)
@@ -234,11 +274,14 @@ non-namespaced symbols have group-id the same as artifact-id.
```
Print ERROR level message. Arguments of the form fmt & args suitable for
passing to clojure.core/format.
+
+Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod
+creation or log level won't be affected.
```
-### [`guard`](../../2.5.5/boot/pod/src/boot/util.clj#L160)
+### [`guard`](../../2.6.0/boot/pod/src/boot/util.clj#L199)
```clojure
(guard expr & [default])
@@ -251,7 +294,7 @@ not given) if an exception is thrown, otherwise returns the result.
-### [`index-of`](../../2.5.5/boot/pod/src/boot/util.clj#L288)
+### [`index-of`](../../2.6.0/boot/pod/src/boot/util.clj#L351)
```clojure
(index-of v val)
@@ -263,7 +306,7 @@ Find the index of val in the sequential collection v, or nil if not found.
-### [`info`](../../2.5.5/boot/pod/src/boot/util.clj#L63)
+### [`info`](../../2.6.0/boot/pod/src/boot/util.clj#L74)
```clojure
(info & more)
@@ -272,11 +315,14 @@ Find the index of val in the sequential collection v, or nil if not found.
```
Print INFO level message. Arguments of the form fmt & args suitable for
passing to clojure.core/format.
+
+Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod
+creation or log level won't be affected.
```
-### [`jarname`](../../2.5.5/boot/pod/src/boot/util.clj#L282)
+### [`jarname`](../../2.6.0/boot/pod/src/boot/util.clj#L345)
```clojure
(jarname project version)
@@ -289,7 +335,7 @@ symbol and version.
-### [`let-assert-keys`](../../2.5.5/boot/pod/src/boot/util.clj#L150)
+### [`let-assert-keys`](../../2.6.0/boot/pod/src/boot/util.clj#L189)
```clojure
(let-assert-keys binding & body)
@@ -302,7 +348,21 @@ is missing.
-### [`path->ns`](../../2.5.5/boot/pod/src/boot/util.clj#L245)
+### [`map-as-dep`](../../2.6.0/boot/pod/src/boot/util.clj#L336)
+
+```clojure
+(map-as-dep {:keys [project version], :as dep-map})
+```
+
+```
+Returns the given dependency vector with :project and :version put at
+index 0 and 1 respectively and modifiers (eg. :scope, :exclusions,
+etc) next.
+```
+
+
+
+### [`path->ns`](../../2.6.0/boot/pod/src/boot/util.clj#L299)
```clojure
(path->ns path)
@@ -314,7 +374,7 @@ Returns the namespace symbol corresponding to the source file path.
-### [`pp*`](../../2.5.5/boot/pod/src/boot/util.clj#L299)
+### [`pp*`](../../2.6.0/boot/pod/src/boot/util.clj#L362)
```clojure
(pp* expr)
@@ -326,7 +386,7 @@ Pretty-print expr using the code dispatch.
-### [`pp-str`](../../2.5.5/boot/pod/src/boot/util.clj#L304)
+### [`pp-str`](../../2.6.0/boot/pod/src/boot/util.clj#L367)
```clojure
(pp-str expr)
@@ -338,7 +398,7 @@ Pretty-print expr to a string using the code dispatch.
-### [`print-ex`](../../2.5.5/boot/pod/src/boot/util.clj#L208)
+### [`print-ex`](../../2.6.0/boot/pod/src/boot/util.clj#L253)
```clojure
(print-ex ex)
@@ -350,10 +410,10 @@ Print exception to *err* as appropriate for the current *verbosity* level.
-### [`print-tree`](../../2.5.5/boot/pod/src/boot/util.clj#L218)
+### [`print-tree`](../../2.6.0/boot/pod/src/boot/util.clj#L263)
```clojure
-(print-tree tree & [prefixes])
+(print-tree tree & [prefixes node-fn])
```
```
@@ -372,11 +432,16 @@ prints:
--XX└── foo
--XX └── bar
--XX └── baz
+
+You can also pass a function to generate the prefix instead of a
+collection of prefixes that will be passed the node. Passing a
+function to generate the string representation of the node itself is
+also an option.
```
-### [`read-string-all`](../../2.5.5/boot/pod/src/boot/util.clj#L309)
+### [`read-string-all`](../../2.6.0/boot/pod/src/boot/util.clj#L372)
```clojure
(read-string-all s)
@@ -388,7 +453,7 @@ Reads all forms from the string s, by wrapping in parens before reading.
-### [`sh`](../../2.5.5/boot/pod/src/boot/util.clj#L318)
+### [`sh`](../../2.6.0/boot/pod/src/boot/util.clj#L381)
```clojure
(sh & args)
@@ -402,7 +467,7 @@ to stdout and stderr as it is produced.
-### [`warn`](../../2.5.5/boot/pod/src/boot/util.clj#L69)
+### [`warn`](../../2.6.0/boot/pod/src/boot/util.clj#L83)
```clojure
(warn & more)
@@ -411,11 +476,14 @@ to stdout and stderr as it is produced.
```
Print WARNING level message. Arguments of the form fmt & args suitable for
passing to clojure.core/format.
+
+Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod
+creation or log level won't be affected.
```
-### [`warn-deprecated`](../../2.5.5/boot/pod/src/boot/util.clj#L81)
+### [`warn-deprecated`](../../2.6.0/boot/pod/src/boot/util.clj#L101)
```clojure
(warn-deprecated & args)
@@ -425,11 +493,14 @@ passing to clojure.core/format.
Print WARNING level message. Arguments of the form fmt & args suitable for
passing to clojure.core/format. Respects the BOOT_WARN_DEPRECATED environment
variable, which if set to no suppresses these messages.
+
+Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod
+creation or log level won't be affected.
```
-### [`while-let`](../../2.5.5/boot/pod/src/boot/util.clj#L119)
+### [`while-let`](../../2.6.0/boot/pod/src/boot/util.clj#L158)
```clojure
(while-let [binding test] & body)
@@ -442,7 +513,7 @@ bound to binding.
-### [`with-err-str`](../../2.5.5/boot/pod/src/boot/util.clj#L199)
+### [`with-err-str`](../../2.6.0/boot/pod/src/boot/util.clj#L244)
```clojure
(with-err-str & body)
@@ -457,7 +528,7 @@ Returns the string created by any nested printing calls.
-### [`with-let`](../../2.5.5/boot/pod/src/boot/util.clj#L113)
+### [`with-let`](../../2.6.0/boot/pod/src/boot/util.clj#L152)
```clojure
(with-let [binding resource] & body)
@@ -470,7 +541,7 @@ a cross between doto and with-open.
-### [`with-resolve`](../../2.5.5/boot/pod/src/boot/util.clj#L143)
+### [`with-resolve`](../../2.6.0/boot/pod/src/boot/util.clj#L182)
```clojure
(with-resolve bindings & body)
@@ -483,7 +554,7 @@ namespaces as necessary, binds them, and evaluates the body.
-### [`with-rethrow`](../../2.5.5/boot/pod/src/boot/util.clj#L166)
+### [`with-rethrow`](../../2.6.0/boot/pod/src/boot/util.clj#L205)
```clojure
(with-rethrow expr message)
@@ -497,7 +568,7 @@ exception is rethrown.
-### [`with-semaphore`](../../2.5.5/boot/pod/src/boot/util.clj#L89)
+### [`with-semaphore`](../../2.6.0/boot/pod/src/boot/util.clj#L128)
```clojure
(with-semaphore sem & body)
@@ -511,7 +582,7 @@ will be released before returning.
-### [`with-semaphore-noblock`](../../2.5.5/boot/pod/src/boot/util.clj#L101)
+### [`with-semaphore-noblock`](../../2.6.0/boot/pod/src/boot/util.clj#L140)
```clojure
(with-semaphore-noblock sem & body)
@@ -525,7 +596,7 @@ will be released before returning.
-### [`without-exiting`](../../2.5.5/boot/pod/src/boot/util.clj#L342)
+### [`without-exiting`](../../2.6.0/boot/pod/src/boot/util.clj#L405)
```clojure
(without-exiting & body)
diff --git a/mkdocs b/mkdocs
index e1c4e0b1..d278a788 100755
--- a/mkdocs
+++ b/mkdocs
@@ -22,7 +22,7 @@
(section
"Develop"
- repl speak wait watch)
+ notify repl speak wait watch)
(section
"Fileset"
@@ -65,12 +65,12 @@
(section
"Logging"
- dbug info warn fail warn-deprecated)
+ dbug dbug* info warn fail warn-deprecated)
(section
"Useful Macros"
guard while-let with-err-str with-let with-resolve with-rethrow
- without-exiting dotoseq do-while-let)
+ without-exiting dotoseq do-while-let extends-protocol)
(section
"Printing"
@@ -78,8 +78,8 @@
(section
"Miscellaneous"
- extract-ids auto-flush bind-syms dep-as-map let-assert-keys index-of
- jarname path->ns read-string-all with-semaphore with-semaphore-noblock))
+ extract-ids auto-flush bind-syms dep-as-map map-as-dep let-assert-keys
+ index-of jarname path->ns read-string-all with-semaphore with-semaphore-noblock))
(write-docs
:ns boot.pod
@@ -107,6 +107,7 @@
(section
"Dependencies"
+ resolve-release-versions
resolve-dependencies resolve-dependency-jar resolve-dependency-jars
resolve-nontransitive-dependencies apply-exclusions apply-global-exclusions
canonical-coord copy-dependency-jar-entries default-dependencies
@@ -129,6 +130,7 @@
(section
"Deprecated / Internal"
+ eval-in-caller eval-in-callee with-pod with-worker
set-pods! set-data! set-pod-id! set-worker-pod! set-this-pod!))
(write-docs
@@ -148,6 +150,7 @@
(section
"Boot Environment"
+ get-checkouts
get-env set-env! merge-env! get-sys-env set-sys-env! pre-env! post-env!)
(section
@@ -178,7 +181,7 @@
(section
"Filter Sequences Of TmpFiles"
file-filter by-ext by-name by-path by-re not-by-ext not-by-name
- not-by-path not-by-re)
+ not-by-path not-by-re by-meta not-by-meta)
(section
"Other Fileset Queries"
@@ -197,7 +200,7 @@
(section
"Misc. Helpers"
gpg-decrypt json-generate json-parse yaml-generate yaml-parse touch
- git-files empty-dir! sync! watch-dirs)
+ git-files empty-dir! sync! patch! watch-dirs template)
(section
"Deprecated / Internal"