Yesod gotcha (kind of, not sure, it got me good though)

Hi guys, I'm fully getting into haskell thanks to the yesod framework. I've been pulling my hair with a bug as silly as they come, and for so long that I cannot tell it without feeling embarrassed. (I'm working on the haskellers.com website code, just to give you some extra context) I was getting a 500 in one of my controllers, and I first though there was some non existing id being referenced from a model, I set up the haskell interactive debugger and launched my yesod project from ghci, single stepped and everything looked just fine. The actual error displayed was:"Internal Server Error" "A LineSingle must have nested content" The issue was finally that a cassius file had some trailing garbage (that went unnoticed by me, probably added accidentally when passing out over my keyboard). My main issue with this is that I think of cassius files as just css, I wouldn't expect to get an error in my page just for a broken css file. I would expect seeing broken styles, or even better, the program not compiling at all. I searched for the LineSingle error message and seems to be related to hamlet, I interpreted that as a pointer but was in the wrong direction. I know this won't happen to me again, but just wanted to throw it out here to see if you consider it a gotcha. cheers :) ----nubis :)

You are absolutely correct that this a problem with Yesod, in
particular Hamlet version 0.5. I specifically released version 0.6 to
make Cassius more flexible and to give better error messages. In
future versions of Yesod, Hamlet 0.5 will be excluded with a version
bound. Unfortunately, doing so during the Yesod 0.6 line would break
the PVP (I think).
Michael
On Wed, Nov 3, 2010 at 4:26 PM, Nubis
Hi guys, I'm fully getting into haskell thanks to the yesod framework. I've been pulling my hair with a bug as silly as they come, and for so long that I cannot tell it without feeling embarrassed. (I'm working on the haskellers.com website code, just to give you some extra context)
I was getting a 500 in one of my controllers, and I first though there was some non existing id being referenced from a model, I set up the haskell interactive debugger and launched my yesod project from ghci, single stepped and everything looked just fine. The actual error displayed was:"Internal Server Error" "A LineSingle must have nested content"
The issue was finally that a cassius file had some trailing garbage (that went unnoticed by me, probably added accidentally when passing out over my keyboard).
My main issue with this is that I think of cassius files as just css, I wouldn't expect to get an error in my page just for a broken css file. I would expect seeing broken styles, or even better, the program not compiling at all. I searched for the LineSingle error message and seems to be related to hamlet, I interpreted that as a pointer but was in the wrong direction.
I know this won't happen to me again, but just wanted to throw it out here to see if you consider it a gotcha.
cheers :) ----nubis :)
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel

On Wed, Nov 3, 2010 at 4:46 PM, Michael Snoyman
You are absolutely correct that this a problem with Yesod, in particular Hamlet version 0.5. I specifically released version 0.6 to make Cassius more flexible and to give better error messages. In future versions of Yesod, Hamlet 0.5 will be excluded with a version bound. Unfortunately, doing so during the Yesod 0.6 line would break the PVP (I think).
Michael
Oh so that was what that all was about, :) cheers ----nubis :)
participants (2)
-
Michael Snoyman
-
Nubis