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.

Reply via email to