Giter Site home page Giter Site logo

boot's People

Contributors

alandipert avatar bwanab avatar cpmcdaniel avatar devn avatar echeran avatar jumblerg avatar ldenman avatar leontalbot avatar micha avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boot's Issues

boot 1.0.3 throws FileNotFoundException (at least Windows 8)

Hi,

just tried 1.0.3 to see if issue #10 disappeared. I hope this is not again some Windows issue which is harder to test for you, but for some reason a 'boot dev' for instance in hoplife throws an FileNotFoundException for pomegranate_init:

java.io.FileNotFoundException: Could not locate cemerick/pomegranate__init.class or cemerick/pomegranate.clj on classpath:
at clojure.lang.RT.load (RT.java:443)
clojure.lang.RT.load (RT.java:411)
clojure.core$load$fn__5018.invoke (core.clj:5530)
clojure.core$load.doInvoke (core.clj:5529)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invoke (core.clj:5336)
clojure.core$load_lib$fn__4967.invoke (core.clj:5375)
clojure.core$load_lib.doInvoke (core.clj:5374)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invoke (core.clj:619)
clojure.core$load_libs.doInvoke (core.clj:5413)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invoke (core.clj:619)
clojure.core$require.doInvoke (core.clj:5496)
clojure.lang.RestFn.invoke (RestFn.java:619)
tailrecursion.boot.core$eval40$loading__4910__auto____41.invoke (core.clj:10)
tailrecursion.boot.core$eval40.invoke (core.clj:10)
clojure.lang.Compiler.eval (Compiler.java:6619)
clojure.lang.Compiler.eval (Compiler.java:6608)
clojure.lang.Compiler.load (Compiler.java:7064)
clojure.lang.RT.loadResourceScript (RT.java:370)
clojure.lang.RT.loadResourceScript (RT.java:361)
clojure.lang.RT.load (RT.java:440)
clojure.lang.RT.load (RT.java:411)
clojure.core$load$fn__5018.invoke (core.clj:5530)
clojure.core$load.doInvoke (core.clj:5529)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invoke (core.clj:5336)
clojure.core$load_lib$fn__4967.invoke (core.clj:5375)
clojure.core$load_lib.doInvoke (core.clj:5374)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invoke (core.clj:619)
clojure.core$load_libs.doInvoke (core.clj:5413)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invoke (core.clj:619)
clojure.core$require.doInvoke (core.clj:5496)
clojure.lang.RestFn.invoke (RestFn.java:930)
tailrecursion.boot$eval3$loading__4910__auto____4.invoke (boot.clj:9)
tailrecursion.boot$eval3.invoke (boot.clj:9)
clojure.lang.Compiler.eval (Compiler.java:6619)
clojure.lang.Compiler.eval (Compiler.java:6608)
clojure.lang.Compiler.load (Compiler.java:7064)
clojure.lang.RT.loadResourceScript (RT.java:370)
clojure.lang.RT.loadResourceScript (RT.java:361)
clojure.lang.RT.load (RT.java:440)
clojure.lang.RT.load (RT.java:411)
clojure.core$load$fn__5018.invoke (core.clj:5530)
clojure.core$load.doInvoke (core.clj:5529)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$load_one.invoke (core.clj:5336)
clojure.core$load_lib$fn__4967.invoke (core.clj:5375)
clojure.core$load_lib.doInvoke (core.clj:5374)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invoke (core.clj:619)
clojure.core$load_libs.doInvoke (core.clj:5413)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invoke (core.clj:619)
clojure.core$require.doInvoke (core.clj:5496)
clojure.lang.RestFn.invoke (RestFn.java:408)
tailrecursion.boot.loader$_main.doInvoke (loader.clj:186)
clojure.lang.RestFn.applyTo (RestFn.java:137)
tailrecursion.boot.loader.main (:-1)

pomegranate 0.2.0 is in .m2, so maybe something during the classloader magic is not working properly. I thought that something from the classloader uberjar might be missing in the uberjar build for boot itself. Adding

[com.cemerick/pomegranate "0.2.0" :exclusions [org.clojure/clojure]]
[digest "1.4.3"]

to the boot dependencies helps. Adding pomegranate makes somewhat sense, then digest_init came up, so I added this one, even thought I didn't find the dependency to digest somewhere.

the #10 problem is still there, but Micha Niskin wrote this fix is supposed to be in dev branch, so maybe shouldn't have been fixed yet in master anyway.

boot outputs error message when artifact is successfully retrieved from clojars

this expected "error" should be handled internally to output a message such as

tailrecursion/boot.core/2.5.0/boot.core-2.5.0.jar retrieved from <repo>.

instead of

Error: Could not find artifact tailrecursion:boot.core:jar:2.5.0 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving tailrecursion/boot.core/2.5.0/boot.core-2.5.0.jar from http://clojars.org/repo/

as an inexperienced clojure developer nervously trying boot for the first time, i find errors emanating from this new build tool very scary.

Runtime Exception

Trying to do boot development for hoplon-demos and ran into this. I tried infinite-scroll and plotSVG.
I'm not sure why.

java.lang.RuntimeException: No reader function for tag tailrecursion.boot.core/version
                          ...                
     clojure.core/read-string  core.clj: 3497
    boot.util/read-string-all  util.clj:  134
              boot.main/-main  main.clj:  104
                          ...                
             boot.App.runBoot  App.java:  217
                boot.App.main  App.java:  309

I'm running Mac OSX Yosemite with:

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Unable to run `boot development` with boot 1.1.1 & boot2

Hi, I am trying to follow the given tutorial.
But when I do ./boot development with

  • 1.1.1 - boot: can't use boot.core version : need at least 2.0.0
  • 2.x - java.lang.RuntimeException: No reader function for tag tailrecursion.boot.core/version

I am running this on

  • Mac OSX 10.10.2
  • Leiningen 2.4.1 on Java 1.8.0_20 Java HotSpot(TM) 64-Bit Server VM

Any help would be much appreciated.

boot watch hoplon java.lang.RuntimeException

boot watch hoplon

java.lang.RuntimeException: Invalid token: Error:
at clojure.lang.Util.runtimeException (Util.java:219)
clojure.lang.LispReader.interpretToken (LispReader.java:326)
clojure.lang.LispReader.read (LispReader.java:211)
clojure.lang.LispReader.readDelimitedList (LispReader.java:1157)
clojure.lang.LispReader$ListReader.invoke (LispReader.java:982)
clojure.lang.LispReader.read (LispReader.java:185)
clojure.lang.RT.readString (RT.java:1738)
clojure.core$read_string.invoke (core.clj:3427)
tailrecursion.boot.loader$_main.doInvoke (loader.clj:169)
clojure.lang.RestFn.applyTo (RestFn.java:137)
tailrecursion.boot.loader.main (:-1)

build.boot
Error: Could not find artifact tailrecursion:ancient-clj:jar:0.1.7 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving org/apache/httpcomponents/httpclient/4.3.1/httpclient-4.3.1.jar from http://repo1.maven.org/maven2/
Error: Could not find artifact clj-http:clj-http:jar:0.7.8 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1.jar from http://repo1.maven.org/maven2/
Retrieving org/apache/httpcomponents/httpcore/4.3/httpcore-4.3.jar from http://repo1.maven.org/maven2/
Retrieving commons-io/commons-io/2.4/commons-io-2.4.jar from http://repo1.maven.org/maven2/
Error: Could not find artifact slingshot:slingshot:jar:0.10.3 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Error: Could not find artifact cheshire:cheshire:jar:5.2.0 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving com/fasterxml/jackson/core/jackson-core/2.2.1/jackson-core-2.2.1.jar from http://repo1.maven.org/maven2/
Retrieving com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.2.1/jackson-dataformat-smile-2.2.1.jar from http://repo1.maven.org/maven2/
Error: Could not find artifact tigris:tigris:jar:0.1.1 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving org/jsoup/jsoup/1.7.1/jsoup-1.7.1.jar from http://repo1.maven.org/maven2/
Retrieving org/clojure/tools.reader/0.8.1/tools.reader-0.8.1.jar from http://repo1.maven.org/maven2/
Retrieving commons-codec/commons-codec/1.8/commons-codec-1.8.jar from http://repo1.maven.org/maven2/
Error: Could not find artifact crouton:crouton:jar:0.1.1 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar from http://repo1.maven.org/maven2/
Retrieving tailrecursion/ancient-clj/0.1.7/ancient-clj-0.1.7.jar from http://clojars.org/repo/
Retrieving clj-http/clj-http/0.7.8/clj-http-0.7.8.jar from http://clojars.org/repo/
Retrieving cheshire/cheshire/5.2.0/cheshire-5.2.0.jar from http://clojars.org/repo/
Retrieving slingshot/slingshot/0.10.3/slingshot-0.10.3.jar from http://clojars.org/repo/
Retrieving tigris/tigris/0.1.1/tigris-0.1.1.jar from http://clojars.org/repo/
Retrieving crouton/crouton/0.1.1/crouton-0.1.1.jar from http://clojars.org/repo/

!/usr/bin/env boot

tailrecursion.boot.core/version "2.0.0"

(set-env!
:project
'my-project
:version
"0.1.0-SNAPSHOT"
:dependencies
[['tailrecursion/boot.core "2.0.0"]
['tailrecursion/boot.task "2.0.0"]
['tailrecursion/hoplon "5.0.0"]
['org.clojure/clojurescript "0.0-2156"]]
:src-paths
#{"src"}
:out-path
"resources/public")

(require
['tailrecursion.hoplon.boot :refer :all]
['tailrecursion.boot.task :refer :all])

boot.edn

{:project my-project
:version "0.1.0-SNAPSHOT"
:dependencies [[tailrecursion/boot.core "1.2.3"]
[tailrecursion/boot.task "1.0.2"]
[tailrecursion/hoplon "4.0.12"]
[org.clojure/clojurescript "0.0-2156"]]
:require-tasks #{[tailrecursion.boot.task :refer :all]
[tailrecursion.hoplon.boot :refer :all]}
:public "resources/public"
:src-paths #{"src"}}

Drop the extension constraint

Hi,

I love boot and have only one comment.

Would it be possible to drop the constraint on the script extension? Not sure about others but I am perfectly happy with the clj extension for Clojure programs/scripts.

Thanks

Dimitar

embedded tomcat fails to work with boot 2

to reproduce, create a project with the following build script:

(set-env!
  :src-paths    #{"src"}
  :tgt-path     "tgt"
  :dependencies '[[org.apache.tomcat.embed/tomcat-embed-jasper       "8.0.8"]
                  [org.apache.tomcat.embed/tomcat-embed-logging-juli "8.0.8"]
                  [org.apache.tomcat.embed/tomcat-embed-core         "8.0.8"] ])

(task-options!
  watch   [:quiet       false]
  speak   [:theme       "ordinance"]
  pom     [:project     'tailrecursion/boot.worker.tomcat
           :version      "0.1.0-SNAPSHOT"
           :description  "Boot worker to create a standalone Tomcat server."
           :url          "http://github.com/tailrecursion/boot.task.tomcat"
           :scm         {:url  "https://github.com/tailrecursion/boot.task.tomcat"}
           :license     {:name "Eclipse Public License"
                         :url  "http://www.eclipse.org/legal/epl-v10.html"} ])

then launch the repl:

boot.user=> (import 'org.apache.catalina.startup.Tomcat)
org.apache.catalina.startup.Tomcat
boot.user=> (require '[clojure.java.io :as io])
nil
boot.user=> (defn create [dir war port]
       #_=>   (.mkdirs (io/file dir "webapps"))
       #_=>   (doto (Tomcat.)
       #_=>     (.setBaseDir dir)
       #_=>     (.setPort port)
       #_=>     (.addWebapp "" war)
       #_=>     (.start) ))
#'boot.user/create
boot.user=> (def server (create "basedir" "my.war" 8888))
Sep 11, 2014 1:06:02 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8888"]
Sep 11, 2014 1:06:02 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 11, 2014 1:06:02 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Sep 11, 2014 1:06:02 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.8
Sep 11, 2014 1:06:03 AM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFO: No global web.xml found
Sep 11, 2014 1:06:03 AM org.apache.tomcat.util.digester.Digester endElement
SEVERE: End event threw exception
java.lang.ClassNotFoundException: org.apache.tomcat.util.descriptor.web.ServletDef
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1333)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1180)
    at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:355)
    at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:145)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:959)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1786)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2951)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:846)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:775)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:628)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1457)
    at org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml(WebXmlParser.java:120)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1104)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5069)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

boot repl crashed on exit

after hacking about in the repl a bit, i typed exit, then ^C, then ^C, then ^C:

boot.user=> exit
NoClassDefFoundError net/cgrand/parsley/lrplus/TableState$reify__2701
    net.cgrand.parsley.lrplus.TableState (lrplus.clj:23)
    clojure.lang.KeywordLookupSite.install (KeywordLookupSite.java:52)
    clojure.lang.KeywordLookupSite.fault (KeywordLookupSite.java:26)
    net.cgrand.parsley.lrplus/step1 (lrplus.clj:165)
    net.cgrand.parsley.lrplus/step (lrplus.clj:190)
    net.cgrand.parsley/stepper/self--3577 (parsley.clj:39)
    net.cgrand.parsley/stepper/self--3577 (parsley.clj:36)
    reply.parsing/reparse (parsing.clj:25)
    reply.parsing/parsed-forms (parsing.clj:62)
    reply.eval-modes.nrepl/run-repl (nrepl.clj:131)
    reply.eval-modes.nrepl/main (nrepl.clj:233)
    reply.main/launch-nrepl/fn--4269 (main.clj:78)
Caused by:
ClassNotFoundException net.cgrand.parsley.lrplus.TableState$reify__2701
    java.net.URLClassLoader$1.run (URLClassLoader.java:366)
    java.net.URLClassLoader$1.run (URLClassLoader.java:355)
    java.security.AccessController.doPrivileged (AccessController.java:-2)
    java.net.URLClassLoader.findClass (URLClassLoader.java:354)
    java.lang.ClassLoader.loadClass (ClassLoader.java:424)
    java.lang.ClassLoader.loadClass (ClassLoader.java:357)
    net.cgrand.parsley.lrplus.TableState (lrplus.clj:23)
    clojure.lang.KeywordLookupSite.install (KeywordLookupSite.java:52)
Bye for now!
Exception in thread "main" java.lang.NoClassDefFoundError: boot/main$_main$fn__809
    at boot.main$_main.invoke(main.clj:76)
    at clojure.lang.Var.invoke(Var.java:379)
    at org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke(ClojureRuntimeShimImpl.java:91)
    at org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke(ClojureRuntimeShimImpl.java:84)
    at boot.App.main(App.java:185)
Caused by: java.lang.ClassNotFoundException: boot.main$_main$fn__809
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 5 more
Exception in thread "SIGINT handler" java.lang.NoClassDefFoundError: reply/eval_modes/nrepl$handle_client_interruption_BANG_$fn__3843$fn__3844
    at reply.eval_modes.nrepl$handle_client_interruption_BANG_$fn__3843.invoke(nrepl.clj:37)
    at reply.eval_modes.nrepl.proxy$java.lang.Object$SignalHandler$d8c00ec7.handle(Unknown Source)
    at sun.misc.Signal$1.run(Signal.java:212)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassNotFoundException: reply.eval_modes.nrepl$handle_client_interruption_BANG_$fn__3843$fn__3844
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more
Exception in thread "SIGINT handler" java.lang.NoClassDefFoundError: reply/eval_modes/nrepl$handle_client_interruption_BANG_$fn__3843$fn__3844
    at reply.eval_modes.nrepl$handle_client_interruption_BANG_$fn__3843.invoke(nrepl.clj:37)
    at reply.eval_modes.nrepl.proxy$java.lang.Object$SignalHandler$d8c00ec7.handle(Unknown Source)
    at sun.misc.Signal$1.run(Signal.java:212)
    at java.lang.Thread.run(Thread.java:724)
Exception in thread "SIGINT handler" java.lang.NoClassDefFoundError: reply/eval_modes/nrepl$handle_client_interruption_BANG_$fn__3843$fn__3844
    at reply.eval_modes.nrepl$handle_client_interruption_BANG_$fn__3843.invoke(nrepl.clj:37)
    at reply.eval_modes.nrepl.proxy$java.lang.Object$SignalHandler$d8c00ec7.handle(Unknown Source)
    at sun.misc.Signal$1.run(Signal.java:212)
    at java.lang.Thread.run(Thread.java:724)
Exception in thread "SIGINT handler" java.lang.NoClassDefFoundError: reply/eval_modes/nrepl$handle_client_interruption_BANG_$fn__3843$fn__3844
    at reply.eval_modes.nrepl$handle_client_interruption_BANG_$fn__3843.invoke(nrepl.clj:37)
    at reply.eval_modes.nrepl.proxy$java.lang.Object$SignalHandler$d8c00ec7.handle(Unknown Source)
    at sun.misc.Signal$1.run(Signal.java:212)
    at java.lang.Thread.run(Thread.java:724)

Exception in thread "main" clojure.lang.ArityException

Hi,

I'm really looking forward to playing with Hoplon, but I'm having some trouble getting boot up and running. Trying to run 'boot' with the edn file in fixtures throws the following (from boot/test/fixtures):

Exception in thread "main" clojure.lang.ArityException: Wrong number of args (0) passed to: loader$-main

Trying to run 'boot' from a newly generated hoplon app folder throws the same error.
Trying to run 'boot help' to make sure I'm not missing any flags throws:

Exception in thread "main" clojure.lang.ArityException: Wrong number of args (1) passed to: loader$-main

And finally, trying to run 'boot watch hoplon' from a newly generated hoplon app folder throws:
Error: Could not find artifact tailrecursion:boot.core:jar:watch in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Error: Could not find artifact tailrecursion:boot.core:jar:watch in http://clojars.org/repo/ (http://clojars.org/repo/)

Is this just me? If so, any advice for what I'm missing here?

boot fails with datomic-free

If I have datomic-free (any version, it seems) as a dependency, I get this output when I run boot:

$ boot development
org.apache.commons.codec.binary.Base32

If I remove the datomic dependency, like so:

  :dependencies '[[tailrecursion/boot.task   "2.2.1"]
                  [tailrecursion/hoplon      "5.10.8"]
                  [org.clojure/clojurescript "0.0-2234"]
                  [tailrecursion/boot.ring   "0.2.1"]
                  #_[com.datomic/datomic-free "0.9.4815.12"]
                  [datascript "0.1.6"]
                  [org.clojure/algo.generic "0.1.2"]
                  [lein-light-nrepl "0.0.18"]
                  [org.clojure/tools.nrepl "0.2.3"]]

then it works fine:

$ boot development
Compiling Hoplon dependencies...
Jetty server stored in atom here: #'tailrecursion.boot.task.ring/server...
nrepl running on 56592
Compiling Hoplon pages...
• src/hl/testing_hoplon_castra/index.cljs.hl
Compiling ClojureScript...

.empty files interfere with compilation

I installed the latest boot using the Arch User Repository. I created a project directory using lein new hoplon foo in a Sparkleshare folder.

.
|-- assets
|   `-- css
|       `-- main.css
|-- build.boot
|-- .empty
|-- .gitignore
|-- README.md
`-- src
    `-- index.cljs.hl

Sparkleshare uses Git, which is why .empty files are created. After running boot development, this is what the directory looks like:

.
|-- assets
|   `-- css
|       `-- main.css
|-- .boot
|   |-- boot-classloader.jar
|   |-- .empty
|   `-- tmp
|       `-- 26666
|           |-- _COLON_tailrecursion.boot_SLASH_bootscript
|           |   `-- dir.tmp
|           |       `-- tailrecursion
|           |           `-- boot
|           |               `-- user.clj
|           |-- _COLON_tailrecursion.boot.task_SLASH_cljs_stage
|           |   `-- dir.tmp
|           |       |-- .empty
|           |       `-- main.js
|           |-- _COLON_tailrecursion.boot.task_SLASH_ext_out
|           |   `-- dir.tmp
|           |       |-- 0000000002_jquery.ext.js
|           |       `-- .empty
|           |-- _COLON_tailrecursion.boot.task_SLASH_flib_out
|           |   `-- dir.tmp
|           |       `-- .empty
|           |-- _COLON_tailrecursion.boot.task_SLASH_inc_out
|           |   `-- dir.tmp
|           |       |-- 0000000001_jquery.inc.js
|           |       `-- .empty
|           |-- _COLON_tailrecursion.boot.task_SLASH_lib_out
|           |   `-- dir.tmp
|           |       `-- .empty
|           |-- _COLON_tailrecursion.boot.task_SLASH_output_dir
|           |   `-- dir.tmp
|           |       |-- cljs
|           |       |   |-- core.cljs
|           |       |   |-- core.js
|           |       |   |-- reader.cljs
|           |       |   `-- reader.js
|           |       |-- clojure
|           |       |   |-- string.cljs
|           |       |   `-- string.js
|           |       |-- .empty
|           |       `-- tailrecursion
|           |           |-- hoplon
|           |           |   `-- app_pages
|           |           |       |-- .empty
|           |           |       `-- _index_DOT_html.js
|           |           |-- hoplon.cljs
|           |           |-- hoplon.js
|           |           |-- javelin.cljs
|           |           |-- javelin.js
|           |           |-- priority_map.cljs
|           |           `-- priority_map.js
|           |-- _COLON_tailrecursion.hoplon.boot_SLASH_cljs_out
|           |   `-- dir.tmp
|           |       `-- .empty
|           |-- _COLON_tailrecursion.hoplon.boot_SLASH_hoplon_src
|           |   `-- dir.tmp
|           |       `-- .empty
|           |-- _COLON_tailrecursion.hoplon.boot_SLASH_phantom_tmp1
|           |   `-- dir.tmp
|           |       `-- render.js
|           |-- _COLON_tailrecursion.hoplon.boot_SLASH_phantom_tmp2
|           |   `-- dir.tmp
|           |       `-- .empty
|           |-- _COLON_tailrecursion.hoplon.boot_SLASH_public_out
|           |   `-- dir.tmp
|           |       |-- .empty
|           |       `-- index.html
|           `-- .delete-me
|-- build.boot
|-- .empty
|-- .gitignore
|-- README.md
|-- resources
|   `-- public
|       |-- css
|       |   `-- main.css
|       |-- .empty
|       |-- index.html
|       `-- main.js
`-- src
    `-- index.cljs.hl

The compilation runs, but for some reason the contents of the .empty files is injected at the top of the main.js file:

$ head -1 resources/public/main.js 
I'm a folder!

Manually deleting the .empty files fixes the issue, but its unclear why they interfere with the working of boot in the first place.

boot pollutes non-project directories with .boot dirs

this is obviously a bug because these annoy me when i look at them.

discussed with micha. smoking weed might be a fix of sorts, but not a viable solution. subsequently suggested approach involves having "-main use a java tempfile instead of a boot tempfile so that boot dirs won't be created unless a task makes tempfile".

Mess with ANSI-enhanced console output on Windows

ANSI-colored output makes certain text unreadable, or even disrupts completely proper printout on Windows console - eg. when there is period since last action printed each second - ANSI codes disrupts printing over same piece of text ,and instead fills complete console with formatted period text over time.

Here's an example of output:

Compiling Hoplon pages...
Ľ src\index.cljs.hl
Compiling ClojureScript...
←[34m? Elapsed time: 13,318 sec Ť←[33m 00:00:00 00:00:13 00:00:13 00:00:14 00:00:14 00:00:1 00:00:16 00:00:16 00:00:16 00:00:17 00:00:17 00:00:17 00:00:17 00:00:18 00:00:18 00:00:18 0 00:00:20 00:00:20 00:00:20 00:00:21 00:00:21 00:00:21 00:00:21 00:00:22 00:00:22 00:00:22 0

So the solution would be to avoid using ANSI codes altogether, or to differentiate output based on OS..

Browserified npm modules

There are lot of JS libraries that are written to only work with browserify (such as snabbdom). There is a CDN called wzrd.in for browserify modules, but it's poorly implemented. I've barely used it and I've had multiple issues with it. It doesn't support peer dependencies (which motor/cycle needs) or choosing the entry point (which snabbdom needs). It also doesn't bundle the way browserify does, it just concatenates multiple standalone bundles, which can result in unusual behavior, and the author made it clear that he doesn't want to fix it.

I propose having a browserify boot task that can make the process of including those libraries simpler.

Node, npm and browserify would be installed on the CLJSJS end. Then the task would just install the package and run the globally installed browserify task with the given params, so it shouldn't be too hard to implement.

The task can take in the browserify optional and required parameters: entry points, the UMD module name, and output file (see usage).

For example:

(browserify :package "snabbdom" :entry "modules/class.js" :standalone "snabbdom_class" :out "snabbdom-class.js")

Which would do this under the hood:

$ npm install snabbdom
$ browserify node_modules/snabbdom/modules/class.js --standalone snabbdom_class -o snabbdom-class.js

Then it would be easy to include browserify modules like snabbdom, by just running the browserify task for all of the entry points/submodules it provides (class, props, style, events, and h), concatenating and miniftying it, and the you're done.

watch slow for add-sync! assets

Using a similar build.boot as in demos/hoplife, I have the browser auto-refreshing when I change *.cljs.hl files.

(set-env!
 :dependencies (read-string (slurp "deps.edn"))
 :src-paths    #{"src"}
 :out-path     "resources/public")

(add-sync! (get-env :out-path) #{"resources/assets"})

(deftask development
  "Build for development"
  [& args]
  (comp
   (watch)
   #_(hear)
   (hoplon {:prerender false})
   (dev-server)))

When I make changes to resources/assets/main.css it takes between 0.5 and 3 seconds for the copying of files to the out-path and refreshing of the browser to happen. This is just too long comparing with a normal set up with for instance gulp. Is this the expected time to wait? Any way to make it faster?

EDIT:
I've investigated it further and the problem seems to be with chrome. Firefox refreshes the style instantaneously but Chrome does not refresh it at all. Chrome only refresh the style on mouse enter. That is, if I hover my mouse over the page in the chrome window, then (and only then) it refreshes... Known issue? (Tested with Chrome 35 and 37)

Proxy issues?

When I try to run the hoplon examples with boot, it just sits there for a very long time, which, after the subsequent stack trace, looks to be 4 retry timeouts.

I am behind a corporate proxy, I have environment settings for proxies that Leiningen seems to understand but boot does not.

It would be nice if:

  1. boot told me that it was attempting to fetch dependencies.
  2. told me the first time it timed out reaching the interwebs.
  3. understood the http(s)_proxy env var.

On a side note, I'm sure you have some very good reasons for why boot isn't just a plugin for leiningen.. care to share what those are?

boot fails with itsy

When I add [itsy "0.1.1"] to the dependencies in the build.boot, it fails to start with boot development.

Can you reproduce this event?

persist nrepl state to .boot instead of the project root

the project root should not be a dumping ground for any task's persistence, to include nrepl.

the only drawback i can think of is lein nrepl -> boot nrepl history sharing, but this seems like it will be an extremely rare and unnecessary case once boot 2 is up to speed; users will configure their project for one build tool or the other.

Can't build and install v 1.0.3

The build and install instructions using make for v 1.0.2 work for me (Mac OS X v. 10.9), but they don't work for the latest version of boot v 1.0.3

boot :strap output polluted with Maven noise

alan@cheezit:~$ boot :strap > new
alan@cheezit:~$ cat new 
Error: Could not find artifact tailrecursion:ancient-clj:jar:0.1.7 in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Retrieving tailrecursion/ancient-clj/0.1.7/ancient-clj-0.1.7.jar from http://clojars.org/repo/
#!/usr/bin/env boot

#tailrecursion.boot.core/version "2.0.0"

AssertionError: Configuration must be a map

Trying to install boot from source, I the following error running ./boot after install with make boot.

Exception in thread "main" java.lang.AssertionError: Assert failed: boot.edn (Configuration must be a map) 
(map? p1__403#)
    at tailrecursion.boot.loader$read_config$asrt_m__405.invoke(loader.clj:43)
    at tailrecursion.boot.loader$read_config.invoke(loader.clj:44)
    at tailrecursion.boot.loader$_main.doInvoke(loader.clj:100)
    at clojure.lang.RestFn.invoke(RestFn.java:397)
    at clojure.lang.AFn.applyToHelper(AFn.java:159)
    at clojure.lang.RestFn.applyTo(RestFn.java:132)
    at tailrecursion.boot.loader.main(Unknown Source)`

Integrate into Leiningen

Is it possible to integrate boot as a whole into Lein? 😄
Maybe it can be a implemented as Lein plugin too.

I'm just asking this as the Clojure community already has a great build and dependency tool - Leiningen. Boot does add interesting functionality, such as :require-tasks and use of EDN format. Perhaps it can be made into a plugin, so that users don't have to use two build tools when working with projects that use boot.

handle authentication exception when connection to private repo fails

SEVERE: Request Failed.
org.jets3t.service.S3ServiceException: S3 Error Message. GET '/snapshot%2Ftailrecursion%2Fclojure-adapter-servlet%2F0.1.0-SNAPSHOT%2Fmaven-metadata.xml' on Host '.repository.s3.amazonaws.com' @ 'Fri, 03 Oct 2014 15:30:57 GMT' -- ResponseCode: 403, ResponseStatus: Forbidden, XML Error Message: AccessDeniedAccess DeniedE7EDF9C66A8B855DU40MhHaosnmvEeU0X8l6wOpNbNY75pcRHaiN6ELQaREnknbQi5bKkRTSdWRPugIK
at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:441)
at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestGet(RestS3Service.java:876)
at org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectImpl(RestS3Service.java:1712)
at org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectImpl(RestS3Service.java:1655)
at org.jets3t.service.S3Service.getObject(S3Service.java:2215)
at org.jets3t.service.S3Service.getObject(S3Service.java:1424)
at org.springframework.aws.maven.SimpleStorageServiceWagon.getResource(SimpleStorageServiceWagon.java:93)
at org.springframework.aws.maven.AbstractWagon.get(AbstractWagon.java:184)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:601)
at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:60)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

Boot is throwing `ClassNotFoundException`s

I'm trying to use boot, and have used the boot.edn file from the Hoplon docs at http://hoplon.io/#/getting-started/.

Whenever I run boot, I get this stacktrace:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at clojure.lang.RT.loadClassForName(RT.java:2098)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at tailrecursion.boot$loading__4910__auto__.invoke(boot.clj:9)
    at tailrecursion.boot__init.load(Unknown Source)
    at tailrecursion.boot__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:249)
    at clojure.lang.RT.loadClassForName(RT.java:2098)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at tailrecursion.boot.loader$_main.doInvoke(loader.clj:65)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at tailrecursion.boot.loader.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: java.nio.file.FileSystems
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:171)
    at tailrecursion.boot.gitignore$loading__4910__auto__.invoke(gitignore.clj:9)
    at tailrecursion.boot.gitignore__init.load(Unknown Source)
    at tailrecursion.boot.gitignore__init.<clinit>(Unknown Source)
    ... 42 more

Failure to make

sudo make boot is failing with an error after downloading libraries

acron@laptop:$ sudo make boot
[sudo] password for acron: 
rm -f boot
lein clean
WARNING: You're currently running as root; probably by accident.
Press control-C to abort or Enter to continue as root.
Set LEIN_ROOT to disable this warning.

lein uberjar
WARNING: You're currently running as root; probably by accident.
Press control-C to abort or Enter to continue as root.
Set LEIN_ROOT to disable this warning.

Copying 30 files to /media/acron/projects/Libraries/boot/lib
Compiling tailrecursion.boot.loader
Compiling tailrecursion.boot.loader
Compiling tailrecursion.boot.semver
Compilation succeeded.
Created /media/acron/projects/Libraries/boot/boot-0.3.0.jar
Including boot-0.3.0.jar
Including aether-api-1.13.1.jar
Including aether-connector-file-1.13.1.jar
Including aether-connector-wagon-1.13.1.jar
Including aether-impl-1.13.1.jar
Including aether-spi-1.13.1.jar
Including aether-util-1.13.1.jar
Including clojure-1.5.1.jar
Including commons-codec-1.4.jar
Including commons-io-2.0.1.jar
Including commons-logging-1.1.1.jar
Including digest-1.4.3.jar
Including dynapath-0.2.3.jar
Including httpclient-4.1.2.jar
Including httpcore-4.1.2.jar
Including jsoup-1.6.1.jar
Including maven-aether-provider-3.0.4.jar
Including maven-model-3.0.4.jar
Including maven-model-builder-3.0.4.jar
Including maven-repository-metadata-3.0.4.jar
Including plexus-classworlds-2.4.jar
Including plexus-component-annotations-1.5.5.jar
Including plexus-interpolation-1.14.jar
Including plexus-utils-2.0.7.jar
Including pomegranate-0.2.0.jar
Including sisu-guice-3.0.3-no_aop.jar
Including sisu-inject-bean-2.2.3.jar
Including sisu-inject-plexus-2.2.3.jar
Including wagon-http-2.2.jar
Including wagon-http-shared4-2.2.jar
Including wagon-provider-api-2.2.jar
Created /media/acron/projects/Libraries/boot/boot-0.3.0-standalone.jar
echo '#!/usr/bin/env bash' > boot
echo 'java $JVM_OPTS -jar $0 "$@"' >> boot
echo 'exit' >> boot
cat target/boot*-standalone.jar >> boot
cat: target/boot*-standalone.jar: No such file or directory
make: *** [boot] Error 1

Java version:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

boot.core/version "2.3.1" causes error if boot.notify is missing in dependencies

Just stumbled over another problem:

I suddenly got

$ boot dev
org/codehaus/plexus/util/xml/pull/XmlSerializer
? Caused by: org.codehaus.plexus.util.xml.pull.XmlSerializer

at the cygwin prompt, upon starting 'boot dev' on my project. Hoplife, counter et.al. worked. Finally I found that I had to add

[tailrecursion/boot.notify "2.0.0-snapshot"]

to my dependencies (which wasn't there yet as my initial template was from times before this has been added to every example).

Stack Overflow when using pprint

There is no error when the call to pprint is removed.

#!/usr/bin/env boot
#tailrecursion.boot.core/version "2.5.1"

(require '[clojure.pprint :refer [pprint]])

(defn -main [& args]
  (pprint {:a 1 :b 2 :c 3})
  (System/exit 0))
boot-pprint:$ boot :v
{:cclojure.lang.Compiler$CompilerException: java.lang.StackOverflowError [...]
 at clojure.lang.Compiler.load (Compiler.java:7142)
    clojure.lang.Compiler.loadFile (Compiler.java:7086)
    clojure.lang.RT$3.invoke (RT.java:318)
    tailrecursion.boot$_main.doInvoke (boot.clj:117)
    clojure.lang.RestFn.invoke (RestFn.java:467)
    clojure.lang.Var.invoke (Var.java:394)
    clojure.lang.AFn.applyToHelper (AFn.java:165)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invoke (core.clj:630)
    tailrecursion.boot.loader$_main.doInvoke (loader.clj:190)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    tailrecursion.boot.loader.main (:-1)
Caused by: java.lang.StackOverflowError: null
 at clojure.lang.AFn.applyToHelper (AFn.java:148)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.Ref.alter (Ref.java:171)
    clojure.core$alter.doInvoke (core.clj:2316)
    clojure.lang.RestFn.invoke (RestFn.java:464)
    clojure.pprint$set_field.invoke (column_writer.clj:29)
    clojure.pprint$column_writer$fn__7421$fn__7425.invoke (column_writer.clj:73)
    clojure.lang.AFn.call (AFn.java:18)
    clojure.lang.LockingTransaction.runInTransaction (LockingTransaction.java:235)
    clojure.pprint$column_writer$fn__7421.invoke (column_writer.clj:72)
    clojure.pprint.proxy$java.io.Writer$IDeref$e595a7c1.write (:-1)

boot doesn't pass additional authenticated repositories through to pomegrante

In order to use the castra dev ring server with Datomic pro easily, boot needs to allow authenticated third party repositories.
In leiningen this config entry adds the Datomic repository:

:repositories #{{:url "https://my.datomic.com/repo"
:username "[email protected]"
:password "datomic-password"}}

If I find the time I'll add it myself and send a pull request, but maybe for you guys this is just a matter of minutes. :) ?

If I remember correctly, right now repositories must be a string, but a map for the above case should be allowed.

under Windows (8 at least) SNAPSHOT dependencies can't be resolved

I guess this is specific to Windows and I hope not just my machine. But when I use 'boot' SNAPSHOT dependencies can't be resolved. E.g. starting hoplife with 'boot dev' shows the following error output:

$ boot dev
Error: Could not find artifact tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Error: Could not find artifact tailrecursion:boot.ring:jar:0.1.0-SNAPSHOT in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
Error: Could not find artifact tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT in http://clojars.org/repo/ (http://clojars.org/repo/)
Error: Could not find artifact tailrecursion:boot.ring:jar:0.1.0-SNAPSHOT in http://clojars.org/repo/ (http://clojars.org/repo/)
The following artifacts could not be resolved: tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT, tailrecursion:boot.ring:jar:0.1.0-SNAPSHOT: Could not find artifact tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
? Caused by: The following artifacts could not be resolved: tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT, tailrecursion:boot.ring:jar:0.1.0-SNAPSHOT: Could not find artifact tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)
? Caused by: Could not find artifact tailrecursion:boot.notify:jar:2.0.0-SNAPSHOT in http://repo1.maven.org/maven2/ (http://repo1.maven.org/maven2/)

This is true for cygwin and also normal commandline use (directly via boot.jar).
I'm so far quite convinced that it's the SNAPSHOT suffix, as for instance adding

[lein-pprint "1.1.1"]

or

[lein-pprint "1.1.2-SNAPSHOT"]

to the deps file cause the dependency resolution to succeed or fail. This is true for other examples as well, if there are SNAPSHOT and regular releases on clojars.

I tried to check the boot and pomegranate code, but at least couldn't quickly find the place where things go wrong. Maybe one of you guys can help faster.

2.0.0 Punch List

Repository

  • wagons – s3 private wagon, etc. (need a list of these)

Dependencies

  • pedantic – analyze dependency conflicts
  • ancient – find newer versions / update dependencies

Build

  • java – compile java source
  • aot – compile clojure source
  • cljs – compile clojurescript source
  • hoplon – compile hoplon source

Package

  • web – create web.xml file for war package
  • war – create war file with web.xml and servlet implementation class
  • docker – create docker package thinger?

Deploy

  • beanstalk – deploy to amazon elastic beanstalk
  • s3/cloudfront – deploy static webapp to amazon s3
  • heroku – deploy and run on heroku

Dev

  • tomcat – local apache tomcat server
  • transactor – local datomic transactor

Project

  • new – create project from template
  • test – run tests

Readme "Hello World" example hangs

Following the instructions in the readme, running build.boot for the "Hello World" example hangs. The first time through it downloads tailrecursion.boot.core/version "2.5.0" and then hangs.

This is on OS X, java 1.7.0 55.

Problem with loader/add-dependencies! on Windows in boot-1.0.3

When following the getting started guide for setting up boot-1.0.3 on Windows, I get the following error when passing the :strap argument in an empty directory. The .boot/boot-classloader.jar file is created, but dependency resolution soon fails:

java.io.FileNotFoundException: Could not locate ancient_clj/core__init.class or ancient_clj/core.clj on classpath:    
 at clojure.lang.RT.load (RT.java:443)                                                                                
    clojure.lang.RT.load (RT.java:411)                                                                                
    clojure.core$load$fn__5018.invoke (core.clj:5530)                                                                 
    clojure.core$load.doInvoke (core.clj:5529)                                                                        
    clojure.lang.RestFn.invoke (RestFn.java:408)                                                                      
    clojure.core$load_one.invoke (core.clj:5336)                                                                      
    clojure.core$load_lib$fn__4967.invoke (core.clj:5375)                                                             
    clojure.core$load_lib.doInvoke (core.clj:5374)                                                                    
    clojure.lang.RestFn.applyTo (RestFn.java:142)                                                                     
    clojure.core$apply.invoke (core.clj:619)                                                                          
    clojure.core$load_libs.doInvoke (core.clj:5413)                                                                   
    clojure.lang.RestFn.applyTo (RestFn.java:137)                                                                     
    clojure.core$apply.invoke (core.clj:619)                                                                          
    clojure.core$require.doInvoke (core.clj:5496)                                                                     
    clojure.lang.RestFn.invoke (RestFn.java:408)                                                                      
    tailrecursion.boot.strap$latest_version.invoke (strap.clj:14)                                                     
    tailrecursion.boot.strap$strap.invoke (strap.clj:22)                                                              
    tailrecursion.boot.loader$_main.doInvoke (loader.clj:175)                                                         
    clojure.lang.RestFn.applyTo (RestFn.java:137)                                                                     
    tailrecursion.boot.loader.main (:-1)                                                                             

Hacking around in the boot source code, I found that the URL paths for dependencies should be prefixed with file:/// (triple-slashed), not file:// (double-slashed). The URI class seems stricter. If you try to load the latter into a new URI instance, it will fail to parse it.

The java.net.* API seems to suggest constructing a URI, then calling .toURLI() on it, then calling .getFile().

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.