commit ghc-yesod-core for openSUSE:Factory
Hello community,
here is the log from the commit of package ghc-yesod-core for openSUSE:Factory checked in at 2020-09-30 19:53:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-yesod-core (Old)
and /work/SRC/openSUSE:Factory/.ghc-yesod-core.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-yesod-core"
Wed Sep 30 19:53:48 2020 rev:4 rq:838498 version:1.6.18.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-yesod-core/ghc-yesod-core.changes 2020-09-07 22:04:42.510130386 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-yesod-core.new.4249/ghc-yesod-core.changes 2020-09-30 19:53:51.308755946 +0200
@@ -1,0 +2,20 @@
+Thu Sep 24 02:00:45 UTC 2020 - psimons@suse.com
+
+- Update yesod-core to version 1.6.18.4.
+ ## 1.6.18.4
+
+ * 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](#1697)
+
+ ## 1.6.18.3
+
+ * Remove mention of an oudated Yesod type (`GHandler`) from the docs for `handlerToIO`. [https://github.com/yesodweb/yesod/pull/1695](#1695)
+
+ ## 1.6.18.2
+
+ * Recommends `.yesodroutes` as the file extension for Yesod routes files. [#1686](https://github.com/yesodweb/yesod/pull/1686)
+
+ ## 1.6.18.1
+
+ * Increase the size of CSRF token
+
+-------------------------------------------------------------------
Old:
----
yesod-core-1.6.18.tar.gz
yesod-core.cabal
New:
----
yesod-core-1.6.18.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-yesod-core.spec ++++++
--- /var/tmp/diff_new_pack.tKANfn/_old 2020-09-30 19:53:51.976756543 +0200
+++ /var/tmp/diff_new_pack.tKANfn/_new 2020-09-30 19:53:51.980756546 +0200
@@ -19,13 +19,12 @@
%global pkg_name yesod-core
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.6.18
+Version: 1.6.18.4
Release: 0
Summary: Creation of type-safe, RESTful web applications
License: MIT
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
@@ -90,7 +89,6 @@
%prep
%autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ yesod-core-1.6.18.tar.gz -> yesod-core-1.6.18.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/ChangeLog.md new/yesod-core-1.6.18.4/ChangeLog.md
--- old/yesod-core-1.6.18/ChangeLog.md 2020-03-31 15:21:34.000000000 +0200
+++ new/yesod-core-1.6.18.4/ChangeLog.md 2020-09-22 16:30:38.000000000 +0200
@@ -1,5 +1,21 @@
# ChangeLog for yesod-core
+## 1.6.18.4
+
+* 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](#1697)
+
+## 1.6.18.3
+
+* Remove mention of an oudated Yesod type (`GHandler`) from the docs for `handlerToIO`. [https://github.com/yesodweb/yesod/pull/1695](#1695)
+
+## 1.6.18.2
+
+* Recommends `.yesodroutes` as the file extension for Yesod routes files. [#1686](https://github.com/yesodweb/yesod/pull/1686)
+
+## 1.6.18.1
+
+* Increase the size of CSRF token
+
## 1.6.18
* Add functions for setting description and OG meta [#1663](https://github.com/yesodweb/yesod/pull/1663)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/src/Yesod/Core/Class/Yesod.hs new/yesod-core-1.6.18.4/src/Yesod/Core/Class/Yesod.hs
--- old/yesod-core-1.6.18/src/Yesod/Core/Class/Yesod.hs 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/src/Yesod/Core/Class/Yesod.hs 2020-09-22 16:35:10.000000000 +0200
@@ -531,8 +531,8 @@
=> WidgetFor site ()
-> HandlerFor site (PageContent (Route site))
widgetToPageContent w = do
- jsAttrs <- jsAttributesHandler
- HandlerFor $ \hd -> do
+ jsAttrs <- jsAttributesHandler
+ HandlerFor $ \hd -> do
master <- unHandlerFor getYesod hd
ref <- newIORef mempty
unWidgetFor w WidgetData
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/src/Yesod/Core/Handler.hs new/yesod-core-1.6.18.4/src/Yesod/Core/Handler.hs
--- old/yesod-core-1.6.18/src/Yesod/Core/Handler.hs 2020-02-11 07:44:48.000000000 +0100
+++ new/yesod-core-1.6.18.4/src/Yesod/Core/Handler.hs 2020-09-22 16:36:23.000000000 +0200
@@ -9,6 +9,7 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TemplateHaskell #-}
---------------------------------------------------------
--
-- Module : Yesod.Handler
@@ -369,10 +370,10 @@
getCurrentRoute :: MonadHandler m => m (Maybe (Route (HandlerSite m)))
getCurrentRoute = rheRoute <$> askHandlerEnv
--- | Returns a function that runs 'HandlerT' actions inside @IO@.
+-- | Returns a function that runs 'HandlerFor' actions inside @IO@.
--
--- Sometimes you want to run an inner 'HandlerT' action outside
--- the control flow of an HTTP request (on the outer 'HandlerT'
+-- Sometimes you want to run an inner 'HandlerFor' action outside
+-- the control flow of an HTTP request (on the outer 'HandlerFor'
-- action). For example, you may want to spawn a new thread:
--
-- @
@@ -380,30 +381,30 @@
-- getFooR = do
-- runInnerHandler <- handlerToIO
-- liftIO $ forkIO $ runInnerHandler $ do
--- /Code here runs inside GHandler but on a new thread./
--- /This is the inner GHandler./
+-- /Code here runs inside HandlerFor but on a new thread./
+-- /This is the inner HandlerFor./
-- ...
-- /Code here runs inside the request's control flow./
--- /This is the outer GHandler./
+-- /This is the outer HandlerFor./
-- ...
-- @
--
-- Another use case for this function is creating a stream of
--- server-sent events using 'GHandler' actions (see
+-- server-sent events using 'HandlerFor' actions (see
-- @yesod-eventsource@).
--
--- Most of the environment from the outer 'GHandler' is preserved
--- on the inner 'GHandler', however:
+-- Most of the environment from the outer 'HandlerFor' is preserved
+-- on the inner 'HandlerFor', however:
--
-- * The request body is cleared (otherwise it would be very
-- difficult to prevent huge memory leaks).
--
--- * The cache is cleared (see 'CacheKey').
+-- * The cache is cleared (see 'cached').
--
--- Changes to the response made inside the inner 'GHandler' are
+-- Changes to the response made inside the inner 'HandlerFor' are
-- ignored (e.g., session variables, cookies, response headers).
--- This allows the inner 'GHandler' to outlive the outer
--- 'GHandler' (e.g., on the @forkIO@ example above, a response
+-- This allows the inner 'HandlerFor' to outlive the outer
+-- 'HandlerFor' (e.g., on the @forkIO@ example above, a response
-- may be sent to the client without killing the new thread).
handlerToIO :: MonadIO m => HandlerFor site (HandlerFor site a -> m a)
handlerToIO =
@@ -428,7 +429,7 @@
-- xx From this point onwards, no references to oldHandlerData xx
liftIO $ evaluate (newReq `seq` oldEnv `seq` newState `seq` ())
- -- Return GHandler running function.
+ -- Return HandlerFor running function.
return $ \(HandlerFor f) ->
liftIO $
runResourceT $ withInternalState $ \resState -> do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/src/Yesod/Core/Internal/Request.hs new/yesod-core-1.6.18.4/src/Yesod/Core/Internal/Request.hs
--- old/yesod-core-1.6.18/src/Yesod/Core/Internal/Request.hs 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/src/Yesod/Core/Internal/Request.hs 2020-06-24 09:26:46.000000000 +0200
@@ -129,7 +129,7 @@
-- Already have a token, use it.
Just bs -> Left $ Just $ decodeUtf8With lenientDecode bs
-- Don't have a token, get a random generator and make a new one.
- Nothing -> Right $ fmap Just . randomString 10
+ Nothing -> Right $ fmap Just . randomString 40
| otherwise = Left Nothing
textQueryString :: W.Request -> [(Text, Text)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/src/Yesod/Core/Internal/TH.hs new/yesod-core-1.6.18.4/src/Yesod/Core/Internal/TH.hs
--- old/yesod-core-1.6.18/src/Yesod/Core/Internal/TH.hs 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/src/Yesod/Core/Internal/TH.hs 2020-09-22 16:30:38.000000000 +0200
@@ -141,9 +141,12 @@
let name = mkName namestr
-- Generate as many variable names as the arity indicates
vns <- replicateM (arity - length mtys) $ newName "t"
- -- Base type (site type with variables)
+ -- types that you apply to get a concrete site name
let argtypes = fmap nameToType mtys ++ fmap VarT vns
- site = foldl' AppT (ConT name) argtypes
+ -- typevars that should appear in synonym head
+ let argvars = (fmap mkName . filter isTvar) mtys ++ vns
+ -- Base type (site type with variables)
+ let site = foldl' AppT (ConT name) argtypes
res = map (fmap (parseType . dropBracket)) resS
renderRouteDec <- mkRenderRouteInstance appCxt site res
routeAttrsDec <- mkRouteAttrsInstance appCxt site res
@@ -160,7 +163,7 @@
, renderRouteDec
, [routeAttrsDec]
, resourcesDec
- , if isSub then [] else masterTypeSyns vns site
+ , if isSub then [] else masterTypeSyns argvars site
]
return (dataDec, dispatchDec)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/src/Yesod/Routes/Parse.hs new/yesod-core-1.6.18.4/src/Yesod/Routes/Parse.hs
--- old/yesod-core-1.6.18/src/Yesod/Routes/Parse.hs 2020-02-11 07:44:48.000000000 +0100
+++ new/yesod-core-1.6.18.4/src/Yesod/Routes/Parse.hs 2020-09-22 16:30:38.000000000 +0200
@@ -11,6 +11,7 @@
, TypeTree (..)
, dropBracket
, nameToType
+ , isTvar
) where
import Language.Haskell.TH.Syntax
@@ -35,9 +36,15 @@
[] -> lift res
z -> error $ unlines $ "Overlapping routes: " : map show z
+-- | Same as 'parseRoutes', but uses an external file instead of quasiquotation.
+--
+-- The recommended file extension is @.yesodroutes@.
parseRoutesFile :: FilePath -> Q Exp
parseRoutesFile = parseRoutesFileWith parseRoutes
+-- | Same as 'parseRoutesNoCheck', but uses an external file instead of quasiquotation.
+--
+-- The recommended file extension is @.yesodroutes@.
parseRoutesFileNoCheck :: FilePath -> Q Exp
parseRoutesFileNoCheck = parseRoutesFileWith parseRoutesNoCheck
@@ -258,8 +265,13 @@
ttToType (TTList t) = ListT `AppT` ttToType t
nameToType :: String -> Type
-nameToType t@(h:_) | isLower h = VarT $ mkName t
-nameToType t = ConT $ mkName t
+nameToType t = if isTvar t
+ then VarT $ mkName t
+ else ConT $ mkName t
+
+isTvar :: String -> Bool
+isTvar (h:_) = isLower h
+isTvar _ = False
pieceFromString :: String -> Either (CheckOverlap, String) (CheckOverlap, Piece String)
pieceFromString ('#':'!':x) = Right $ (False, Dynamic $ dropBracket x)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/RouteSpec.hs new/yesod-core-1.6.18.4/test/RouteSpec.hs
--- old/yesod-core-1.6.18/test/RouteSpec.hs 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/RouteSpec.hs 2020-08-01 09:07:41.000000000 +0200
@@ -227,7 +227,7 @@
describe "routing table parsing" $ do
it "recognizes trailing backslashes as line continuation directives" $ do
let routes :: [ResourceTree String]
- routes = $(parseRoutesFile "test/fixtures/routes_with_line_continuations")
+ routes = $(parseRoutesFile "test/fixtures/routes_with_line_continuations.yesodroutes")
length routes @?= 3
describe "overlap checking" $ do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/Compat.hs new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/Compat.hs
--- old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/Compat.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/Compat.hs 2020-09-22 16:30:38.000000000 +0200
@@ -0,0 +1,27 @@
+{-# LANGUAGE
+ TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses
+ , OverloadedStrings, StandaloneDeriving, FlexibleInstances
+ #-}
+module YesodCoreTest.ParameterizedSite.Compat
+ ( Compat (..)
+ ) where
+
+import Yesod.Core
+
+-- | Parameterized without constraints, and we call mkYesod without type vars,
+-- like people used to do before the last 3 commits
+data Compat a b = Compat a b
+
+mkYesod "Compat" [parseRoutes|
+/ HomeR GET
+|]
+
+instance Yesod (Compat a b)
+
+getHomeR :: Handler a b Html
+getHomeR = defaultLayout
+ [whamlet|
+ <p>
+ Stub
+ |]
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/PolyAny.hs new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/PolyAny.hs
--- old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/PolyAny.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/PolyAny.hs 2020-09-22 16:30:38.000000000 +0200
@@ -0,0 +1,26 @@
+{-# LANGUAGE
+ TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses
+ , OverloadedStrings, StandaloneDeriving, FlexibleInstances
+ #-}
+module YesodCoreTest.ParameterizedSite.PolyAny
+ ( PolyAny (..)
+ ) where
+
+import Yesod.Core
+
+-- | Parameterized without constraints
+data PolyAny a = PolyAny a
+
+mkYesod "PolyAny a" [parseRoutes|
+/ HomeR GET
+|]
+
+instance Yesod (PolyAny a)
+
+getHomeR :: Handler a Html
+getHomeR = defaultLayout
+ [whamlet|
+ <p>
+ Stub
+ |]
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/PolyShow.hs new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/PolyShow.hs
--- old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite/PolyShow.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite/PolyShow.hs 2020-09-22 16:30:38.000000000 +0200
@@ -0,0 +1,28 @@
+{-# LANGUAGE
+ TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses
+ , OverloadedStrings, StandaloneDeriving, FlexibleInstances
+ #-}
+module YesodCoreTest.ParameterizedSite.PolyShow
+ ( PolyShow (..)
+ ) where
+
+import Yesod.Core
+
+-- | Parameterized with 'Show' constraint
+data PolyShow a = PolyShow a
+
+mkYesod "(Show a) => PolyShow a" [parseRoutes|
+/ HomeR GET
+|]
+
+instance Show a => Yesod (PolyShow a)
+
+getHomeR :: Show a => Handler a Html
+getHomeR = do
+ PolyShow x <- getYesod
+ defaultLayout
+ [whamlet|
+ <p>
+ Stub #{show x}
+ |]
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite.hs new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite.hs
--- old/yesod-core-1.6.18/test/YesodCoreTest/ParameterizedSite.hs 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/YesodCoreTest/ParameterizedSite.hs 2020-09-22 16:30:38.000000000 +0200
@@ -0,0 +1,37 @@
+{-# LANGUAGE OverloadedStrings #-}
+module YesodCoreTest.ParameterizedSite
+ ( parameterizedSiteTest
+ ) where
+
+import Data.ByteString.Lazy (ByteString)
+import Network.Wai.Test (runSession, request, defaultRequest, assertBodyContains)
+import Test.Hspec (Spec, describe, it)
+import Yesod.Core (YesodDispatch)
+import Yesod.Core.Dispatch (toWaiApp)
+
+import YesodCoreTest.ParameterizedSite.PolyAny (PolyAny (..))
+import YesodCoreTest.ParameterizedSite.PolyShow (PolyShow (..))
+import YesodCoreTest.ParameterizedSite.Compat (Compat (..))
+
+-- These are actually tests for template haskell. So if it compiles, it works
+parameterizedSiteTest :: Spec
+parameterizedSiteTest = describe "Polymorphic Yesod sites" $ do
+ it "Polymorphic unconstrained stub" $ runStub (PolyAny ())
+ it "Polymorphic stub with Show" $ runStub' "1337" (PolyShow 1337)
+ it "Polymorphic unconstrained stub, old-style" $ runStub (Compat () ())
+
+runStub :: YesodDispatch a => a -> IO ()
+runStub stub =
+ let actions = do
+ res <- request defaultRequest
+ assertBodyContains "Stub" res
+ in toWaiApp stub >>= runSession actions
+
+
+runStub' :: YesodDispatch a => ByteString -> a -> IO ()
+runStub' body stub =
+ let actions = do
+ res <- request defaultRequest
+ assertBodyContains "Stub" res
+ assertBodyContains body res
+ in toWaiApp stub >>= runSession actions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/YesodCoreTest.hs new/yesod-core-1.6.18.4/test/YesodCoreTest.hs
--- old/yesod-core-1.6.18/test/YesodCoreTest.hs 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/YesodCoreTest.hs 2020-09-22 16:30:38.000000000 +0200
@@ -11,6 +11,7 @@
import YesodCoreTest.InternalRequest
import YesodCoreTest.ErrorHandling
import YesodCoreTest.Cache
+import YesodCoreTest.ParameterizedSite
import qualified YesodCoreTest.WaiSubsite as WaiSubsite
import qualified YesodCoreTest.Redirect as Redirect
import qualified YesodCoreTest.JsLoader as JsLoader
@@ -43,6 +44,7 @@
internalRequestTest
errorHandlingTest
cacheTest
+ parameterizedSiteTest
WaiSubsite.specs
Redirect.specs
JsLoader.specs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/fixtures/routes_with_line_continuations new/yesod-core-1.6.18.4/test/fixtures/routes_with_line_continuations
--- old/yesod-core-1.6.18/test/fixtures/routes_with_line_continuations 2020-01-18 18:38:53.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/fixtures/routes_with_line_continuations 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
--- This fixture to test line continuations is in a separate file
--- because when I put it in an in-line quasi-quotation, the compiler
--- performed the line continuations processing itself.
-
-/foo1 \
- Foo1
-/foo2 Foo2
-/foo3 \
- Foo3 \
- GET POST \
- !foo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/test/fixtures/routes_with_line_continuations.yesodroutes new/yesod-core-1.6.18.4/test/fixtures/routes_with_line_continuations.yesodroutes
--- old/yesod-core-1.6.18/test/fixtures/routes_with_line_continuations.yesodroutes 1970-01-01 01:00:00.000000000 +0100
+++ new/yesod-core-1.6.18.4/test/fixtures/routes_with_line_continuations.yesodroutes 2020-08-01 09:07:41.000000000 +0200
@@ -0,0 +1,11 @@
+-- This fixture to test line continuations is in a separate file
+-- because when I put it in an in-line quasi-quotation, the compiler
+-- performed the line continuations processing itself.
+
+/foo1 \
+ Foo1
+/foo2 Foo2
+/foo3 \
+ Foo3 \
+ GET POST \
+ !foo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yesod-core-1.6.18/yesod-core.cabal new/yesod-core-1.6.18.4/yesod-core.cabal
--- old/yesod-core-1.6.18/yesod-core.cabal 2020-03-31 15:21:34.000000000 +0200
+++ new/yesod-core-1.6.18.4/yesod-core.cabal 2020-09-22 16:35:45.000000000 +0200
@@ -1,5 +1,5 @@
name: yesod-core
-version: 1.6.18
+version: 1.6.18.4
license: MIT
license-file: LICENSE
author: Michael Snoyman
participants (1)
-
root