Whether a third-party plugin named in tests.edn would load under Kaocha,
decided from the source text of the namespaces Kaocha would try. Apart
from volley.config because it parses source with volley.discover
(edamame): volley.main loads it only when tests.edn names a plugin
volley does not know, so other runs never load the parser.
Whether a third-party plugin named in tests.edn would load under Kaocha, decided from the source text of the namespaces Kaocha would try. Apart from `volley.config` because it parses source with `volley.discover` (edamame): `volley.main` loads it only when tests.edn names a plugin volley does not know, so other runs never load the parser.
(plugin-candidates plugin)The namespaces Kaocha tries to load for plugin
(kaocha.plugin/try-load-third-party-lib): a.b.c and then a.b for
:a.b/c, the name itself for a simple keyword.
The namespaces Kaocha tries to load for `plugin` (`kaocha.plugin/try-load-third-party-lib`): `a.b.c` and then `a.b` for `:a.b/c`, the name itself for a simple keyword.
(plugin-load-error plugin source-of)Kaocha's error for plugin (kaocha.plugin/register), or nil when it
loads. source-of returns a namespace's source text, nil when it cannot
be loaded. Kaocha tries a.b only when a.b.c fails
(try-load-third-party-lib). Returns {:error :plugin-error :message s}
(exit 248) when a namespace it tried failed and none defines the plugin,
{:error :plugin-undefined :message s} (exit 249) when they all loaded.
The source is read, never loaded: a definition counts in a tried
namespace or anything it requires, and when one may hide where volley
cannot see (see plugin-search) the plugin is taken to load.
kaocha.plugin itself, always there under Kaocha, defines no other plugin.
Kaocha's error for `plugin` (`kaocha.plugin/register`), or nil when it
loads. `source-of` returns a namespace's source text, nil when it cannot
be loaded. Kaocha tries `a.b` only when `a.b.c` fails
(`try-load-third-party-lib`). Returns `{:error :plugin-error :message s}`
(exit 248) when a namespace it tried failed and none defines the plugin,
`{:error :plugin-undefined :message s}` (exit 249) when they all loaded.
The source is read, never loaded: a definition counts in a tried
namespace or anything it requires, and when one may hide where volley
cannot see (see `plugin-search`) the plugin is taken to load.
`kaocha.plugin` itself, always there under Kaocha, defines no other plugin.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |