yes, it's working now, thanks 2014-11-06 0:28 GMT+01:00 Alan Dipert <a...@dipert.org>:
> Hi Laurent, > The boot-cljs-example has started to move ahead of the blog post, and > includes an optional 'serve' task. > > There was a bug in the boot-cljs task that was deleting index.html > erroneously; I pushed a new version and updated boot-cljs-example. > > If you `boot -u` to update boot (which was also updated today) and fetch > latest from boot-cljs-example, there's a decent chance it will actually > work :-) > Alan > > > On Wednesday, November 5, 2014 5:07:04 PM UTC-5, Laurent PETIT wrote: >> >> Alternatively, if I follow instructions from https://github.com/ >> adzerk/boot-cljs-example , >> >> then there's no mention of target/index.html, so I directly jump to >> http://localhost:3000/ but I get an HTTP 404, so same problem there I >> think. >> >> command is different than from the blog post: >> >> $ boot serve -d target/ watch speak cljs-repl cljs -usO none reload >> Retrieving ring-jetty-adapter-1.3.1.jar from http://clojars.org/repo/ >> Retrieving ring-core-1.3.1.jar from http://clojars.org/repo/ >> Retrieving clj-time-0.6.0.jar from http://clojars.org/repo/ >> Retrieving crypto-random-1.2.0.jar from http://clojars.org/repo/ >> Retrieving crypto-equality-1.0.0.jar from http://clojars.org/repo/ >> Retrieving ring-servlet-1.3.1.jar from http://clojars.org/repo/ >> Retrieving compojure-1.2.1.jar from http://clojars.org/repo/ >> Retrieving clout-2.0.0.jar from http://clojars.org/repo/ >> Retrieving instaparse-1.3.4.jar from http://clojars.org/repo/ >> Retrieving medley-0.5.3.jar from http://clojars.org/repo/ >> Retrieving ring-codec-1.0.0.jar from http://clojars.org/repo/ >> Retrieving tools.reader-0.8.1.jar from http://repo1.maven.org/maven2/ >> Retrieving commons-fileupload-1.3.jar from http://repo1.maven.org/maven2/ >> Retrieving jetty-server-7.6.13.v20130916.jar from >> http://repo1.maven.org/maven2/ >> Retrieving javax.servlet-2.5.0.v201103041518.jar from >> http://repo1.maven.org/maven2/ >> Retrieving joda-time-2.2.jar from http://repo1.maven.org/maven2/ >> Retrieving jetty-continuation-7.6.13.v20130916.jar from >> http://repo1.maven.org/maven2/ >> Retrieving jetty-http-7.6.13.v20130916.jar from >> http://repo1.maven.org/maven2/ >> Retrieving jetty-io-7.6.13.v20130916.jar from >> http://repo1.maven.org/maven2/ >> Retrieving jetty-util-7.6.13.v20130916.jar from >> http://repo1.maven.org/maven2/ >> Retrieving tools.macro-0.1.5.jar from http://repo1.maven.org/maven2/ >> Retrieving commons-codec-1.6.jar from http://repo1.maven.org/maven2/ >> << started reload server on ws://localhost:8090 >> >> 2014-11-05 22:59:51.865:INFO:oejs.Server:jetty-7.6.13.v20130916 >> 2014-11-05 22:59:51.928:INFO:oejs.AbstractConnector:Started >> SelectChannelConnector@0.0.0.0:3000 >> << started web server on http://localhost:3000 (serving: target/) >> >> Starting file watcher (CTRL-C to quit)... >> >> nREPL server listening: 0.0.0.0:50475 >> Compiling main.js... >> Adding <script> tags to html... >> Elapsed time: 21,374 sec >> >> >> 2014-11-05 22:42 GMT+01:00 Laurent PETIT <laurent.pe...@gmail.com>: >> >>> Thanks Micha for the detailed explanation ! >>> >>> I started following the cljs example, but am stuck right after having >>> launched the first boot command: I don't see file target/index.html >>> >>> The command and output look like this (launched from the >>> boot-cljs-example folder): >>> >>> $ boot watch speak cljs-repl cljs -usO none reload >>> Retrieving tagsoup-1.2.1.jar from http://clojars.org/repo/ >>> Retrieving enlive-1.1.5.jar from http://clojars.org/repo/ >>> Retrieving jsoup-1.7.2.jar from http://repo1.maven.org/maven2/ >>> Retrieving args4j-2.0.16.jar from http://repo1.maven.org/maven2/ >>> Retrieving protobuf-java-2.4.1.jar from http://repo1.maven.org/maven2/ >>> Retrieving clojurescript-0.0-2080.jar from >>> http://repo1.maven.org/maven2/ >>> Retrieving closure-compiler-v20130603.jar from >>> http://repo1.maven.org/maven2/ >>> Retrieving google-closure-library-0.0-20130212-95c19e7f0f5f.jar from >>> http://repo1.maven.org/maven2/ >>> Retrieving google-closure-library-third-party-0.0-20130212-95c19e7f0f5f.jar >>> from http://repo1.maven.org/maven2/ >>> Retrieving tools.reader-0.8.0.jar from http://repo1.maven.org/maven2/ >>> << started reload server on ws://localhost:8090 >> >>> Starting file watcher (CTRL-C to quit)... >>> >>> nREPL server listening: 0.0.0.0:50352 >>> Compiling main.js... >>> Adding <script> tags to html... >>> Elapsed time: 21,489 sec >>> >>> >>> >>> 2014-11-05 1:59 GMT+01:00 Micha Niskin <micha.nis...@gmail.com>: >>> >>>> Hi, sorry for the late reply! Boot pretty much takes care of that part >>>> for you, as long as you follow a few basic rules (I will be adding a “how >>>> to be a good citizen of the boot-o-sphere” section to the wiki on github >>>> soon): >>>> >>>> 1. >>>> >>>> Tasks don’t fish around in the filesystem directly to find things >>>> to compile or otherwise operate on. Instead, tasks use functions in >>>> boot.core that return immutable sets of java.io.File objects from >>>> boot-managed temp directories. These functions present a sort of overlay >>>> filesystem with files in anonymous temporary directories. This allows >>>> tasks >>>> to be completely decoupled from the filesystem layout. Additionally, >>>> this >>>> makes it possible for boot to shuffle files around and use hardlinks and >>>> such to craft the classpath and the build fileset in different ways >>>> during >>>> the build cycle. In this way boot can emulate immutability and lexical >>>> and >>>> dynamic scope for things on the filesystem. >>>> 2. >>>> >>>> Tasks don’t create files in the filesystem directly. Instead, tasks >>>> use functions in boot.core that create various flavors of >>>> anonymous, boot-managed temp directories (the ones mentioned in item 1, >>>> in >>>> fact). An important concept in boot is that the output of any task is >>>> part >>>> of the input for the next task in the pipeline. This is the property >>>> that >>>> supports the amazing composition of tasks that is possible with boot, >>>> without needing to generate miles of boilerplate configuration. >>>> 3. >>>> >>>> The boot-managed temp directory lifespan is one build session only. >>>> This means one JVM, basically. The temp directories are stored in the >>>> .boot directory in the project root. The next time you run boot it >>>> cleans out any old temp dirs in there (they are not cleaned up on exit >>>> because you may want to look in them if something goes wrong with the >>>> build; stack traces could be referencing source files in these temp >>>> dirs). >>>> 4. >>>> >>>> The only directories that boot knows about that are not temp dirs >>>> it created are the ones you specify in the build.boot file via >>>> set-env! (i.e. the :src-paths, :rsc-paths, and :tgt-path keys). The >>>> source and resource paths are not molested by boot in any way (no files >>>> in >>>> there are ever deleted, moved, modified etc.). The target directory, on >>>> the >>>> other hand, is completely owned by boot—boot will overwrite files or >>>> delete >>>> them in there as it sees fit. Boot ensures that the target directory >>>> always >>>> contains only those files the build process emits for that specific run, >>>> and doesn’t allow any stale files to hang out in there. >>>> >>>> What this all means is that there is something of a tradeoff: boot >>>> never persists files that could become stale, so there is no need for a >>>> clean task, but on the other hand some things then need to be rebuilt >>>> instead of just hanging out in the target dir. We think this is an okay >>>> tradeoff because boot’s composition capabilities make it really easy to >>>> incrementally run any build process at all using the built-in watch >>>> task. In return you get 100% deterministic builds. >>>> >>>> We’ll be talking about the details of the whole temporary filesystem >>>> machinery soon. Have fun playing with boot! >>>> >>>> >>>> -- >>>> Micha Niskin >>>> >>>> On Mon, Nov 3, 2014 at 5:45 PM, Laurent PETIT <laurent.pe...@gmail.com> >>>> wrote: >>>> >>>>> And more seriously, I remember reading that you put an emphasis on >>>>> removing the need to use a clean task. >>>>> If I'm right, then I'd be interested in knowing how one is encouraged >>>>> / helped to pursue this good property in its own tasks ? >>>>> >>>>> Le lundi 3 novembre 2014, Laurent PETIT <laurent.pe...@gmail.com> a >>>>> écrit : >>>>> >>>>> Tongue in cheek question: if Leiningen were the maven of clojure, >>>>>> would you say boot2 is gradle ? :-) >>>>>> >>>>>> Le lundi 3 novembre 2014, Micha Niskin <micha.nis...@gmail.com> a >>>>>> écrit : >>>>>> >>>>>>> Hi! >>>>>>> >>>>>>> Boot (http://github.com/boot-clj/boot) is a build tool for Clojure. >>>>>>> We've pulled together lessons learned from a year or so using boot v1 in >>>>>>> production and are now getting ready to release v2. To show what boot >>>>>>> can >>>>>>> do we present a very streamlined and awesome boot-based ClojureScript >>>>>>> development workflow (http://adzerk.com/blog/2014/ >>>>>>> 11/clojurescript-builds-rebooted/). >>>>>>> >>>>>>> Try it out, maybe you'll like it! We're hoping to get some feedback >>>>>>> before committing to a stable release, so please if you have any >>>>>>> comments >>>>>>> or questions we'd be happy to hear them. Have fun! >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Clojure" group. >>>>>>> To post to this group, send email to clojure@googlegroups.com >>>>>>> Note that posts from new members are moderated - please be patient >>>>>>> with your first post. >>>>>>> To unsubscribe from this group, send email to >>>>>>> clojure+unsubscr...@googlegroups.com >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/clojure?hl=en >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Clojure" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to clojure+unsubscr...@googlegroups.com. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Laurent Petit >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Laurent Petit >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To post to this group, send email to clojure@googlegroups.com >>>>> Note that posts from new members are moderated - please be patient >>>>> with your first post. >>>>> To unsubscribe from this group, send email to >>>>> clojure+unsubscr...@googlegroups.com >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/clojure?hl=en >>>>> --- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "Clojure" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>> topic/clojure/YAckwMSfZkY/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> clojure+unsubscr...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clojure@googlegroups.com >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+unsubscr...@googlegroups.com >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Laurent Petit >>> >> >> >> >> -- >> Laurent Petit >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Laurent Petit -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.