Liking cljdoc? Tell your friends :D

com.blockether.vis.contract.clojure-host

The Clojure host contract as DATA: resources/vis-contract/clojure-host.edn.

com.blockether.vis.contract.python-host declares what a PYTHON extension may ask the host for. This is its symmetric half for CLOJURE extensions, which have no sandbox at all: an extension is a deps project with the whole engine on its classpath, so the facade com.blockether.vis.core is a promise nothing enforced.

The document names the facade, where extension code lives, and the FROZEN set of internal namespaces extensions already require past it. This namespace reads and validates the document and re-derives the real coupling from the tree, so contract.clojure-host-test can fail on drift in either direction.

It ships in com.blockether/vis-contract beside its Python twin and requires no Vis namespace: a linter in somebody else's repository can read the same document the engine's own suite enforces.

The Clojure host contract as DATA: `resources/vis-contract/clojure-host.edn`.

[[com.blockether.vis.contract.python-host]] declares what a PYTHON extension may
ask the host for. This is its symmetric half for CLOJURE extensions, which have no
sandbox at all: an extension is a deps project with the whole engine on its
classpath, so the facade `com.blockether.vis.core` is a promise nothing enforced.

The document names the facade, where extension code lives, and the FROZEN set of
internal namespaces extensions already require past it. This namespace reads and
validates the document and re-derives the real coupling from the tree, so
`contract.clojure-host-test` can fail on drift in either direction.

It ships in `com.blockether/vis-contract` beside its Python twin and requires no
Vis namespace: a linter in somebody else's repository can read the same document
the engine's own suite enforces.
raw docstring

extension-rootsclj

(extension-roots)

Directories, relative to the repository root, that hold extension projects.

Directories, relative to the repository root, that hold extension projects.
sourceraw docstring

facadeclj

(facade)

The one namespace an extension is meant to require.

The one namespace an extension is meant to require.
sourceraw docstring

internal-debtclj

(internal-debt)

The frozen coupling: {:debt/production #{ns} :debt/test #{ns}}.

The frozen coupling: `{:debt/production #{ns} :debt/test #{ns}}`.
sourceraw docstring

internal-requiresclj

(internal-requires root)

The internal namespaces extensions under root really require, as {:debt/production {ns #{path}} :debt/test {ns #{path}}}. Every namespace is a symbol; the paths are what a failing test names as the place to fix.

The internal namespaces extensions under `root` really require, as
`{:debt/production {ns #{path}} :debt/test {ns #{path}}}`. Every namespace is a
symbol; the paths are what a failing test names as the place to fix.
sourceraw docstring

versionclj

(version)

The contract version. Bumped when the shape of the document changes.

The contract version. Bumped when the shape of the document changes.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close