This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-10-24
Channels
- # aws (7)
- # aws-lambda (3)
- # beginners (65)
- # boot (43)
- # cider (7)
- # cljs-dev (12)
- # cljsrn (15)
- # clojure (284)
- # clojure-austin (32)
- # clojure-brasil (4)
- # clojure-dusseldorf (4)
- # clojure-germany (1)
- # clojure-italy (40)
- # clojure-spec (21)
- # clojure-uk (69)
- # clojurescript (97)
- # core-async (11)
- # cursive (19)
- # data-science (1)
- # datascript (6)
- # datomic (30)
- # dirac (2)
- # emacs (4)
- # events (2)
- # fulcro (76)
- # graphql (38)
- # juxt (1)
- # lein-figwheel (1)
- # leiningen (6)
- # luminus (4)
- # lumo (13)
- # mount (4)
- # off-topic (24)
- # om (28)
- # onyx (32)
- # other-languages (1)
- # parinfer (40)
- # pedestal (1)
- # portkey (47)
- # re-frame (21)
- # reagent (4)
- # ring (4)
- # ring-swagger (3)
- # rum (1)
- # shadow-cljs (115)
- # spacemacs (5)
- # sql (14)
- # unrepl (1)
- # yada (3)
Hello people, today I like to share a video with you, this video shows a way that you can get auto-complete exploratory features for your Om.next graphs. This is a combinations of technologies, being Pathom a backend library that helps you write your parsers, and OgE, that's a web interface to explore your graph. I made a video to demonstrate how you can combine those and have a good exploratory solution for your graphs, I hope you enjoy it: https://www.youtube.com/watch?v=60i9uStI9As
when I changed my clojure version to 1.8.0 to 1.9.0-beta2, fulcro stopped working.
I get bunch of warnings like: WARNING: qualified-keyword? already refers to: #'clojure.core/qualified-keyword? in namespace: clojure.future, being replaced by: #'clojure.future/qualified-keyword? WARNING: any? already refers to: #'clojure.core/any? in namespace: clojure.future, being replaced by: #'clojure.future/any? WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.future, being replaced by: #'clojure.future/boolean? WARNING: inst? already refers to: #'clojure.core/inst? in namespace: clojure.future, being replaced by: #'clojure.future/inst?
And then Caused by: java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.future/ident?
So I'm guess I need to exclude clojure-future-spec from fulcro dep
Solved it. Just in case someone else runs into it: you need to add :exclusions [clojure-future-spec]
to fulcro, fulcro-sprec and fulcro-sql then add [clojure-future-spec "1.9.0-beta2"]
as dependency
is there some way to use fulcro.ui.bootstrap3/labeled-input
in fulcro forms? It's nicer than f/form-field
input field.
The fix above I mentioned will allow you to run the REPL, but fulcro-sql will now crash: ClassCastException clojure.spec.alpha$and_spec_impl$reify__14123 cannot be cast to clojure.lang.IFn clojure.spec.alpha/spec-impl/reify--44590 (alpha.clj:876)
@roklenarcic you can remove the clojure-future-spec entirely when using 1.9, the clojure-future-spec is to use spec with old clojure versions
I tried
doesn't work because things try to import clojure.future
namespace
normal spec doesn't have that same namespace
The final solution was to remove all exclusions and added deps I described earlier, downgrade clojure from beta2
to alpha17
and to reduce fulcro-sql from 0.2.0
to 0.1.0
. This seems to work.
that's weird, I never had to do any of that
who is requiring the clojure.future namespace?
clojure future spec is supposed to “auto-retract”. It should be ok for it to be on classpath with 1.9
but clojure-future-spec
is a required dependency for both 1.8 and 1.9 for fulcro to work, but it should be a no-op if using 1.9.
you cannot just exclude it. You have to resolve it, but it can co-exist with clojure 1.9.
@wilkerlucio FYI: It is needed in order to ensure things like boolean?
exist…so you do have to require it, but the namespace you require does nothing in 1.9
humm, gotcha, I though it could be removed, my bad
@roklenarcic It could be the version of clojure-future-spec you’re getting in the result is too old
Try to use CLJ 1.9 beta 2 with fulcro and its clojure-future-spec alpha 17
you won't be able to run a REPL
I also thought that the code in clojure.future was supposed to stop namespace from doing anything in 1.9
but it didn't for some reason
if you “pin” clojure-future-spec to beta2, then something else fails, some spec code somewhere
Caused by: clojure.lang.ExceptionInfo: Call to clojure.core/defn- did not conform to spec: In: [2 0] val: schema fails spec: :clojure.core.specs.alpha/arg-list at: [:args :bs :arity-n :bodies :args] predicate: vector? In: [2 1] val: ({:keys [:fulcro-sql.core/depth], :or {:fulcro-sql.core/depth 1}, :as filtering} table-set) fails spec: :clojure.core.specs.alpha/arg-list at: [:args :bs :arity-1 :args] predicate: (cat :args (* :clojure.core.specs.alpha/binding-form) :varargs (? (cat :amp #{(quote &)} :form :clojure.core.specs.alpha/binding-form))), Extra input :clojure.spec.alpha/spec #object[clojure.spec.alpha$regex_spec_impl$reify__988 0x2ed7a513 "[email protected]"]
hm…I’ve seen spec do that on hot code reload when you have too many things in the refresh dirs list
I have what's basically your template
anyway, if you play around with CLJ and clojure-future-spec
versions for a bit, you'll see that only a specific combination works. I was using fulcro-sql 0.2.0 too, maybe that was a prob
@roklenarcic flawless.
Here are my deps:
:dependencies [[org.clojure/clojure "1.9.0-beta2"]
[org.clojure/clojurescript "1.9.946"]
[fulcrologic/fulcro "1.0.0" :exclusions [commons-codec]]
[fulcrologic/fulcro-sql "0.2.0"]
[org.clojure/core.async "0.3.443"]
[org.omcljs/om "1.0.0-beta1"]
[kibu/pushy "0.3.7"]
[bidi "2.1.2"]
[ring/ring-core "1.6.2" :exclusions [commons-codec]]
[bk/ring-gzip "0.2.1"]
[http-kit "2.2.0"]
[com.taoensso/timbre "4.10.0"]
[fulcrologic/fulcro-spec "1.0.0" :scope "test" :exclusions [commons-codec fulcrologic/fulcro commons-fileupload]]]
I had a working build. I just upgraded to CLJ 1.9.0-beta2 and it broke
not surprising…that can change a lot…I’m just saying that it doesn’t seem like fulcro is doing something wrong 😉
I guess it was something else maybe
I did
fulcro was using clojure-future-spec
1.9.0-alpha17
If you change dependencies much, I recommend this procedure:
1. Remove all exclusions
(comment them out)
2. Make your additions/changes
3. Then go through lein deps and carefully fix the warnings, but usually not the way they suggest 🙂
it is using alpha17 in mine right now…but since I’m using clojure 1.9, it is not having any effect
why does your fulcro-spec have that many exclusions?
So, exclusions are good when there is a conflict and you want to let some other library take precedence. You have two choices: pin the library in your own deps (which you should probably comment if doing, since it can mess things up later), or exclude it from the one that uses and older conflicting version.
ok I'll try again
That defn
error you were getting: I’ve seen it before in a non-fulcro project. I was puzzled by it, but narrowing my refresh dirs for tools-ns seemed to clear it up.
I have no clear theory for why the compiler would suddenly start failing such a common well-known form due to spec
weird
now it works
I only changed fulcro-sql from 0.2.0-SNAPSHOT to 0.1.0 and fulcro-spec 1.0.0-beta9 to 1.0.0
shouldn't matter
oh well... another day another mystery snafu
never hurts to ask. the state of spec seems a bit fragile to me at the moment, which is unfortunate
Yeah I was putting off learning spec till 1.9 release, but it's taking so long that it's used a lot already
that's going to end up affecting many libraries using these backports
Anyone have Jekyll experience? I’ve got the new website source on github, but my assets (images) are not showing up
New website is up!!! https://fulcrologic.github.io/fulcro/
Thanks to @kevintai88 and @mitchelkuijpers
Looks good