This is the main package for Yesod, providing all core functionality on which
other packages can be built. It provides dispatch, handler functions, widgets,
etc.
Adapt to removal of ListT from transformers-0.6. #1796
1.6.24.0
Make catching exceptions configurable and set the default back to rethrowing async exceptions. #1772.
1.6.23.1
Fix typo in creation of the description <meta> tag in defaultLayout. #1766
1.6.23
Add idempotent versions of setDescription, setDescriptionI. These functions
have odd behaviour when called multiple times, so they are now warned against.
This can’t be a silent change - if you want to switch to the new functions, make
sure your layouts are updated to use pageDescription as well as pageTitle.
#1765
Fixed a bug where mkYesod and other TH functions didn’t work for datatypes with explicitly stated type variables, including the case with typeclass constraints. https://github.com/yesodweb/yesod/pull/1697
Recommends .yesodroutes as the file extension for Yesod routes files. #1686
1.6.18.1
Increase the size of CSRF token
1.6.18
Add functions for setting description and OG meta #1663
Use DeriveLift to implement the Lift instances for ResourceTree,
Resource, Piece, and Dispatch. Among other benefits, this provides
implementations of liftTyped on template-haskell-2.16 (GHC 8.10) or
later. #1664
1.6.17.3
Support for unliftio-core 0.2
1.6.17.2
Support template-haskell 2.16, build with GHC 8.10 #1657
Derive a Show instance for ResourceTree and FlatResource#1492
Some third party packages, like yesod-routes-flow derive their own Show instance, and this will break those packages.
1.6.1
Add a Semigroup LiteApp instance, and explicitly define (<>) in the
already existing Semigroup instances for WidgetFor, Head, Body,
GWData, and UniqueList.
1.6.0
Upgrade to conduit 1.3.0
Switch to MonadUnliftIO
Drop mwc-random and blaze-builder dependencies
Strictify some internal data structures
Add CI wrapper to first field in Header data constructor
#1418
Internal only change, users of stable API are unaffected: WidgetT
holds its data in an IORef so that it is isomorphic to ReaderT,
avoiding state-loss issues..
Overhaul of HandlerT/WidgetT to no longer be transformers.
Fix Haddock comment & simplify implementation for contentTypeTypes#1476
1.4.37.3
Improve error message when request body is too large #1477
1.4.37.2
Improve error messages for the CSRF checking functions #1455
1.4.37.1
Fix documentation on languages function, update getMessageRender to use said function. #1457
1.4.37
Add setWeakEtag function in Yesod.Core.Handler module.
1.4.36
Add replaceOrAddHeader function in Yesod.Core.Handler module. 1416
1.4.35.1
TH fix for GHC 8.2
1.4.35
Contexts can be included in generated TH instances. 1365
Modify languages so that, if you previously called setLanguage, the newly
set language will be reflected.
1.4.25
Add instance of MonadHandler and MonadWidget for ExceptT #1278
1.4.24
cached and cachedBy will not overwrite global state changes #1268
1.4.23.1
Don’t allow sending multiple cookies with the same name to the client, in accordance with RFC 6265. This fixes an issue where multiple CSRF tokens were sent to the client. #1258
Default CSRF tokens to the root path “/”, fixing an issue where multiple tokens were stored in cookies, and using the wrong one led to CSRF errors #1248
1.4.23
urlParamRenderOverride method for Yesod class #1257
Add laxSameSiteSessions and strictSameSiteSessions #1226
1.4.22
Proper handling of impure exceptions within HandlerError values
Add hook to apply arbitrary function to all handlers #1122
1.4.17
Add getApprootText
1.4.16
Add guessApproot and guessApprootOr
1.4.15.1
bugfix neverExpires leaked threads
1.4.15
mkYesod avoids using reify when it isn’t necessary. This avoids needing to define the site type below the call to mkYesod.
1.4.14
Add CSRF protection functions and middleware based on HTTP cookies and headers #1017
Add mkYesodWith, which allows creating sites with polymorphic type parameters #1055
Do not define the site type below a call to mkYesod (or any variant), as it will be required at splicing time for reification.
This was allowed before because reification was not in use. Reification was introduced to allow parametrized types to be used
by mkYesod (and variants), with potentially polymorphic variables.