Fork me on GitHub
#boot
<
2017-01-19
>
vinnyataide00:01:44

and it gives those spec errors but I don't know where are them

seancorfield00:01:16

It’s a syntax error in the ns for system.repl wherever that is coming from.

vinnyataide00:01:42

is that code mine?

seancorfield00:01:57

Looks like org.danielsz/system and you need an updated version

seancorfield00:01:05

You’ll need that for the fix to system.repl instead of 0.3.1

vinnyataide00:01:23

oh that's great!

seancorfield00:01:19

Although updating just that dependency gives me

clojure.lang.ExceptionInfo: No such var: dir/scan-dirs
    file: "system/boot.clj"

danielsz00:01:33

@vinnyataide Like @seancorfield said, please use the snapshot version. It has the fix.

vinnyataide00:01:14

well that's how I got here, this is the first error that I've came upon

vinnyataide00:01:39

here too same error

seancorfield00:01:35

Needs an updated tools.namespace?

danielsz00:01:39

That error is probably because you're using an explicit dependency on an old tools.namepace version.

vinnyataide00:01:53

how can I check where is it\

seancorfield00:01:34

Needs this in your build.boot file:

[org.clojure/tools.namespace “0.3.0-alpha3”]

danielsz00:01:52

@seancorfield @vinnyataide Yes. Also, you can remove the explicit dependency on tools.namespace and rely on system to fetch it..

seancorfield00:01:06

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

seancorfield00:01:28

So you’d need to add :exclusions to those dependencies so system can bring in the right version.

vinnyataide00:01:28

oh right, but I didn't have any explicit depedeny

vinnyataide00:01:02

yeah boot show -p wasn't working for me before

vinnyataide00:01:21

now it worked!

seancorfield00:01:30

(yeah, experience and good guesses led to adding the explicit tools.namespace dep)

seancorfield00:01:04

Definitely worth going through your build.boot and adding exclusions for stuff.

vinnyataide00:01:24

okay, Imma do it now and push it

seancorfield00:01:34

boot show -p shows a lot of potential conflicts with that huge swath of dependencies you’re pulling in...

vinnyataide00:01:01

I had more... with yada...

vinnyataide00:01:16

I think I have to start slowly

seancorfield00:01:47

Some will be harmless but you may be surprised at some of the older versions that are “winning” in those conflicts...

vinnyataide00:01:49

so I just exclude in older libs the dependency that [!] shows right

seancorfield00:01:27

As an example, add :exclusions [commons-codec] on both ring and com.datomic/datomic-free so that om “wins” with commons-codec “1.10”...

vinnyataide00:01:50

oh okay that's simple enough

seancorfield00:01:20

(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)

vinnyataide00:01:28

does pulling the latest almost resolve all the cases?

vinnyataide00:01:46

I mean excluding the older ones

seancorfield00:01:52

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

vinnyataide00:01:15

Yeah I follow the github steps

vinnyataide00:01:37

I mean it's not common for me in other tech to pull beta deps

vinnyataide00:01:46

but in clojure this seems to be the opposite

vinnyataide00:01:33

beta deps are less error prone than official ones 😛

vinnyataide00:01:02

Imma gonna run refactor update deps

seancorfield00:01:37

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

vinnyataide00:01:18

I'm trying to build a small but professional system for a client with a large time window

vinnyataide00:01:23

so that's okay

seancorfield00:01:13

We’re already using Ring 1.6.0-beta7 in production, and Clojure 1.9.0-alpha14, for example.

seancorfield00:01:46

That said, we’re not using the alpha of http-kit yet @vinnyataide

vinnyataide00:01:06

oh okay I'll just put it till it breaks

seancorfield00:01:47

Are you planning to use any particular monitoring system in production for this application?

seancorfield00:01:13

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).

vinnyataide01:01:17

Yeah that's the purpose, so the state can monitor jail aprehensions and take decisions upon that

vinnyataide01:01:08

I'm planning to use push events to the app based on uncharacteristic data

vinnyataide01:01:25

[?] org.clojure/clojurescript
    ? 1.9.293
      org.clojure/clojurescript
wat?

vinnyataide01:01:17

clojure has a lot of conflict, since it's the base of it all do I have to fix it all?

seancorfield01:01:37

This is why with Clojure and ClojureScript we use global exclusions.

seancorfield01:01:30

(set-env! :exclusions   ['org.clojure/clojure
                         ‘org.clojure/clojurescript])
in build.boot then only explicitly bring in the versions you need.

vinnyataide00:01:23

that's awesome

vinnyataide00:01:57

that's how I vision industry

danielsz00:01:33

@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.

seancorfield00:01:06

danielsz: I’m mostly just teasing. I was surprised there wasn’t an alpha with that ns fix.

danielsz00:01:15

Oh, threaded conversations. 🙂

danielsz00:01:39

Alpha, yes, it didn't cross my mind. I'll take the idea.

seancorfield00:01:58

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! 😆

vinnyataide00:01:35

always pushing forward

vinnyataide03:01:17

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

seancorfield03:01:43

vinnyataide: I've downloaded your latest repo and I'm taking a look...

seancorfield03:01:10

I can run boot repl with no errors. What do I need to do to trigger the bug you're seeing?

vinnyataide13:01:43

Boot dev or run (dev) in the repl

seancorfield17:01:49

db.clj, line 4. You have ) in the wrong place.

seancorfield17:01:58

Also line 2 has a spurious [.

seancorfield17:01:26

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]]))

seancorfield17:01:18

So, delete one [ in line 2, and change )]) to ]]) on line 4, and add a closing ) on line 6.

vinnyataide19:01:38

wow surprised cider didn't caught that, sorry for bothering with such easy tasks, gotta have a better eye

seancorfield20:01:52

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.

vinnyataide00:01:51

My spacemacs needs some work then

vinnyataide03:01:43

I've found an issue related to clojure but I don't have a symbol name with digits

pesterhazy13:01:11

@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 ?

juhoteperi13:01:15

@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

pesterhazy13:01:21

hm I don't think it would be breaking in the sense of causing something to not work that worked before

pesterhazy13:01:13

silencing the warning is straightforward (set output-wrapper to false explicitly)

pesterhazy13:01:10

adding the warning is kind of the point, as many don't realize they have a dangerous configuration

pesterhazy13:01:48

"dangerous" in the sense that just adding a random JS file has a significant probablity to cause random exceptions

pesterhazy13:01:55

I know we only caught this in production after a few days (following an innocuous change)

juhoteperi13:01:08

adding random JS files is always dangerous

juhoteperi13:01:15

this warning doesn't change that

pesterhazy13:01:13

the way I see it, adding any javascript is almost guaranteed to cause issues (Google Closure overwrite window.fb etc.)

pesterhazy13:01:53

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.)

lxsameer15:01:02

hey folks, What is the right way to catch the control-c event ( or handling POSIX signals ) ?

donaldball15:01:19

I generally just add a shutdown hook and let the jvm handle unix signals

lxsameer16:01:59

@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

donaldball16:01:56

Alas, I don’t see anything wrong offhand, but here’s one of mine that does the job: https://gist.github.com/dball/28fae154b7d8db0e6d5f763a8738f551

mobileink18:01:30

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!!!

richiardiandrea19:01:23

@flyboarder so which boot task do you use nowadays for javascript dependencies and externs generation?

flyboarder19:01:54

@richiardiandrea: I do the externs by hand, same with the cljsjs libs

flyboarder19:01:13

Or use the website referenced in the wiki

richiardiandrea19:01:44

there was a generation iirc

richiardiandrea19:01:08

I was wondering if I could use boot-npm for pulling libs and then use it

geoffs20:01:12

@micha are pods from a pod worker pool reused, or are they guaranteed one-time only?

micha20:01:52

they are guaranteed to be one-time only

micha20:01:16

there is a pod-pool thing in boot

micha20:01:22

but it's really more like a pod-queue

micha20:01:42

it just keeps a queue of pods all warmed up and ready to be used

geoffs20:01:54

oh, neat :thumbsup:

geoffs20:01:30

that should really nicely solve the issues my junit test task has around reloading Java classes...