scotty-0.6.0: ReleaseNotes.md
## 0.6.0
* The Scotty transformers (`ScottyT` and `ActionT`) are now parameterized
over a custom exception type, allowing one to extend Scotty's `ErrorT`
layer with something richer than `Text` errors. See the `exceptions`
example for use. `ScottyM` and `ActionM` remain specialized to `Text`
exceptions for simplicity.
* Both monads are now instances of `Functor` and `Applicative`.
* There is a new `cookies` example.
* Internals brought up-to-date with WAI 2.0 and related packages.
## 0.5.0
* The Scotty monads (`ScottyM` and `ActionM`) are now monad transformers,
allowing Scotty applications to be embedded in arbitrary `MonadIO`s.
The old API continues to be exported from `Web.Scotty` where:
type ScottyM = ScottyT IO
type ActionM = ActionT IO
The new transformers are found in `Web.Scotty.Trans`. See the
`globalstate` example for use. Special thanks to Dan Frumin (co-dan)
for much of the legwork here.
* Added support for HTTP PATCH method.
* Removed lambda action syntax. This will return when we have a better
story for typesafe routes.
* `reqHeader :: Text -> ActionM Text` ==>
`reqHeader :: Text -> ActionM (Maybe Text)`
* New `raw` method to set body to a raw `ByteString`
* Parse error thrown by `jsonData` now includes the body it couldn't parse.
* `header` split into `setHeader` and `addHeader`. The former replaces
a response header (original behavior). The latter adds a header (useful
for multiple `Set-Cookie`s, for instance).