All notable changes to this project will be documented in this file.
:malli/schema var
metadata. Skeptic now converts simple [:=> [:cat ...] out] function
schemas, primitive leaves, :maybe, :or, :enum, and recognized
predicate symbols into the checker type domain. Unsupported Malli forms
currently remain dynamic.--explain-full to show
fully expanded structural forms.lein skeptic runs the analysis pass under
schema.core/without-fn-validation, avoiding Plumatic Schema function
validation overhead in projects that have runtime Schema validation enabled.Expected typed entry on Malli :map or other
unsupported Malli forms encountered while building the per-namespace
declaration dict.defn output is now checked per arity against the declared
return type for that specific arity, instead of comparing every analyzed
method against the first arity's declared output.-o/--output OUTPUT_FILE on lein skeptic so skeptic's findings, summary, or JSONL stream can be written to a file while lein/JVM chatter stays on stdout (#2).(or x fallback) no longer reports a spurious nullability error when fallback is truthy.(str/blank? a) or (some? a) guard on a {:keys [a]} destructure refines
the local a itself, not only the parent map, so downstream reads of a
see the narrowed type.org.clojars.nomicflux/skeptic and org.clojars.nomicflux/lein-skeptic, :deploy-repositories for Leiningen, CI checks that keep the library and plugin versions aligned before publish, and GitHub Actions for Release lifecycle (orchestrates phases), Change project versions (reusable version bump), and Publish to Clojars (reusable deploy to Clojars).lein skeptic -p / --porcelain for newline-delimited JSON output (one
JSON object per line), documented in the README.lein skeptic --profile for optional CPU, memory, and wall-clock profiling;
when combined with --porcelain, the profile summary is written to stderr so
stdout stays JSONL-only..skeptic/config.edn with :exclude-files (root-relative
globs that skip loading and checking matched paths) and :type-overrides
(Plumatic Schema forms evaluated with schema.core in scope and merged into
collected declarations, including :output-only overrides).:skeptic/ignore-body and :skeptic/opaque on
s/defn attribute maps, and ^{:skeptic/type T} on expressions (see README
Suppressing checks).README.md that explains what Skeptic checks, how
the plugin works, how to install it, how to interpret its reports, where to
find the algorithm reference, and how to use configuration, JSONL output,
suppressions, and a short “building from source” section.--analyzer CLI flag to print analyzer output while inspecting a
namespace.get
and merge.clojure.tools.analyzer ASTs
instead of the older macroexpansion-driven pipeline.clojure.tools.reader with source logging so
reports can preserve source text and location metadata.throw, case, and cond; numeric tower comparisons; clojure.string/blank?;
conditional branches; maybe / eq / nil edge cases; invoke analysis without
redundant walks; cyclic type graphs; preservation of map projections through
checks; and a single consolidated boundary for schema-side compatibility checks
against inferred types.Can you improve this documentation? These fine people already did:
Michael A. & Michael AndersonEdit on GitHub
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 |