[web-devel] Kick-off discussion: Yesod 0.9

Michael Snoyman michael at snoyman.com
Mon May 30 22:41:47 CEST 2011

Hi all,

It's been about a month since the 0.8 release of Yesod. In the release
announcement[1], we laid out some goals. Let's take a chance to
analyze where we're at:

* Documentation: Still improving as always. In particular, the new
Yesod site is making it much easier for me to write new content (I
have a few things on my local system that can finally go up).

* Static file caching headers: Implemented by Greg Weber. We'll likely
be making some API changes to handle embedded files, though that
discussion deserves its own blog post.

* Other template types: For Hamlet 0.9, we're going to be splitting
Julius/Coffeescript into their own package, and juggling the type
signature for Coffeescript a bit. At that point, it should be
straightforward to embed Coffeescript directly into a Yesod app, just
like Julius is today.

* Something like require.js: This is something we haven't started on
yet. I'll likely start looking into it this week. Additionally, I know
that a lot of my sites (jQuery powered) have numerous onload calls per
page; I think we can try to make that more efficient as well. I would
especially like people's input on this point.

* i18n: The solution is written, and I'm using it in production. At
this point, I'd call it beta quality, and I'd appreciate input.

* Forms package: It's been rewritten, but hasn't really had much input
from others. Now's the time to speak up if you have any opinions on
it. The code is available on Hackage.

* Embedded objects in MongoDB: No work done yet.

* Performance improvements: Nothing in particular. If you have any
examples of Yesod performing badly, please let us know.

The goal is for Yesod 0.9 to be feature complete, and for 1.0 to be a
fairly stable API. From the list above, my two priorities are better
Javascript loading (require.js) and static file serving. However,
there's one other major issue we need to address: the devel server.
Unfortunately, it doesn't work very well at all right now. Thankfully,
"yesod build" *does* work very well, and for my development I've
fallen back to simply "yesod build && ./dist/build/myapp/myapp" on the
command line. My guess is that we're 90% of the way there on "yesod
devel". This is a project that isn't tightly bound to the rest of the
API work, and would be very approachable for someone trying to get
started on Yesod development. If you're interested in helping out
here, please let me know.

I have no specific timeframe in mind for Yesod 0.9. As it stands now,
it looks like the 0.9 release will involve almost no API breakage,
which is a very good sign. But if you have any ideas you'd like to
contribute, I'd recommend getting them in in the next week or two.


[1] http://www.yesodweb.com/blog/2011/4/announcing-yesod-0-8

More information about the web-devel mailing list