ghostwheel

Hassle-free clojure.spec, automatic generative testing, side effect detection, and evaluation tracing for Clojure(-Script) – https://github.com/gnl/ghostwheel
gnl 2019-06-17T12:35:06.000100Z

WIP is in a private repo, I like to clean up my history a bit before I publish, but 0.4.0-SNAPSHOT is deployed to clojars if you wanna give it a shot.

gnl 2019-06-17T12:35:14.000300Z

Re deps.edn – PRs are welcome. 🙂

gnl 2019-06-17T12:35:44.000500Z

(But wait till it's published with the uptodate dependencies and everything)

gnl 2019-06-17T12:37:51.000700Z

Be advised that there are some breaking changes in the config options – there's however an automatic migration in place, see ghostwheel.config/migrate-deprecated-config

gnl 2019-06-17T12:39:36.000900Z

And it's on by default now since we're using the stubs, so if you don't want any test code to be generated during development, set :no-check true in your ghostwheel.edn

gnl 2019-06-17T12:40:14.001100Z

The matching stubs version is 0.4.1

tony.kay 2019-06-17T15:39:22.001300Z

I’m dropping lein altogether…`mvn deploy` is easy to set up for clojars, and the deps features are just too valuable…works so much better than the old lein “checkouts” stuff for working on projects together from local directories. Also, deps does a much better job of resolving the dependencies.

tony.kay 2019-06-17T15:40:46.001600Z

lein is always pulling in weird versions of things that you then have to “pin”

gnl 2019-06-17T15:54:23.001800Z

Yeah I've been meaning to drop it for a while now, but I hadn't gotten around to looking into how to set up deps with clojars. Will ping you when the code's in the public repo so you can do the PR and then 0.4.0 will be lein-free.

tony.kay 2019-06-17T16:24:44.002100Z

All you have to do to get maven deploy to clojars going is to set up your credentials in ~/.m2/settings.xml like this:

<settings>
<servers>
  <server>
    <id>clojars</id>
    <username>tony_kay</username>
    <password>...</password>
  </server>
</servers>
</settings>

tony.kay 2019-06-17T16:24:55.002300Z

I can set up the correct pom.xml for you in ghostwheel (and clj -Spom can update it anytime you change deps.edn)

tony.kay 2019-06-17T16:25:04.002500Z

then it’s just mvn deploy

wilkerlucio 2019-06-17T20:03:40.003500Z

hello, I'm trying ghostwheel with Clojure, but I can't figure how to get expound to work, this is my config:

wilkerlucio 2019-06-17T20:03:41.003700Z

{:check       true
 :ignore-fx   true
 :instrument  true
 :outstrument true
 :extrument   true
 :expound     {:show-valid-values? true
               :print-specs?       true}}

wilkerlucio 2019-06-17T20:04:04.004300Z

on cljs it works fine, but no in clj, I tried doing the require for the expound but still didn't had any effect on the error reporting

wilkerlucio 2019-06-17T20:04:18.004600Z

what may I be missing?

bbrinck 2019-06-17T23:16:03.006600Z

I’m not familiar with ghostwheel, but can you try the following:

(set! clojure.spec.alpha/*explain-out* (expound/custom-printer {:show-valid-values? true :print-specs? true}))