This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-16
Channels
- # aws-lambda (3)
- # beginners (20)
- # boot (201)
- # cljs-dev (45)
- # cljsrn (9)
- # clojars (19)
- # clojure (141)
- # clojure-china (2)
- # clojure-dev (11)
- # clojure-greece (6)
- # clojure-italy (1)
- # clojure-new-zealand (1)
- # clojure-romania (1)
- # clojure-russia (55)
- # clojure-spec (58)
- # clojure-taiwan (1)
- # clojure-uk (97)
- # clojure-ukraine (40)
- # clojurescript (77)
- # core-async (5)
- # core-typed (1)
- # cursive (35)
- # datomic (9)
- # jobs (2)
- # jobs-rus (25)
- # juxt (8)
- # lein-figwheel (14)
- # luminus (24)
- # mount (16)
- # off-topic (56)
- # om (36)
- # onyx (22)
- # pedestal (3)
- # perun (14)
- # re-frame (111)
- # reagent (5)
- # remote-jobs (6)
- # ring-swagger (3)
- # slack-help (1)
- # specter (17)
- # unrepl (12)
- # untangled (56)
- I tried putting exactly as it says here: https://github.com/dgrnbrg/spyscope#boot
still getting java.lang.IllegalStateException: Attempting to call unbound fn: #’spyscope.core/print-log
when boot generates the boot.user namespace it pastes in the contents of your profile.boot followed by the contents of your build.boot
the unbound fn
business seems like a regular clojure issue, not necessarily boot related
this is what’s happening
$> boot -vb
(ns boot.user
(:use boot.core boot.util boot.task.built-in))
(set-env! :dependencies #(conj % '[spyscope "0.1.5"]))
(require '[spyscope.core])
(load-data-readers!)
;; end global profile
;; start boot script
I just have a piece of code with #spy/p in a file and trying to start repl - it won’t compile
I don’t really give shit about spyscope - I was managing without it so far (mostly doing things in CLJS) this lib seems to be of much importance to my colleague though.
so you're saying if i make a namespace that uses that #spy/p
thing it will not compile?
Micha, it works if you initially bot repl and then require namespaces, etc. but if the file contains #spy/p it won’t even let you run boot
- won’t compile
again: you are requiring file in a repl that already started. If you have initially #spy/p shit in namespaces it won’t compile
the only thing you need to make sure of is that you don't try to compile those namespaces before you do load-data-readers!
the -s src -d spyscope
options there is just doing (set-env! :dependencies '[[spyscope "RELEASE"]] :source-paths #{"src"})
you do need to do (require 'spyscope.core)
before trying to compile a file with #spy/p
in it
you can try adding :require [spyscope.core]
in the namespace that has the tagged literals in it
you tried putting the (require 'spyscope.core)
and (load-data-readers!)
in your profile.boot?
I did, but for whatever reason it didn’t work. hold on.. I think If I put:
(require '[spyscope.core])
(load-data-readers!)
before other requires it may do the trickthe ns I put #spy/p is required in tests, and when I run boot test
it throws something else:
since you got the error referring to #'spyscope.core/print-log that means the tagged literals are at least working properly in the reader
alright I think I get it, I’ll dig some more. Micha thank you so much. really appreciate your help
is there a simpler way to (push) without all the frills? I'm hoping if I can side-step all the indirection I can at least do something crude that works
@kentnl maybe you can use bootlaces? I haven't had any problem with it and if it cannot find gpg stuff it will prompt
Also maybe that part could actually go into core
My problem was even calling push directly with a :repo-map
value, with the :username
and :password
fields coded in directly with (System/get-env ...
inside the appropriate entries, clojars still wasn't getting the username values.
that's why I want something less featured, because I looked at the mechanics of push
and its internals made me want to stop living.
I can't tell if I was even passing the data correctly, or if it was in the right format, nothing clarified things for me.
Yes the repo map need documentation, there is an issue open for that and I banged my head on it as well
The wiki is very bad here. Like the (set-env! :repositories
example tends to break resolving [clojure
, entirely.
@kentnl feel free to give a bit of an improvement 😉 We can all profit from this small tweaks, in the meantime this worked for me: https://github.com/elasticpath/rest-resource-viz/blob/master/build.boot#L187
And with regards to configure-repositories
, how can I even tell its working as expected?
( I sidestepped it entirely and it didn't fix the problem either, but my testing indicated it was faulting in 2 different places )
Didn't debug that, but you see, had I documented it right away, you would not have spent time there... sorry about that!
Actually, this will help, is there a sensible way I can mock out the HTTP layer here and just get push() to end up invoking a dummy function that does nothing but fail?
I just want to have a sure fire way to see what's going on without needing to have an SSL-stripping MITM 😛
Uhm, boot uses pomegranate
so it is hard to mock
this is a super noob question but could anybody tell me why my BOOT_CLOJURE_VERSION always goes to 1.7.0 instead of 1.8.0? I have tried deleting .boot and running boot -u (boot -U also uses 1.7.0)
so this:
(deftask override [] (set-env! :source-paths (fn [_] #{"ui_tests/clj"})))
(deftask run-tests []
(comp
(override)
(test)))
doesn’t seem to work. although if instead of (test)
I run (:source-paths (get-env))
it shows it correct, but (test)
seem to be ignoring thatMicha yesterday suggested to try https://github.com/metosin/boot-alt-test
usually it is - not in my case - I have unit tests and I have e2e tests, I need to run them separately
I have test/clj
and test/cljs
and I also have ui_test/clj
I need to force it to run tests only in ui_test/clj
restricting namespaces is tricky - if you restrict to namespaces of to use only ^.*ui-tests.*$
, they can’t seem to be able to require anything from src/clj
let me play with it some more… I’ll come back later, to continue complaining about my life
clojure does symbol resolution as part of compilation, so the symbol resolution fails when it referes to something that doesn't exist until after aot has run
(deftask s1
"run s1"
[]
(with-pass-thru _
(eval '(do
(require 'q.s1)
(q.s1/-main)))))
a lot of people aot compile unnecessarily because they don't seem to know how else to start a clojure program, I have a little write up https://github.com/hiredman/clojure-site/blob/df56aef005d5d867213a51c2d3bbec5a86b0acad/content/guides/running_a_clojure_program.adoc
aot compilation can be a source of a lot of pain, so it is a drag to see people doing it when they don't need to
I tried to use a custom URL in my repo-map, but now I'll I get is:
org.sonatype.aether.transfer.NoRepositoryConnectorException: No connector available to access repository hacks () of type default using the available factories FileRepositoryConnectorFactory, WagonRepositoryConnectorFactory
repository: #object[org.sonatype.aether.repository.RemoteRepository 0x275fe372 "hacks (, releases+snapshots)"]
org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts/metadata: No connector available to access repository hacks () of type default using the available factories FileRepositoryConnectorFactory, WagonRepositoryConnectorFactory
clojure.lang.ExceptionInfo: Failed to deploy artifacts/metadata: No connector available to access repository hacks () of type default using the available factories FileRepositoryConnectorFactory, WagonRepositoryConnectorFactory
I tried reading the related aether java code and almost died from excessive wtfs per minute
oh well, found hacks around it. Repo-map documentation being confusing and apparently having the values in it entirely ignored aren't helping.
kentnl: I hear you: https://github.com/boot-clj/boot/issues/590