Hello community, here is the log from the commit of package ghc-yesod-core for openSUSE:Factory checked in at 2017-04-11 09:43:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-yesod-core (Old) and /work/SRC/openSUSE:Factory/.ghc-yesod-core.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-yesod-core" Tue Apr 11 09:43:59 2017 rev:11 rq:485177 version:1.4.32 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-yesod-core/ghc-yesod-core.changes 2017-02-21 13:46:10.247658930 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-yesod-core.new/ghc-yesod-core.changes 2017-04-11 09:44:04.182349137 +0200 @@ -1,0 +2,10 @@ +Wed Mar 22 09:03:58 UTC 2017 - psim...@suse.com + +- Update to version 1.4.32 revision 1 with cabal2obs. + +------------------------------------------------------------------- +Tue Mar 7 11:19:29 UTC 2017 - psim...@suse.com + +- Update to version 1.4.32 with cabal2obs. + +------------------------------------------------------------------- Old: ---- yesod-core-1.4.31.tar.gz New: ---- yesod-core-1.4.32.tar.gz yesod-core.cabal ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-yesod-core.spec ++++++ --- /var/tmp/diff_new_pack.cuhdnB/_old 2017-04-11 09:44:05.938101113 +0200 +++ /var/tmp/diff_new_pack.cuhdnB/_new 2017-04-11 09:44:05.938101113 +0200 @@ -19,13 +19,14 @@ %global pkg_name yesod-core %bcond_with tests Name: ghc-%{pkg_name} -Version: 1.4.31 +Version: 1.4.32 Release: 0 Summary: Creation of type-safe, RESTful web applications License: MIT Group: Development/Languages/Other Url: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-aeson-devel BuildRequires: ghc-auto-update-devel @@ -104,6 +105,7 @@ %prep %setup -q -n %{pkg_name}-%{version} +cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build ++++++ yesod-core-1.4.31.tar.gz -> yesod-core-1.4.32.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/ChangeLog.md new/yesod-core-1.4.32/ChangeLog.md --- old/yesod-core-1.4.31/ChangeLog.md 2017-02-02 06:52:44.000000000 +0100 +++ new/yesod-core-1.4.32/ChangeLog.md 2017-03-01 07:53:06.000000000 +0100 @@ -1,3 +1,10 @@ +## 1.4.32 + +* Fix warnings +* Route parsing handles CRLF line endings +* Add 'getPostParams' in Yesod.Core.Handler +* Haddock rendering improved. + ## 1.4.31 * Add `parseCheckJsonBody` and `requireCheckJsonBody` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Core/Class/Handler.hs new/yesod-core-1.4.32/Yesod/Core/Class/Handler.hs --- old/yesod-core-1.4.31/Yesod/Core/Class/Handler.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/Yesod/Core/Class/Handler.hs 2017-02-05 13:38:01.000000000 +0100 @@ -5,6 +5,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE UndecidableInstances #-} +{-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} -- Because of ErrorT module Yesod.Core.Class.Handler ( MonadHandler (..) , MonadWidget (..) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Core/Class/Yesod.hs new/yesod-core-1.4.32/Yesod/Core/Class/Yesod.hs --- old/yesod-core-1.4.31/Yesod/Core/Class/Yesod.hs 2016-12-08 02:06:37.000000000 +0100 +++ new/yesod-core-1.4.32/Yesod/Core/Class/Yesod.hs 2017-02-05 13:38:01.000000000 +0100 @@ -442,10 +442,9 @@ -- headers are ignored over HTTP. -- -- Since 1.4.7 -sslOnlyMiddleware :: Yesod site - => Int -- ^ minutes - -> HandlerT site IO res - -> HandlerT site IO res +sslOnlyMiddleware :: Int -- ^ minutes + -> HandlerT site IO res + -> HandlerT site IO res sslOnlyMiddleware timeout handler = do addHeader "Strict-Transport-Security" $ T.pack $ concat [ "max-age=" @@ -496,8 +495,7 @@ -- For details, see the "AJAX CSRF protection" section of "Yesod.Core.Handler". -- -- Since 1.4.14 -csrfCheckMiddleware :: Yesod site - => HandlerT site IO res +csrfCheckMiddleware :: HandlerT site IO res -> HandlerT site IO Bool -- ^ Whether or not to perform the CSRF check. -> CI S8.ByteString -- ^ The header name to lookup the CSRF token from. -> Text -- ^ The POST parameter name to lookup the CSRF token from. @@ -512,7 +510,7 @@ -- The cookie's path is set to @/@, making it valid for your whole website. -- -- Since 1.4.14 -defaultCsrfSetCookieMiddleware :: Yesod site => HandlerT site IO res -> HandlerT site IO res +defaultCsrfSetCookieMiddleware :: HandlerT site IO res -> HandlerT site IO res defaultCsrfSetCookieMiddleware handler = setCsrfCookie >> handler -- | Takes a 'SetCookie' and overrides its value with a CSRF token, then sets the cookie. See 'setCsrfCookieWithCookie'. @@ -522,7 +520,7 @@ -- Make sure to set the 'setCookiePath' to the root path of your application, otherwise you'll generate a new CSRF token for every path of your app. If your app is run from from e.g. www.example.com\/app1, use @app1@. The vast majority of sites will just use @/@. -- -- Since 1.4.14 -csrfSetCookieMiddleware :: Yesod site => HandlerT site IO res -> SetCookie -> HandlerT site IO res +csrfSetCookieMiddleware :: HandlerT site IO res -> SetCookie -> HandlerT site IO res csrfSetCookieMiddleware handler cookie = setCsrfCookieWithCookie cookie >> handler -- | Calls 'defaultCsrfSetCookieMiddleware' and 'defaultCsrfCheckMiddleware'. @@ -546,7 +544,7 @@ defaultCsrfMiddleware = defaultCsrfSetCookieMiddleware . defaultCsrfCheckMiddleware -- | Convert a widget to a 'PageContent'. -widgetToPageContent :: (Eq (Route site), Yesod site) +widgetToPageContent :: Yesod site => WidgetT site IO () -> HandlerT site IO (PageContent (Route site)) widgetToPageContent w = do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Core/Handler.hs new/yesod-core-1.4.32/Yesod/Core/Handler.hs --- old/yesod-core-1.4.31/Yesod/Core/Handler.hs 2016-11-10 10:31:51.000000000 +0100 +++ new/yesod-core-1.4.32/Yesod/Core/Handler.hs 2017-02-27 08:46:27.000000000 +0100 @@ -31,6 +31,7 @@ , getsYesod , getUrlRender , getUrlRenderParams + , getPostParams , getCurrentRoute , getRequest , waiRequest @@ -339,6 +340,18 @@ => m (Route (HandlerSite m) -> [(Text, Text)] -> Text) getUrlRenderParams = rheRender <$> askHandlerEnv +-- | Get all the post parameters passed to the handler. To also get +-- the submitted files (if any), you have to use 'runRequestBody' +-- instead of this function. +-- +-- @since 1.4.33 +getPostParams + :: MonadHandler m + => m [(Text, Text)] +getPostParams = do + reqBodyContent <- runRequestBody + return $ fst reqBodyContent + -- | Get the route requested by the user. If this is a 404 response- where the -- user requested an invalid route- this function will return 'Nothing'. getCurrentRoute :: MonadHandler m => m (Maybe (Route (HandlerSite m))) @@ -425,7 +438,7 @@ -- Uses 'handlerToIO', liftResourceT, and resourceForkIO -- for correctness and efficiency -- --- Since 1.2.8 +-- @since 1.2.8 forkHandler :: (SomeException -> HandlerT site IO ()) -- ^ error handler -> HandlerT site IO () -> HandlerT site IO () @@ -617,7 +630,7 @@ -- | Bypass remaining handler code and output the given JSON with the given -- status code. -- --- Since 1.4.18 +-- @since 1.4.18 sendStatusJSON :: (MonadHandler m, ToJSON c) => H.Status -> c -> m a #if MIN_VERSION_aeson(0, 11, 0) sendStatusJSON s v = sendResponseStatus s (toEncoding v) @@ -642,7 +655,7 @@ -- | Switch over to handling the current request with a WAI @Application@. -- --- Since 1.2.17 +-- @since 1.2.17 sendWaiApplication :: MonadHandler m => W.Application -> m b sendWaiApplication = handlerError . HCWaiApp @@ -650,7 +663,7 @@ -- WebSockets. Requires WAI 3.0 or later, and a web server which supports raw -- responses (e.g., Warp). -- --- Since 1.2.16 +-- @since 1.2.16 sendRawResponseNoConduit :: (MonadHandler m, MonadBaseControl IO m) => (IO S8.ByteString -> (S8.ByteString -> IO ()) -> m ()) @@ -666,7 +679,7 @@ -- WAI 2.1 or later, and a web server which supports raw responses (e.g., -- Warp). -- --- Since 1.2.7 +-- @since 1.2.7 sendRawResponse :: (MonadHandler m, MonadBaseControl IO m) => (Source IO S8.ByteString -> Sink S8.ByteString IO () -> m ()) -> m a @@ -685,7 +698,7 @@ -- | Send a 304 not modified response immediately. This is a short-circuiting -- action. -- --- Since 1.4.4 +-- @since 1.4.4 notModified :: MonadHandler m => m a notModified = sendWaiResponse $ W.responseBuilder H.status304 [] mempty @@ -765,7 +778,7 @@ -- Note that, while the data type used here is 'Text', you must provide only -- ASCII value to be HTTP compliant. -- --- Since 1.2.0 +-- @since 1.2.0 addHeader :: MonadHandler m => Text -> Text -> m () addHeader a = addHeaderInternal . Header (encodeUtf8 a) . encodeUtf8 @@ -810,7 +823,7 @@ -- value is a value etag value, no sanity checking is performed by this -- function. -- --- Since 1.4.4 +-- @since 1.4.4 setEtag :: MonadHandler m => Text -> m () setEtag etag = do mmatch <- lookupHeader "if-none-match" @@ -856,7 +869,7 @@ -- | Clear all session variables. -- --- Since: 1.0.1 +-- @since: 1.0.1 clearSession :: MonadHandler m => m () clearSession = modify $ \x -> x { ghsSession = Map.empty } @@ -896,7 +909,7 @@ -- -- > redirect (NewsfeedR :#: storyId) -- --- Since 1.2.9. +-- @since 1.2.9. data Fragment a b = a :#: b deriving (Show, Typeable) instance (RedirectUrl master a, PathPiece b) => RedirectUrl master (Fragment a b) where @@ -960,7 +973,7 @@ -- | Deprecated synonym for 'withUrlRenderer'. -- --- Since 1.2.0 +-- @since 1.2.0 giveUrlRenderer :: MonadHandler m => ((Route (HandlerSite m) -> [(Text, Text)] -> Text) -> output) -> m output @@ -970,7 +983,7 @@ -- | Provide a URL rendering function to the given function and return the -- result. Useful for processing Shakespearean templates. -- --- Since 1.2.20 +-- @since 1.2.20 withUrlRenderer :: MonadHandler m => ((Route (HandlerSite m) -> [(Text, Text)] -> Text) -> output) -> m output @@ -998,7 +1011,7 @@ -- -- See the original announcement: <http://www.yesodweb.com/blog/2013/03/yesod-1-2-cleaner-internals> -- --- Since 1.2.0 +-- @since 1.2.0 cached :: (MonadHandler m, Typeable a) => m a -> m a @@ -1022,7 +1035,7 @@ -- You can turn those parameters into a ByteString cache key. -- For example, caching a lookup of a Link by a token where multiple token lookups might be performed. -- --- Since 1.4.0 +-- @since 1.4.0 cachedBy :: (MonadHandler m, Typeable a) => S.ByteString -> m a -> m a cachedBy k action = do cache <- ghsCacheBy <$> get @@ -1063,13 +1076,13 @@ -- | Lookup a request header. -- --- Since 1.2.2 +-- @since 1.2.2 lookupHeader :: MonadHandler m => CI S8.ByteString -> m (Maybe S8.ByteString) lookupHeader = fmap listToMaybe . lookupHeaders -- | Lookup a request header. -- --- Since 1.2.2 +-- @since 1.2.2 lookupHeaders :: MonadHandler m => CI S8.ByteString -> m [S8.ByteString] lookupHeaders key = do req <- waiRequest @@ -1078,7 +1091,7 @@ -- | Lookup basic authentication data from __Authorization__ header of -- request. Returns user name and password -- --- Since 1.4.9 +-- @since 1.4.9 lookupBasicAuth :: (MonadHandler m) => m (Maybe (Text, Text)) lookupBasicAuth = fmap (>>= getBA) (lookupHeader "Authorization") where @@ -1088,7 +1101,7 @@ -- | Lookup bearer authentication datafrom __Authorization__ header of -- request. Returns bearer token value -- --- Since 1.4.9 +-- @since 1.4.9 lookupBearerAuth :: (MonadHandler m) => m (Maybe Text) lookupBearerAuth = fmap (>>= getBR) (lookupHeader "Authorization") @@ -1119,13 +1132,13 @@ lookupPostParam = fmap listToMaybe . lookupPostParams -- | Lookup for POSTed files. -lookupFile :: (MonadHandler m, MonadResource m) +lookupFile :: MonadHandler m => Text -> m (Maybe FileInfo) lookupFile = fmap listToMaybe . lookupFiles -- | Lookup for POSTed files. -lookupFiles :: (MonadHandler m, MonadResource m) +lookupFiles :: MonadHandler m => Text -> m [FileInfo] lookupFiles pn = do @@ -1162,7 +1175,7 @@ -- | Select a representation to send to the client based on the representations -- provided inside this do-block. Should be used together with 'provideRep'. -- --- Since 1.2.0 +-- @since 1.2.0 selectRep :: MonadHandler m => Writer.Writer (Endo [ProvidedRep m]) () -> m TypedContent @@ -1218,13 +1231,13 @@ -- | Internal representation of a single provided representation. -- --- Since 1.2.0 +-- @since 1.2.0 data ProvidedRep m = ProvidedRep !ContentType !(m Content) -- | Provide a single representation to be used, based on the request of the -- client. Should be used together with 'selectRep'. -- --- Since 1.2.0 +-- @since 1.2.0 provideRep :: (Monad m, HasContentType a) => m a -> Writer.Writer (Endo [ProvidedRep m]) () @@ -1237,7 +1250,7 @@ -- -- > provideRepType "application/x-special-format" "This is the content" -- --- Since 1.2.0 +-- @since 1.2.0 provideRepType :: (Monad m, ToContent a) => ContentType -> m a @@ -1247,7 +1260,7 @@ -- | Stream in the raw request body without any parsing. -- --- Since 1.2.0 +-- @since 1.2.0 rawRequestBody :: MonadHandler m => Source m S.ByteString rawRequestBody = do req <- lift waiRequest @@ -1267,7 +1280,7 @@ -- -- > respond ct = return . TypedContent ct . toContent -- --- Since 1.2.0 +-- @since 1.2.0 respond :: (Monad m, ToContent a) => ContentType -> a -> m TypedContent respond ct = return . TypedContent ct . toContent @@ -1279,7 +1292,7 @@ -- actions make no sense here. For example: short-circuit responses, setting -- headers, changing status codes, etc. -- --- Since 1.2.0 +-- @since 1.2.0 respondSource :: ContentType -> Source (HandlerT site IO) (Flush Builder) -> HandlerT site IO TypedContent @@ -1293,44 +1306,44 @@ -- | In a streaming response, send a single chunk of data. This function works -- on most datatypes, such as @ByteString@ and @Html@. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunk :: Monad m => ToFlushBuilder a => a -> Producer m (Flush Builder) sendChunk = yield . toFlushBuilder -- | In a streaming response, send a flush command, causing all buffered data -- to be immediately sent to the client. -- --- Since 1.2.0 +-- @since 1.2.0 sendFlush :: Monad m => Producer m (Flush Builder) sendFlush = yield Flush -- | Type-specialized version of 'sendChunk' for strict @ByteString@s. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunkBS :: Monad m => S.ByteString -> Producer m (Flush Builder) sendChunkBS = sendChunk -- | Type-specialized version of 'sendChunk' for lazy @ByteString@s. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunkLBS :: Monad m => L.ByteString -> Producer m (Flush Builder) sendChunkLBS = sendChunk -- | Type-specialized version of 'sendChunk' for strict @Text@s. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunkText :: Monad m => T.Text -> Producer m (Flush Builder) sendChunkText = sendChunk -- | Type-specialized version of 'sendChunk' for lazy @Text@s. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunkLazyText :: Monad m => TL.Text -> Producer m (Flush Builder) sendChunkLazyText = sendChunk -- | Type-specialized version of 'sendChunk' for @Html@s. -- --- Since 1.2.0 +-- @since 1.2.0 sendChunkHtml :: Monad m => Html -> Producer m (Flush Builder) sendChunkHtml = sendChunk @@ -1374,7 +1387,7 @@ -- | The default cookie name for the CSRF token ("XSRF-TOKEN"). -- --- Since 1.4.14 +-- @since 1.4.14 defaultCsrfCookieName :: S8.ByteString defaultCsrfCookieName = "XSRF-TOKEN" @@ -1382,7 +1395,7 @@ -- -- The cookie's path is set to @/@, making it valid for your whole website. -- --- Since 1.4.14 +-- @since 1.4.14 setCsrfCookie :: MonadHandler m => m () setCsrfCookie = setCsrfCookieWithCookie def { setCookieName = defaultCsrfCookieName, setCookiePath = Just "/" } @@ -1390,7 +1403,7 @@ -- -- Make sure to set the 'setCookiePath' to the root path of your application, otherwise you'll generate a new CSRF token for every path of your app. If your app is run from from e.g. www.example.com\/app1, use @app1@. The vast majority of sites will just use @/@. -- --- Since 1.4.14 +-- @since 1.4.14 setCsrfCookieWithCookie :: MonadHandler m => SetCookie -> m () setCsrfCookieWithCookie cookie = do mCsrfToken <- reqToken <$> getRequest @@ -1398,14 +1411,14 @@ -- | The default header name for the CSRF token ("X-XSRF-TOKEN"). -- --- Since 1.4.14 +-- @since 1.4.14 defaultCsrfHeaderName :: CI S8.ByteString defaultCsrfHeaderName = "X-XSRF-TOKEN" -- | Takes a header name to lookup a CSRF token. If the value doesn't match the token stored in the session, -- this function throws a 'PermissionDenied' error. -- --- Since 1.4.14 +-- @since 1.4.14 checkCsrfHeaderNamed :: MonadHandler m => CI S8.ByteString -> m () checkCsrfHeaderNamed headerName = do valid <- hasValidCsrfHeaderNamed headerName @@ -1413,7 +1426,7 @@ -- | Takes a header name to lookup a CSRF token, and returns whether the value matches the token stored in the session. -- --- Since 1.4.14 +-- @since 1.4.14 hasValidCsrfHeaderNamed :: MonadHandler m => CI S8.ByteString -> m Bool hasValidCsrfHeaderNamed headerName = do mCsrfToken <- reqToken <$> getRequest @@ -1425,14 +1438,14 @@ -- | The default parameter name for the CSRF token ("_token") -- --- Since 1.4.14 +-- @since 1.4.14 defaultCsrfParamName :: Text defaultCsrfParamName = "_token" -- | Takes a POST parameter name to lookup a CSRF token. If the value doesn't match the token stored in the session, -- this function throws a 'PermissionDenied' error. -- --- Since 1.4.14 +-- @since 1.4.14 checkCsrfParamNamed :: MonadHandler m => Text -> m () checkCsrfParamNamed paramName = do valid <- hasValidCsrfParamNamed paramName @@ -1440,7 +1453,7 @@ -- | Takes a POST parameter name to lookup a CSRF token, and returns whether the value matches the token stored in the session. -- --- Since 1.4.14 +-- @since 1.4.14 hasValidCsrfParamNamed :: MonadHandler m => Text -> m Bool hasValidCsrfParamNamed paramName = do mCsrfToken <- reqToken <$> getRequest @@ -1451,7 +1464,7 @@ -- | Checks that a valid CSRF token is present in either the request headers or POST parameters. -- If the value doesn't match the token stored in the session, this function throws a 'PermissionDenied' error. -- --- Since 1.4.14 +-- @since 1.4.14 checkCsrfHeaderOrParam :: (MonadHandler m, MonadLogger m) => CI S8.ByteString -- ^ The header name to lookup the CSRF token -> Text -- ^ The POST parameter name to lookup the CSRF token diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Core/Json.hs new/yesod-core-1.4.32/Yesod/Core/Json.hs --- old/yesod-core-1.4.31/Yesod/Core/Json.hs 2017-02-02 06:54:42.000000000 +0100 +++ new/yesod-core-1.4.32/Yesod/Core/Json.hs 2017-02-05 13:38:01.000000000 +0100 @@ -189,7 +189,7 @@ jsonEncodingOrRedirect = jsonOrRedirect' J.toEncoding #endif -jsonOrRedirect' :: (MonadHandler m, J.ToJSON a) +jsonOrRedirect' :: MonadHandler m => (a -> b) -> Route (HandlerSite m) -- ^ Redirect target -> a -- ^ Data to send via JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Core/Types.hs new/yesod-core-1.4.32/Yesod/Core/Types.hs --- old/yesod-core-1.4.31/Yesod/Core/Types.hs 2016-09-25 13:37:06.000000000 +0200 +++ new/yesod-core-1.4.32/Yesod/Core/Types.hs 2017-02-05 13:38:01.000000000 +0100 @@ -462,7 +462,12 @@ WidgetT $ \e -> uninterruptibleMask $ \u -> unWidgetT (a $ q u) e where q u (WidgetT b) = WidgetT (u . b) +-- CPP to avoid a redundant constraints warning +#if MIN_VERSION_base(4,9,0) +instance (MonadIO m, MonadBase IO m, MonadThrow m) => MonadResource (WidgetT site m) where +#else instance (Applicative m, MonadIO m, MonadBase IO m, MonadThrow m) => MonadResource (WidgetT site m) where +#endif liftResourceT f = WidgetT $ \hd -> liftIO $ (, mempty) <$> runInternalState f (handlerResource hd) instance MonadIO m => MonadLogger (WidgetT site m) where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/Yesod/Routes/Parse.hs new/yesod-core-1.4.32/Yesod/Routes/Parse.hs --- old/yesod-core-1.4.31/Yesod/Routes/Parse.hs 2016-09-25 13:37:06.000000000 +0200 +++ new/yesod-core-1.4.32/Yesod/Routes/Parse.hs 2017-02-07 16:18:21.000000000 +0100 @@ -63,7 +63,7 @@ -- invalid input. resourcesFromString :: String -> [ResourceTree String] resourcesFromString = - fst . parse 0 . filter (not . all (== ' ')) . lines + fst . parse 0 . filter (not . all (== ' ')) . lines . filter (/= '\r') where parse _ [] = ([], []) parse indent (thisLine:otherLines) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/bench/widget.hs new/yesod-core-1.4.32/bench/widget.hs --- old/yesod-core-1.4.31/bench/widget.hs 2016-09-25 13:37:06.000000000 +0200 +++ new/yesod-core-1.4.32/bench/widget.hs 2017-02-05 13:38:01.000000000 +0100 @@ -7,20 +7,16 @@ import Criterion.Main import Text.Hamlet -import Numeric (showInt) import qualified Data.ByteString.Lazy as L import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8 import Data.Monoid (mconcat) import Text.Blaze.Html5 (table, tr, td) import Text.Blaze.Html (toHtml) import Yesod.Core.Widget -import Control.Monad.Trans.Writer -import Control.Monad.Trans.RWS -import Data.Functor.Identity import Yesod.Core.Types -import Data.Monoid -import Data.IORef +import Data.Int +main :: IO () main = defaultMain [ bench "bigTable html" $ nf bigTableHtml bigTableData , bench "bigTable hamlet" $ nf bigTableHamlet bigTableData @@ -35,6 +31,7 @@ bigTableData = replicate rows [1..10] {-# NOINLINE bigTableData #-} +bigTableHtml :: Show a => [[a]] -> Int64 bigTableHtml rows = L.length $ Utf8.renderHtml $ ($ id) [hamlet| <table> $forall row <- rows @@ -43,6 +40,7 @@ <td>#{show cell} |] +bigTableHamlet :: Show a => [[a]] -> Int64 bigTableHamlet rows = L.length $ Utf8.renderHtml $ ($ id) [hamlet| <table> $forall row <- rows @@ -51,6 +49,7 @@ <td>#{show cell} |] +bigTableWidget :: Show a => [[a]] -> IO Int64 bigTableWidget rows = fmap (L.length . Utf8.renderHtml . ($ render)) (run [whamlet| <table> $forall row <- rows @@ -64,6 +63,7 @@ (_, GWData { gwdBody = Body x }) <- w undefined return x -bigTableBlaze t = L.length $ Utf8.renderHtml $ table $ mconcat $ map row t +bigTableBlaze :: Show a => [[a]] -> Int64 +bigTableBlaze t = L.length $ Utf8.renderHtml $ table $ Data.Monoid.mconcat $ map row t where row r = tr $ mconcat $ map (td . toHtml . show) r diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/Hierarchy.hs new/yesod-core-1.4.32/test/Hierarchy.hs --- old/yesod-core-1.4.31/test/Hierarchy.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/Hierarchy.hs 2017-02-05 13:38:01.000000000 +0100 @@ -17,6 +17,9 @@ , toText , Env (..) , subDispatch + -- to avoid warnings + , deleteDelete2 + , deleteDelete3 ) where import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/RouteSpec.hs new/yesod-core-1.4.32/test/RouteSpec.hs --- old/yesod-core-1.4.31/test/RouteSpec.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/RouteSpec.hs 2017-02-05 13:38:01.000000000 +0100 @@ -118,7 +118,7 @@ route = MySubRoute (pieces, []) instance Dispatcher MySubParam master where - dispatcher env (pieces, method) = + dispatcher env (pieces, _method) = case map unpack pieces of [[c]] -> let route = ParamRoute c @@ -234,56 +234,65 @@ describe "overlap checking" $ do it "catches overlapping statics" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /foo Foo2 |] findOverlapNames routes @?= [("Foo1", "Foo2")] it "catches overlapping dynamics" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /#Int Foo1 /#String Foo2 |] findOverlapNames routes @?= [("Foo1", "Foo2")] it "catches overlapping statics and dynamics" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /#String Foo2 |] findOverlapNames routes @?= [("Foo1", "Foo2")] it "catches overlapping multi" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /##*Strings Foo2 |] findOverlapNames routes @?= [("Foo1", "Foo2")] it "catches overlapping subsite" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /foo Foo2 Subsite getSubsite |] findOverlapNames routes @?= [("Foo1", "Foo2")] it "no false positives" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /bar/#String Foo2 |] findOverlapNames routes @?= [] it "obeys ignore rules" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /#!String Foo2 /!foo Foo3 |] findOverlapNames routes @?= [] it "obeys multipiece ignore rules #779" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 /+![String] Foo2 |] findOverlapNames routes @?= [] it "ignore rules for entire route #779" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /foo Foo1 !/+[String] Foo2 !/#String Foo3 @@ -291,7 +300,8 @@ |] findOverlapNames routes @?= [] it "ignore rules for hierarchy" $ do - let routes = [parseRoutesNoCheck| + let routes :: [ResourceTree String] + routes = [parseRoutesNoCheck| /+[String] Foo1 !/foo Foo2: /foo Foo3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Auth.hs new/yesod-core-1.4.32/test/YesodCoreTest/Auth.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Auth.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Auth.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses #-} -module YesodCoreTest.Auth (specs, Widget) where +module YesodCoreTest.Auth + ( specs + , Widget + , resourcesApp + ) where import Yesod.Core import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Cache.hs new/yesod-core-1.4.32/test/YesodCoreTest/Cache.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Cache.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Cache.hs 2017-02-05 13:38:01.000000000 +0100 @@ -3,7 +3,11 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE Rank2Types #-} -module YesodCoreTest.Cache (cacheTest, Widget) where +module YesodCoreTest.Cache + ( cacheTest + , Widget + , resourcesC + ) where import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/CleanPath.hs new/yesod-core-1.4.32/test/YesodCoreTest/CleanPath.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/CleanPath.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/CleanPath.hs 2017-02-05 13:38:01.000000000 +0100 @@ -2,7 +2,11 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances, ViewPatterns #-} {-# LANGUAGE CPP #-} -module YesodCoreTest.CleanPath (cleanPathTest, Widget) where +module YesodCoreTest.CleanPath + ( cleanPathTest + , Widget + , resourcesY + ) where import Test.Hspec @@ -60,7 +64,7 @@ corrected = filter (not . TS.null) s joinPath Y ar pieces' qs' = - fromText ar `mappend` encodePath pieces qs + fromText ar `Data.Monoid.mappend` encodePath pieces qs where pieces = if null pieces' then [""] else pieces' qs = map (TE.encodeUtf8 *** go) qs' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/ErrorHandling.hs new/yesod-core-1.4.32/test/YesodCoreTest/ErrorHandling.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/ErrorHandling.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/ErrorHandling.hs 2017-02-05 13:38:01.000000000 +0100 @@ -4,6 +4,7 @@ module YesodCoreTest.ErrorHandling ( errorHandlingTest , Widget + , resourcesApp ) where import Yesod.Core import Test.Hspec @@ -98,7 +99,7 @@ getFileBadNameR = return $ TypedContent "ignored" $ ContentFile (error "filebadname") Nothing goodBuilderContent :: Builder -goodBuilderContent = mconcat $ replicate 100 $ fromByteString "This is a test\n" +goodBuilderContent = Data.Monoid.mconcat $ replicate 100 $ fromByteString "This is a test\n" getGoodBuilderR :: Handler TypedContent getGoodBuilderR = return $ TypedContent "text/plain" $ toContent goodBuilderContent @@ -114,6 +115,7 @@ getErrorR 8 = cacheSeconds undefined getErrorR 9 = setUltDest (undefined :: Text) getErrorR 10 = setMessage undefined +getErrorR x = error $ "getErrorR: " ++ show x errorHandlingTest :: Spec errorHandlingTest = describe "Test.ErrorHandling" $ do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Exceptions.hs new/yesod-core-1.4.32/test/YesodCoreTest/Exceptions.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Exceptions.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Exceptions.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-} -module YesodCoreTest.Exceptions (exceptionsTest, Widget) where +module YesodCoreTest.Exceptions + ( exceptionsTest + , Widget + , resourcesY + ) where import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/InternalRequest.hs new/yesod-core-1.4.32/test/YesodCoreTest/InternalRequest.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/InternalRequest.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/InternalRequest.hs 2017-02-05 13:38:01.000000000 +0100 @@ -21,8 +21,8 @@ -- NOTE: this testcase may break on other systems/architectures if -- mkStdGen is not identical everywhere (is it?). -looksRandom :: Bool -looksRandom = runST $ do +_looksRandom :: Bool +_looksRandom = runST $ do gen <- MWC.create s <- randomString 20 gen return $ s == "VH9SkhtptqPs6GqtofVg" @@ -57,7 +57,7 @@ noDisabledToken :: Bool noDisabledToken = reqToken r == Nothing where - r = parseWaiRequest' defaultRequest mempty False 1000 + r = parseWaiRequest' defaultRequest Data.Monoid.mempty False 1000 ignoreDisabledToken :: Bool ignoreDisabledToken = reqToken r == Nothing where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/JsLoader.hs new/yesod-core-1.4.32/test/YesodCoreTest/JsLoader.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/JsLoader.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/JsLoader.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-} -module YesodCoreTest.JsLoader (specs, Widget) where +module YesodCoreTest.JsLoader + ( specs + , Widget + , resourcesH + ) where import YesodCoreTest.JsLoaderSites.Bottom (B(..)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/JsLoaderSites/Bottom.hs new/yesod-core-1.4.32/test/YesodCoreTest/JsLoaderSites/Bottom.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/JsLoaderSites/Bottom.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/JsLoaderSites/Bottom.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-} -module YesodCoreTest.JsLoaderSites.Bottom (B(..), Widget) where +module YesodCoreTest.JsLoaderSites.Bottom + ( B(..) + , Widget + , resourcesB -- avoid warning + ) where import Yesod.Core diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Json.hs new/yesod-core-1.4.32/test/YesodCoreTest/Json.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Json.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Json.hs 2017-02-07 13:16:55.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ViewPatterns #-} -module YesodCoreTest.Json (specs, Widget) where +module YesodCoreTest.Json + ( specs + , Widget + , resourcesApp + ) where import Yesod.Core import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Links.hs new/yesod-core-1.4.32/test/YesodCoreTest/Links.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Links.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Links.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances, ViewPatterns #-} -module YesodCoreTest.Links (linksTest, Widget) where +module YesodCoreTest.Links + ( linksTest + , Widget + , resourcesY + ) where import Test.Hspec @@ -26,12 +30,16 @@ data Vector a = Vector deriving (Show, Read, Eq) -instance PathMultiPiece (Vector a) +instance PathMultiPiece (Vector a) where + toPathMultiPiece = error "toPathMultiPiece" + fromPathMultiPiece = error "fromPathMultiPiece" data Foo x y = Foo deriving (Show, Read, Eq) -instance PathPiece (Foo x y) +instance PathPiece (Foo x y) where + toPathPiece = error "toPathPiece" + fromPathPiece = error "fromPathPiece" instance Yesod Y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/NoOverloadedStrings.hs new/yesod-core-1.4.32/test/YesodCoreTest/NoOverloadedStrings.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/NoOverloadedStrings.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/NoOverloadedStrings.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances, ViewPatterns #-} {-# LANGUAGE OverloadedStrings #-} -- the module name is a lie!!! -module YesodCoreTest.NoOverloadedStrings (noOverloadedTest, Widget) where +module YesodCoreTest.NoOverloadedStrings + ( noOverloadedTest + , Widget + , resourcesY + ) where import Test.Hspec import YesodCoreTest.NoOverloadedStringsSub @@ -60,7 +64,7 @@ case_sanity :: IO () case_sanity = runner $ do res <- request defaultRequest - assertBody mempty res + assertBody Data.Monoid.mempty res case_subsite :: IO () case_subsite = runner $ do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/RawResponse.hs new/yesod-core-1.4.32/test/YesodCoreTest/RawResponse.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/RawResponse.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/RawResponse.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,13 +1,13 @@ {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ScopedTypeVariables #-} -module YesodCoreTest.RawResponse (specs, Widget) where +module YesodCoreTest.RawResponse + ( specs + , Widget + , resourcesApp + ) where import Yesod.Core import Test.Hspec -import qualified Data.Map as Map -import Network.Wai.Test import Network.Wai (responseStream) -import Data.Text (Text) -import Data.ByteString.Lazy (ByteString) import qualified Data.Conduit.List as CL import qualified Data.ByteString.Char8 as S8 import Data.Conduit @@ -15,7 +15,7 @@ import Data.Char (toUpper) import Control.Exception (try, IOException) import Data.Conduit.Network -import Network.Socket (sClose) +import Network.Socket (close) import Control.Concurrent (threadDelay) import Control.Concurrent.Async (withAsync) import Control.Monad.Trans.Resource (register) @@ -36,7 +36,7 @@ getHomeR :: Handler () getHomeR = do - ref <- liftIO $ newIORef 0 + ref <- liftIO $ newIORef (0 :: Int) _ <- register $ writeIORef ref 1 sendRawResponse $ \src sink -> liftIO $ do val <- readIORef ref @@ -66,7 +66,7 @@ case esocket of Left (_ :: IOException) -> loop (succ port) Right socket -> do - sClose socket + close socket return port specs :: Spec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Redirect.hs new/yesod-core-1.4.32/test/YesodCoreTest/Redirect.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Redirect.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Redirect.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.Redirect (specs, Widget) where +module YesodCoreTest.Redirect + ( specs + , Widget + , resourcesY + ) where import YesodCoreTest.YesodTest import Yesod.Core.Handler (redirectWith, setEtag) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Reps.hs new/yesod-core-1.4.32/test/YesodCoreTest/Reps.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Reps.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Reps.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ViewPatterns #-} -module YesodCoreTest.Reps (specs, Widget) where +module YesodCoreTest.Reps + ( specs + , Widget + , resourcesApp + ) where import Yesod.Core import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/RequestBodySize.hs new/yesod-core-1.4.32/test/YesodCoreTest/RequestBodySize.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/RequestBodySize.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/RequestBodySize.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,11 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-} -module YesodCoreTest.RequestBodySize (specs, Widget) where +module YesodCoreTest.RequestBodySize + ( specs + , Widget + , resourcesY + ) where import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/StubLaxSameSite.hs new/yesod-core-1.4.32/test/YesodCoreTest/StubLaxSameSite.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/StubLaxSameSite.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/StubLaxSameSite.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.StubLaxSameSite ( App ( App ) ) where +module YesodCoreTest.StubLaxSameSite + ( App ( App ) + , Widget + , resourcesApp + ) where import Yesod.Core import qualified Web.ClientSession as CS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/StubSslOnly.hs new/yesod-core-1.4.32/test/YesodCoreTest/StubSslOnly.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/StubSslOnly.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/StubSslOnly.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.StubSslOnly ( App ( App ) ) where +module YesodCoreTest.StubSslOnly + ( App ( App ) + , Widget + , resourcesApp + ) where import Yesod.Core import qualified Web.ClientSession as CS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/StubStrictSameSite.hs new/yesod-core-1.4.32/test/YesodCoreTest/StubStrictSameSite.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/StubStrictSameSite.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/StubStrictSameSite.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.StubStrictSameSite ( App ( App ) ) where +module YesodCoreTest.StubStrictSameSite + ( App ( App ) + , Widget + , resourcesApp + ) where import Yesod.Core import qualified Web.ClientSession as CS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/StubUnsecured.hs new/yesod-core-1.4.32/test/YesodCoreTest/StubUnsecured.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/StubUnsecured.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/StubUnsecured.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.StubUnsecured ( App ( App ) ) where +module YesodCoreTest.StubUnsecured + ( App ( App ) + , Widget + , resourcesApp + ) where import Yesod.Core diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/WaiSubsite.hs new/yesod-core-1.4.32/test/YesodCoreTest/WaiSubsite.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/WaiSubsite.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/WaiSubsite.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,5 +1,9 @@ {-# LANGUAGE CPP, QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings, ViewPatterns #-} -module YesodCoreTest.WaiSubsite (specs, Widget) where +module YesodCoreTest.WaiSubsite + ( specs + , Widget + , resourcesY + ) where import YesodCoreTest.YesodTest import Yesod.Core diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test/YesodCoreTest/Widget.hs new/yesod-core-1.4.32/test/YesodCoreTest/Widget.hs --- old/yesod-core-1.4.31/test/YesodCoreTest/Widget.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test/YesodCoreTest/Widget.hs 2017-02-05 13:38:01.000000000 +0100 @@ -1,7 +1,10 @@ {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances, ViewPatterns #-} -module YesodCoreTest.Widget (widgetTest) where +module YesodCoreTest.Widget + ( widgetTest + , resourcesY + ) where import Test.Hspec diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/test.hs new/yesod-core-1.4.32/test.hs --- old/yesod-core-1.4.31/test.hs 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/test.hs 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -import Test.Hspec -import qualified YesodCoreTest - -main :: IO () -main = hspec YesodCoreTest.specs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.4.31/yesod-core.cabal new/yesod-core-1.4.32/yesod-core.cabal --- old/yesod-core-1.4.31/yesod-core.cabal 2017-02-03 06:23:23.000000000 +0100 +++ new/yesod-core-1.4.32/yesod-core.cabal 2017-02-08 10:14:31.000000000 +0100 @@ -1,5 +1,5 @@ name: yesod-core -version: 1.4.31 +version: 1.4.32 license: MIT license-file: LICENSE author: Michael Snoyman <mich...@snoyman.com> @@ -12,7 +12,6 @@ build-type: Simple homepage: http://www.yesodweb.com/ extra-source-files: - test.hs test/YesodCoreTest.hs test/YesodCoreTest/*.hs test/YesodCoreTest/JsLoaderSites/Bottom.hs @@ -119,6 +118,15 @@ hs-source-dirs: test, . other-modules: Hierarchy + Yesod.Routes.Class + Yesod.Routes.Overlap + Yesod.Routes.Parse + Yesod.Routes.TH + Yesod.Routes.TH.Dispatch + Yesod.Routes.TH.ParseRoute + Yesod.Routes.TH.RenderRoute + Yesod.Routes.TH.RouteAttrs + Yesod.Routes.TH.Types -- Workaround for: http://ghc.haskell.org/trac/ghc/ticket/8443 extensions: TemplateHaskell @@ -138,6 +146,37 @@ main-is: test.hs hs-source-dirs: test + other-modules: YesodCoreTest + YesodCoreTest.Auth + YesodCoreTest.Cache + YesodCoreTest.CleanPath + YesodCoreTest.Csrf + YesodCoreTest.ErrorHandling + YesodCoreTest.Exceptions + YesodCoreTest.InternalRequest + YesodCoreTest.JsLoader + YesodCoreTest.JsLoaderSites.Bottom + YesodCoreTest.Json + YesodCoreTest.Links + YesodCoreTest.LiteApp + YesodCoreTest.Media + YesodCoreTest.MediaData + YesodCoreTest.NoOverloadedStrings + YesodCoreTest.NoOverloadedStringsSub + YesodCoreTest.RawResponse + YesodCoreTest.Redirect + YesodCoreTest.Reps + YesodCoreTest.RequestBodySize + YesodCoreTest.Ssl + YesodCoreTest.Streaming + YesodCoreTest.StubLaxSameSite + YesodCoreTest.StubSslOnly + YesodCoreTest.StubStrictSameSite + YesodCoreTest.StubUnsecured + YesodCoreTest.WaiSubsite + YesodCoreTest.Widget + YesodCoreTest.YesodTest + cpp-options: -DTEST build-depends: base ,hspec >= 1.3 ++++++ yesod-core.cabal ++++++ name: yesod-core version: 1.4.32 x-revision: 1 license: MIT license-file: LICENSE author: Michael Snoyman <mich...@snoyman.com> maintainer: Michael Snoyman <mich...@snoyman.com> synopsis: Creation of type-safe, RESTful web applications. description: API docs and the README are available at <http://www.stackage.org/package/yesod-core> category: Web, Yesod stability: Stable cabal-version: >= 1.8 build-type: Simple homepage: http://www.yesodweb.com/ extra-source-files: test/YesodCoreTest.hs test/YesodCoreTest/*.hs test/YesodCoreTest/JsLoaderSites/Bottom.hs test/en.msg test/test.hs ChangeLog.md README.md library build-depends: base >= 4.7 && < 5 , time >= 1.1.4 , wai >= 3.0 , wai-extra >= 3.0.7 , bytestring >= 0.10 , text >= 0.7 , template-haskell , path-pieces >= 0.1.2 && < 0.3 , shakespeare >= 2.0 , blaze-builder >= 0.2.1.4 && < 0.5 , transformers >= 0.2.2 , mtl , clientsession >= 0.9.1 && < 0.10 , random >= 1.0.0.2 && < 1.2 , cereal >= 0.3 , old-locale >= 1.0.0.2 && < 1.1 , containers >= 0.2 , unordered-containers >= 0.2 , monad-control >= 0.3 && < 1.1 , transformers-base >= 0.4 , cookie >= 0.4.2 && < 0.5 , http-types >= 0.7 , case-insensitive >= 0.2 , parsec >= 2 && < 3.2 , directory >= 1 , vector >= 0.9 && < 0.13 , aeson >= 0.5 , fast-logger >= 2.2 , wai-logger >= 0.2 , monad-logger >= 0.3.1 && < 0.4 , conduit >= 1.2 , resourcet >= 0.4.9 && < 1.2 , lifted-base >= 0.1.2 , blaze-html >= 0.5 , blaze-markup >= 0.7.1 , data-default , safe , warp >= 3.0.2 , unix-compat , conduit-extra , exceptions >= 0.6 , deepseq >= 1.3 , deepseq-generics , mwc-random , primitive , word8 , auto-update , semigroups , byteable exposed-modules: Yesod.Core Yesod.Core.Content Yesod.Core.Dispatch Yesod.Core.Handler Yesod.Core.Json Yesod.Core.Widget Yesod.Core.Internal Yesod.Core.Types Yesod.Core.Unsafe Yesod.Routes.TH.Types other-modules: Yesod.Core.Internal.Session Yesod.Core.Internal.Request Yesod.Core.Class.Handler Yesod.Core.Internal.Util Yesod.Core.Internal.Response Yesod.Core.Internal.Run Yesod.Core.Internal.TH Yesod.Core.Internal.LiteApp Yesod.Core.Class.Yesod Yesod.Core.Class.Dispatch Yesod.Core.Class.Breadcrumbs Yesod.Core.TypeCache Paths_yesod_core Yesod.Routes.TH Yesod.Routes.Class Yesod.Routes.Parse Yesod.Routes.Overlap Yesod.Routes.TH.Dispatch Yesod.Routes.TH.RenderRoute Yesod.Routes.TH.ParseRoute Yesod.Routes.TH.RouteAttrs ghc-options: -Wall -- Following line added due to: https://github.com/yesodweb/yesod/issues/545 -- This looks like a GHC bug extensions: MultiParamTypeClasses -- Workaround for: http://ghc.haskell.org/trac/ghc/ticket/8443 extensions: TemplateHaskell test-suite test-routes type: exitcode-stdio-1.0 main-is: RouteSpec.hs hs-source-dirs: test, . other-modules: Hierarchy Yesod.Routes.Class Yesod.Routes.Overlap Yesod.Routes.Parse Yesod.Routes.TH Yesod.Routes.TH.Dispatch Yesod.Routes.TH.ParseRoute Yesod.Routes.TH.RenderRoute Yesod.Routes.TH.RouteAttrs Yesod.Routes.TH.Types -- Workaround for: http://ghc.haskell.org/trac/ghc/ticket/8443 extensions: TemplateHaskell build-depends: base , hspec , containers , bytestring , template-haskell , text , random , path-pieces , HUnit test-suite tests type: exitcode-stdio-1.0 main-is: test.hs hs-source-dirs: test other-modules: YesodCoreTest YesodCoreTest.Auth YesodCoreTest.Cache YesodCoreTest.CleanPath YesodCoreTest.Csrf YesodCoreTest.ErrorHandling YesodCoreTest.Exceptions YesodCoreTest.InternalRequest YesodCoreTest.JsLoader YesodCoreTest.JsLoaderSites.Bottom YesodCoreTest.Json YesodCoreTest.Links YesodCoreTest.LiteApp YesodCoreTest.Media YesodCoreTest.MediaData YesodCoreTest.NoOverloadedStrings YesodCoreTest.NoOverloadedStringsSub YesodCoreTest.RawResponse YesodCoreTest.Redirect YesodCoreTest.Reps YesodCoreTest.RequestBodySize YesodCoreTest.Ssl YesodCoreTest.Streaming YesodCoreTest.StubLaxSameSite YesodCoreTest.StubSslOnly YesodCoreTest.StubStrictSameSite YesodCoreTest.StubUnsecured YesodCoreTest.WaiSubsite YesodCoreTest.Widget YesodCoreTest.YesodTest cpp-options: -DTEST build-depends: base ,hspec >= 1.3 ,hspec-expectations ,clientsession ,wai >= 3.0 ,yesod-core ,bytestring ,text ,http-types , random , blaze-builder ,HUnit ,QuickCheck >= 2 && < 3 ,transformers , conduit , containers , lifted-base , resourcet , network , async , conduit-extra , shakespeare , streaming-commons , wai-extra , mwc-random , cookie >= 0.4.1 && < 0.5 ghc-options: -Wall extensions: TemplateHaskell benchmark widgets type: exitcode-stdio-1.0 hs-source-dirs: bench build-depends: base , criterion , bytestring , text , transformers , yesod-core , blaze-html , shakespeare main-is: widget.hs ghc-options: -Wall -O2 source-repository head type: git location: https://github.com/yesodweb/yesod