This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-19
Channels
- # beginners (34)
- # boot (111)
- # cider (37)
- # clara (57)
- # cljsjs (1)
- # cljsrn (22)
- # clojure (156)
- # clojure-austin (2)
- # clojure-mke (7)
- # clojure-russia (9)
- # clojure-spec (221)
- # clojure-uk (47)
- # clojurescript (42)
- # code-reviews (4)
- # community-development (9)
- # core-async (3)
- # cursive (50)
- # datomic (81)
- # emacs (12)
- # events (5)
- # hoplon (1)
- # jobs (2)
- # lein-figwheel (4)
- # leiningen (1)
- # luminus (3)
- # mount (2)
- # off-topic (1)
- # om (94)
- # om-next (3)
- # onyx (33)
- # re-frame (23)
- # reagent (41)
- # remote-jobs (9)
- # rum (30)
- # slack-help (2)
- # specter (1)
- # untangled (20)
- # yada (17)
and it gives those spec errors but I don't know where are them
It’s a syntax error in the ns
for system.repl
wherever that is coming from.
is that code mine?
Looks like org.danielsz/system and you need an updated version
You’ll need that for the fix to system.repl
instead of 0.3.1
oh that's great!
Although updating just that dependency gives me
clojure.lang.ExceptionInfo: No such var: dir/scan-dirs
file: "system/boot.clj"
@vinnyataide Like @seancorfield said, please use the snapshot version. It has the fix.
well that's how I got here, this is the first error that I've came upon
here too same error
Needs an updated tools.namespace?
That error is probably because you're using an explicit dependency on an old tools.namepace
version.
how can I check where is it\
Needs this in your build.boot
file:
[org.clojure/tools.namespace “0.3.0-alpha3”]
@seancorfield @vinnyataide Yes. Also, you can remove the explicit dependency on tools.namespace
and rely on system
to fetch it..
boot show -p
shows the conflict:
[✔] org.clojure/tools.namespace
✔ 0.3.0-alpha3
org.clojure/tools.namespace
org.danielsz/system
✘ 0.2.11
reloaded.repl
✘ 0.2.10
ring
org.clojure/test.generative
So you’d need to add :exclusions
to those dependencies so system
can bring in the right version.
oh right, but I didn't have any explicit depedeny
yeah boot show -p wasn't working for me before
now it worked!
thanks guys!
(yeah, experience and good guesses led to adding the explicit tools.namespace dep)
Definitely worth going through your build.boot
and adding exclusions for stuff.
okay, Imma do it now and push it
boot show -p
shows a lot of potential conflicts with that huge swath of dependencies you’re pulling in...
I had more... with yada...
I think I have to start slowly
Some will be harmless but you may be surprised at some of the older versions that are “winning” in those conflicts...
oh god...
so I just exclude in older libs the dependency that [!] shows right
As an example, add :exclusions [commons-codec]
on both ring
and com.datomic/datomic-free
so that om
“wins” with commons-codec “1.10”
...
oh okay that's simple enough
(we ended up with global exclusions in our build.boot
for a number of common libraries — and then having explicit dependencies to pull in the correct version)
does pulling the latest almost resolve all the cases?
I mean excluding the older ones
I was surprised you had so many old dependencies via Ring but then realized you’re using 1.5.1 and we’re on 1.6.0-beta7
Yeah I follow the github steps
I mean it's not common for me in other tech to pull beta deps
but in clojure this seems to be the opposite
beta deps are less error prone than official ones 😛
Imma gonna run refactor update deps
I wouldn’t use any snapshots in production (hint, hint @danielsz 🙂 ) but I would pretty much always run the latest releases (including alphas, betas) unless they broke my system… but it depends how risk averse you are
I'm trying to build a small but professional system for a client with a large time window
so that's okay
We’re already using Ring 1.6.0-beta7 in production, and Clojure 1.9.0-alpha14, for example.
That said, we’re not using the alpha of http-kit yet @vinnyataide
oh okay I'll just put it till it breaks
Are you planning to use any particular monitoring system in production for this application?
I ask because we use New Relic and it supports Jetty beautifully but doesn’t support http-kit very well (so we run DEV on http-kit and QA/production on Jetty at the moment, with the web server encapsulated in a Component so we can conditionally start / stop either, based on runtime configuration).
Yeah that's the purpose, so the state can monitor jail aprehensions and take decisions upon that
I'm planning to use push events to the app based on uncharacteristic data
[?] org.clojure/clojurescript
? 1.9.293
org.clojure/clojurescript
wat?clojure has a lot of conflict, since it's the base of it all do I have to fix it all?
This is why with Clojure and ClojureScript we use global exclusions.
(set-env! :exclusions ['org.clojure/clojure
‘org.clojure/clojurescript])
in build.boot
then only explicitly bring in the versions you need.oh nice nice
that's awesome
that's how I vision industry
@seancorfield Next stable release for system
is imminent. I don't expect any changes. It's a matter of writing an announcement and explaining the changes.
danielsz: I’m mostly just teasing. I was surprised there wasn’t an alpha with that ns
fix.
Yup, they landed this afternoon. I’m on a one man mission to convince everyone to start using threads to reduce noise / chaos in channels! 😆
always pushing forward
Hello, I've pushed my repo, now the error is another I think related to the system lib, since it doesn't have any channel I'll post here, the error is as follow I'm reproducing the same structure as the boot-system example
vinnyataide: I've downloaded your latest repo and I'm taking a look...
I can run boot repl
with no errors. What do I need to do to trigger the bug you're seeing?
Boot dev or run (dev) in the repl
db.clj
, line 4. You have )
in the wrong place.
Also line 2 has a spurious [
.
diff --git a/src/om_learn/db.clj b/src/om_learn/db.clj
index b331059..de48f7a 100644
--- a/src/om_learn/db.clj
+++ b/src/om_learn/db.clj
@@ -1,7 +1,6 @@
(ns om-learn.db
- (:require [[system.core :refer [defsystem]]
- (system.components
- [datomic :refer [new-datomic-db)])
- [om-learn.server :refer [handler]]
- [environ.core :refer [env]])
-
+ (:require [system.core :refer [defsystem]]
+ (system.components
+ [datomic :refer [new-datomic-db]])
+ [om-learn.server :refer [handler]]
+ [environ.core :refer [env]]))
So, delete one [
in line 2, and change )])
to ]])
on line 4, and add a closing )
on line 6.
wow surprised cider didn't caught that, sorry for bothering with such easy tasks, gotta have a better eye
NP. The error is misleading. I loaded each of the source files into Atom / ProtoREPL and that gave me the parse error directly on db.clj
and highlighted it for me.
My spacemacs needs some work then
I've found an issue related to clojure but I don't have a symbol name with digits
@juhoteperi hey, I was wondering if there's anything I can do to help this PR review: https://github.com/boot-clj/boot-cljs/pull/145 ?
@pesterhazy I have tested that it works, but I'm not sure what to do with it as it is a breaking change, in sense that it will add a warning to many projects the currently work fine
hm I don't think it would be breaking in the sense of causing something to not work that worked before
silencing the warning is straightforward (set output-wrapper
to false explicitly)
adding the warning is kind of the point, as many don't realize they have a dangerous configuration
"dangerous" in the sense that just adding a random JS file has a significant probablity to cause random exceptions
I know we only caught this in production after a few days (following an innocuous change)
adding random JS files is always dangerous
this warning doesn't change that
the way I see it, adding any javascript is almost guaranteed to cause issues (Google Closure overwrite window.fb
etc.)
there's also no downside to wrapping the compiler output in a closure as far as I can see, and it's what other javascript tooling does (webpack etc.)
hey folks, What is the right way to catch the control-c event ( or handling POSIX signals ) ?
I generally just add a shutdown hook and let the jvm handle unix signals
@donaldball thanks, as you can see in http://dpaste.com/2JRKJF7 i did it, but it does not work, can you please take look, I may forget something
Alas, I don’t see anything wrong offhand, but here’s one of mine that does the job: https://gist.github.com/dball/28fae154b7d8db0e6d5f763a8738f551
Hi folks. FYI https://github.com/migae/boot-gae has been updated. It’s a little simpler, and it handles service-based applications rather nicely, I think, with REPL-like support for service components. See also https://github.com/migae/boot-gae-examples, which demonstrate both servlet-based and service-based apps from thje same codebase. I think it’s about ready for an official release, but I would greatly appreciate it if anybody would give the examples a try and let me know a) if it works and b) if the documentation is satisfactory. Long Live Boot!!!
@flyboarder so which boot task do you use nowadays for javascript dependencies and externs generation?
@richiardiandrea: I do the externs by hand, same with the cljsjs libs
Or use the website referenced in the wiki
there was a generation iirc
I was wondering if I could use boot-npm
for pulling libs and then use it