All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
0.3.5 – 2018-12-03
- Synchronised versions across modules
0.3.4 – 2018-12-03
-
Warnings when running
(g/check) -
Compile warnings about replaced core functions
-
Exception when hot-reloading Ghostwheel namespaces
- Simple 2-second base config cache to avoid rereading and parsing the global configuration on every
>defnduring recompile. Thanks @awkay for the pointer / idea.
-
Headless Chrome tests in CircleCI – they run fine locally, until the issue is resolved, the CLJS tests will be run on node only.
-
Some dead or confusing code
0.3.1 – 2018-12-01
Use of undeclared Var com.rpl.specter/javawarning – #15- Specter is no longer required at runtime as its minimal use wasn't worth the additional dependency (it's still used in testing though).
- Remove unnecessary calls to
s/unstrumenton namespace reload.
-
Full Clojure support including Ghostwheel checking and reporting in the REPL, as well as a
ghostwheel.ednconfiguration file and a-Dghostwheel.enabled=trueJVM system property to explicitly enable it. -
Related to the above – support for checking, reporting and tracing in plain-text ClojureScript REPLs, as well as
ghostwheel.ednand-Dghostwheel.enabled=true -
::g/report-outputconfiguration option to determine reporting/tracing output with sensible defaults for Clojure/ClojureScript (:repl/:js-consolerespectively). -
Rewrite of
(g/check)to support checking (in the REPL or a test-runner) of single or multiple functions and namespaces, including regex-based multi-selection support for the latter. -
Improved and much more detailed coverage warnings for plain
defnusage, disabled Ghostwheel checking, etc. -
Composability with other
defn-like macros with the::g/defn-macrooption to make Ghostwheel desugar to something other thandefn/defn-. -
Support for easy spec-instrumentation with metadata when writing external specs with
>fdefwith identical behaviour to>defn–^::g/outstrument/^::g/instrument -
::g/expoundoption to configure the Expound spec error pretty-printer. On by default.
- Dropped many runtime dependencies – specter, cuerdas, uniontypes, clairvoyant.core, re-frame-tracer, and when running on Clojure – ClojureScript.
- Specter and cuerdas were grudgingly replaced with core functions, clairvoyant.core and the tracer are now required by/part of the separate
ghostwheel.tracermodule, and uniontypes was meant for a functionality that isn't implemented yet.
- Specter and cuerdas were grudgingly replaced with core functions, clairvoyant.core and the tracer are now required by/part of the separate
-
The core of the tracing functionality has been extracted into the
ghostwheel.tracerartifact, the namespace in which must be additionally required once in the project for tracing to work. -
The specs package with gspecs for
clojure.coreand soon hopefully third-party libraries has been extracted into a separateghostwheel.specsartifact/repo. -
::g/extrumentis now a global-only option and cannot be set on an individual namespace level. -
The releases are now being signed.
-
The cljdoc documentation should be much cleaner and more usable now as a number of internal namespaces have been excluded from the doc generation.
0.2.3 – 2018-07-13
-
Incorrect generation of empty-arg fspecs => test execution errors
-
The ghostwheel core, tracing and reporting namespaces are unnecessarily recompiled on every hot-reload with Shadow CLJS
-
Plain
defnas well asdeclared functions can be excluded from coverage checks with the::g/check-coverage falsemetadata -
Allow instrumentation with nil gspecs – trust that there's an external fspec/fdef and simply fail if there isn't.
-
Updated clojure.spec and test.check
-
::outstrumentoverrides::instrumentwhen they are used together. Don't use them together.
0.2.2 – 2018-06-30
-
Namespace metadata ignored when using Figwheel or cljs.main
-
Instrumentation requires
::g/checkoption – #1
-
Global/compiler configuration is now set via the
:external-configcompiler option. The old behaviour is deprecated. -
Ghostwheel is now enabled via
:ghostwheel {}instead of:ghostwheel true. The latter is deprecated. -
Requiring
ghostwheel.corein CLJS is now simpler and works the same way as in Clojure – #2