It won&#39;t play worse with cabal-dev than the previous :)<div><br></div><div>This is all very beta at the moment, but we will definitely figure out how to support cabal-dev eventually.<br><br><div class="gmail_quote">On Mon, Apr 18, 2011 at 5:00 PM, Mark Bradley <span dir="ltr">&lt;<a href="mailto:barkmadley@gmail.com">barkmadley@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Tue, Apr 19, 2011 at 12:56 AM, Michael Snoyman &lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt; wrote:<br>


&gt; Hi all,<br>
&gt; Just wanted to let you know: there&#39;s been a minor delay in the 0.8 release<br>
&gt; of Yesod, all for good reasons. Rick Richardson and Greg Weber have put in a<br>
&gt; lot of work on the MongoDB backend for Persistent, and now we&#39;ll be able to<br>
&gt; include it (as an alpha) with this release. Congrats to them, this is very<br>
&gt; cool.<br>
&gt; The second reason is that I decided to be naughty and completely disregard<br>
&gt; my feature freeze. As we&#39;ve discussed recently, there are some issues with<br>
&gt; our hint-based wai-handler-devel approach. Without going into too many<br>
&gt; details (both to keep from boring you, and because I have very little time<br>
&gt; before Passover starts), I&#39;ve made the following modifications to the yesod<br>
&gt; scaffolding tool:<br>
&gt; * Running &quot;yesod&quot; by itself gives you a list of commands.<br>
&gt; * Running &quot;yesod init&quot; gives the behavior previously held by &quot;yesod&quot;, i.e.<br>
&gt; generate a scaffolded site.<br>
&gt; * Running &quot;yesod build&quot; is *almost* identical to &quot;cabal build&quot;, but with one<br>
&gt; change: it performs a dependency analysis of external files included by<br>
&gt; Template Haskell (Hamlet templates, routes, entity definitions) and changes<br>
&gt; modification times as needed to force cabal to build modules. For example,<br>
&gt; if &quot;Handler/Root.hs&quot; references &quot;hamlet/root.hamlet&quot;, and the latter has a<br>
&gt; later modification time than the former, the former&#39;s modification times<br>
&gt; will be changed to match that of the latter.<br>
&gt; * Running &quot;yesod devel&quot; runs devel server. Instead of using hint, the devel<br>
&gt; server now uses cabal for the compiling (passing in a special &quot;devel&quot; flag)<br>
&gt; and direct-plugins to load up the compiled code.<br>
&gt; In order to make this work, there are a few necessary modifications to an<br>
&gt; individual site:<br>
&gt; * The &quot;Controller&quot; module now needs to have a &quot;withDevelApp&quot; function, which<br>
&gt; must be of type &quot;Dynamic&quot;. The internal type of this must be &quot;(Application<br>
&gt; -&gt; IO ()) -&gt; IO ()&quot;.<br>
&gt; * The cabal file must provide a library section. The library should only be<br>
&gt; built when the devel flag is passed in, it should be compiled with &quot;-O0&quot; (to<br>
&gt; speed up compiling) and executables are disabled (also for speed).<br>
&gt; * direct-plugins can only load up installed packages, so &quot;yesod devel&quot; will<br>
&gt; actually install your package.<br>
<br>
</div></div>Does this play nicely with cabal-dev?<br>
<div class="im"><br>
&gt; * The scaffolded site has already been updated to work properly with &quot;yesod<br>
&gt; devel&quot;, so you can base your modifications on that.<br>
&gt; The only bug I&#39;m aware of right now is that if a file disappears at the<br>
&gt; wrong time then the call to get the modification time will fail. This may<br>
&gt; seem far fetched, but it happened to me when saving a file with vim.<br>
&gt; Shouldn&#39;t be too hard to fix, I just don&#39;t have time right now.<br>
&gt; The code&#39;s on Yackage. If anyone wants to give it a shot, feel free.<br>
&gt; Michael<br>
</div><div class="im">&gt; _______________________________________________<br>
&gt; web-devel mailing list<br>
&gt; <a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div><font color="#888888">--<br>
-barkmadley<br>
sent from an internet enabled device<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
web-devel mailing list<br>
<a href="mailto:web-devel@haskell.org">web-devel@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
</div></div></blockquote></div><br></div>