Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-yesod-core for openSUSE:Factory 
checked in at 2023-07-18 21:54:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-yesod-core (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-yesod-core.new.3193 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-yesod-core"

Tue Jul 18 21:54:25 2023 rev:16 rq:1098956 version:1.6.24.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-yesod-core/ghc-yesod-core.changes    
2023-04-04 21:25:20.842871199 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-yesod-core.new.3193/ghc-yesod-core.changes  
2023-07-18 21:54:40.226476174 +0200
@@ -1,0 +2,8 @@
+Thu Jul 13 03:24:33 UTC 2023 - Peter Simons <psim...@suse.com>
+
+- Update yesod-core to version 1.6.24.3.
+  ## 1.6.24.3
+
+  * Fix subsite-to-subsite dispatch 
[#1805](https://github.com/yesodweb/yesod/pull/1805)
+
+-------------------------------------------------------------------

Old:
----
  yesod-core-1.6.24.2.tar.gz

New:
----
  yesod-core-1.6.24.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-yesod-core.spec ++++++
--- /var/tmp/diff_new_pack.H4cyfZ/_old  2023-07-18 21:54:40.902479953 +0200
+++ /var/tmp/diff_new_pack.H4cyfZ/_new  2023-07-18 21:54:40.906479976 +0200
@@ -20,7 +20,7 @@
 %global pkgver %{pkg_name}-%{version}
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.6.24.2
+Version:        1.6.24.3
 Release:        0
 Summary:        Creation of type-safe, RESTful web applications
 License:        MIT

++++++ yesod-core-1.6.24.2.tar.gz -> yesod-core-1.6.24.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/ChangeLog.md 
new/yesod-core-1.6.24.3/ChangeLog.md
--- old/yesod-core-1.6.24.2/ChangeLog.md        2023-03-01 07:22:34.000000000 
+0100
+++ new/yesod-core-1.6.24.3/ChangeLog.md        2023-07-13 05:24:02.000000000 
+0200
@@ -1,5 +1,9 @@
 # ChangeLog for yesod-core
 
+## 1.6.24.3
+
+* Fix subsite-to-subsite dispatch 
[#1805](https://github.com/yesodweb/yesod/pull/1805)
+
 ## 1.6.24.2
 
 * No star is type [#1797](https://github.com/yesodweb/yesod/pull/1797)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/src/Yesod/Core/Internal/TH.hs 
new/yesod-core-1.6.24.3/src/Yesod/Core/Internal/TH.hs
--- old/yesod-core-1.6.24.2/src/Yesod/Core/Internal/TH.hs       2023-02-09 
07:24:12.000000000 +0100
+++ new/yesod-core-1.6.24.3/src/Yesod/Core/Internal/TH.hs       2023-07-13 
05:24:02.000000000 +0200
@@ -4,6 +4,7 @@
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE RankNTypes #-}
 module Yesod.Core.Internal.TH where
 
 import Prelude hiding (exp)
@@ -22,6 +23,7 @@
 
 import Yesod.Routes.TH
 import Yesod.Routes.Parse
+import Yesod.Core.Content (ToTypedContent (..))
 import Yesod.Core.Types
 import Yesod.Core.Class.Dispatch
 import Yesod.Core.Internal.Run
@@ -167,18 +169,10 @@
             ]
     return (dataDec, dispatchDec)
 
-mkMDS :: (Exp -> Q Exp) -> Q Exp -> MkDispatchSettings a site b
-mkMDS f rh = MkDispatchSettings
+mkMDS :: (Exp -> Q Exp) -> Q Exp -> Q Exp -> MkDispatchSettings a site b
+mkMDS f rh sd = MkDispatchSettings
     { mdsRunHandler = rh
-    , mdsSubDispatcher =
-        [|\parentRunner getSub toParent env -> yesodSubDispatch
-                                 YesodSubRunnerEnv
-                                    { ysreParentRunner = parentRunner
-                                    , ysreGetSub = getSub
-                                    , ysreToParentRoute = toParent
-                                    , ysreParentEnv = env
-                                    }
-                              |]
+    , mdsSubDispatcher = sd
     , mdsGetPathInfo = [|W.pathInfo|]
     , mdsSetPathInfo = [|\p r -> r { W.pathInfo = p }|]
     , mdsMethod = [|W.requestMethod|]
@@ -199,7 +193,20 @@
                    -> [ResourceTree c]          -- ^ The resource
                    -> DecsQ
 mkDispatchInstance master cxt f res = do
-    clause' <- mkDispatchClause (mkMDS f [|yesodRunner|]) res
+    clause' <- 
+        mkDispatchClause 
+            (mkMDS 
+                f 
+                [|yesodRunner|] 
+                [|\parentRunner getSub toParent env -> yesodSubDispatch
+                    YesodSubRunnerEnv
+                    { ysreParentRunner = parentRunner
+                    , ysreGetSub = getSub
+                    , ysreToParentRoute = toParent
+                    , ysreParentEnv = env
+                    }
+                |])
+            res
     let thisDispatch = FunD 'yesodDispatch [clause']
     return [instanceD cxt yDispatch [thisDispatch]]
   where
@@ -207,7 +214,13 @@
 
 mkYesodSubDispatch :: [ResourceTree a] -> Q Exp
 mkYesodSubDispatch res = do
-    clause' <- mkDispatchClause (mkMDS return [|subHelper|]) res
+    clause' <- 
+        mkDispatchClause
+            (mkMDS 
+                return 
+                [|subHelper|] 
+                [|subTopDispatch|]) 
+        res
     inner <- newName "inner"
     let innerFun = FunD inner [clause']
     helper <- newName "helper"
@@ -218,6 +231,26 @@
                     [innerFun]
                 ]
     return $ LetE [fun] (VarE helper)
+    
+subTopDispatch :: 
+    (YesodSubDispatch sub master) =>
+        (forall content. ToTypedContent content =>
+            SubHandlerFor child master content ->
+            YesodSubRunnerEnv child master ->
+            Maybe (Route child) ->
+            W.Application
+        ) ->
+        (mid -> sub) ->
+        (Route sub -> Route mid) ->
+        YesodSubRunnerEnv mid master ->
+        W.Application
+subTopDispatch _ getSub toParent env = yesodSubDispatch
+            (YesodSubRunnerEnv
+            { ysreParentRunner = ysreParentRunner env
+            , ysreGetSub = getSub . ysreGetSub env
+            , ysreToParentRoute = ysreToParentRoute env . toParent
+            , ysreParentEnv = ysreParentEnv env
+            })
 
 instanceD :: Cxt -> Type -> [Dec] -> Dec
 instanceD = InstanceD Nothing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/test/YesodCoreTest/SubSub.hs 
new/yesod-core-1.6.24.3/test/YesodCoreTest/SubSub.hs
--- old/yesod-core-1.6.24.2/test/YesodCoreTest/SubSub.hs        1970-01-01 
01:00:00.000000000 +0100
+++ new/yesod-core-1.6.24.3/test/YesodCoreTest/SubSub.hs        2023-07-13 
05:24:02.000000000 +0200
@@ -0,0 +1,50 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+module YesodCoreTest.SubSub where
+
+import Test.Hspec
+
+import Yesod.Core
+import Network.Wai.Test
+import qualified Data.Text as T
+import qualified Data.ByteString.Lazy.Char8 as L8
+
+import YesodCoreTest.SubSubData
+
+data App = App { getOuter :: OuterSubSite }
+
+instance Yesod App
+
+getSubR :: SubHandlerFor InnerSubSite master T.Text
+getSubR = return $ T.pack "sub"
+
+instance YesodSubDispatch OuterSubSite master where
+  yesodSubDispatch = $(mkYesodSubDispatch resourcesOuterSubSite)
+
+instance YesodSubDispatch InnerSubSite master where
+  yesodSubDispatch = $(mkYesodSubDispatch resourcesInnerSubSite)
+
+mkYesod "App" [parseRoutes|
+/ OuterSubSiteR OuterSubSite getOuter
+|]
+
+app :: App
+app = App { getOuter = OuterSubSite { getInner = InnerSubSite }}
+
+runner :: Session () -> IO ()
+runner f = toWaiApp app >>= runSession f
+
+case_subSubsite :: IO ()
+case_subSubsite = runner $ do
+  res <- request defaultRequest
+  assertBody (L8.pack "sub") res
+  assertStatus 200 res
+
+subSubTest :: Spec
+subSubTest = describe "YesodCoreTest.SubSub" $ do
+  it "sub_subsite" case_subSubsite
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/test/YesodCoreTest/SubSubData.hs 
new/yesod-core-1.6.24.3/test/YesodCoreTest/SubSubData.hs
--- old/yesod-core-1.6.24.2/test/YesodCoreTest/SubSubData.hs    1970-01-01 
01:00:00.000000000 +0100
+++ new/yesod-core-1.6.24.3/test/YesodCoreTest/SubSubData.hs    2023-07-13 
05:24:02.000000000 +0200
@@ -0,0 +1,20 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TypeFamilies #-}
+
+module YesodCoreTest.SubSubData where
+
+import Yesod.Core
+
+
+data OuterSubSite = OuterSubSite { getInner :: InnerSubSite }
+
+data InnerSubSite = InnerSubSite
+
+mkYesodSubData "InnerSubSite" [parseRoutes|
+/ SubR GET
+|]
+
+mkYesodSubData "OuterSubSite" [parseRoutes|
+/ InnerSubSiteR InnerSubSite getInner
+|]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/test/YesodCoreTest.hs 
new/yesod-core-1.6.24.3/test/YesodCoreTest.hs
--- old/yesod-core-1.6.24.2/test/YesodCoreTest.hs       2023-02-09 
07:24:12.000000000 +0100
+++ new/yesod-core-1.6.24.3/test/YesodCoreTest.hs       2023-07-13 
05:24:02.000000000 +0200
@@ -9,6 +9,7 @@
 import YesodCoreTest.Links
 import YesodCoreTest.Header
 import YesodCoreTest.NoOverloadedStrings
+import YesodCoreTest.SubSub
 import YesodCoreTest.InternalRequest
 import YesodCoreTest.ErrorHandling
 import YesodCoreTest.Cache
@@ -43,6 +44,7 @@
       mediaTest
       linksTest
       noOverloadedTest
+      subSubTest
       internalRequestTest
       errorHandlingTest
       cacheTest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yesod-core-1.6.24.2/yesod-core.cabal 
new/yesod-core-1.6.24.3/yesod-core.cabal
--- old/yesod-core-1.6.24.2/yesod-core.cabal    2023-03-01 07:22:34.000000000 
+0100
+++ new/yesod-core-1.6.24.3/yesod-core.cabal    2023-07-13 05:24:02.000000000 
+0200
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.6.24.2
+version:         1.6.24.3
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <mich...@snoyman.com>
@@ -173,6 +173,8 @@
                    YesodCoreTest.StubSslOnly
                    YesodCoreTest.StubStrictSameSite
                    YesodCoreTest.StubUnsecured
+                   YesodCoreTest.SubSub
+                   YesodCoreTest.SubSubData
                    YesodCoreTest.WaiSubsite
                    YesodCoreTest.Widget
                    YesodCoreTest.YesodTest

Reply via email to