snap 1.1.3.1 → 1.1.3.2
raw patch · 8 files changed
+125/−115 lines, 8 filesdep ~aesondep ~basedep ~bytestringnew-uploader
Dependency ranges changed: aeson, base, bytestring, containers, directory-tree, fail, mtl, semigroups, text, transformers
Files
- README.md +1/−1
- changelog.md +25/−0
- snap.cabal +66/−82
- src/Snap/Snaplet/Auth/Backends/JsonFile.hs +1/−0
- src/Snap/Snaplet/Auth/Handlers.hs +1/−0
- src/Snap/Snaplet/Heist/Internal.hs +1/−0
- src/Snap/Snaplet/Internal/Types.hs +2/−2
- test/suite/Blackbox/Tests.hs +28/−30
README.md view
@@ -1,7 +1,7 @@ Snap Framework [](https://hackage.haskell.org/package/snap) ============== -[](https://travis-ci.org/snapframework/snap)+[](https://github.com/snapframework/snap/actions) Snap is a simple and fast web development framework and server written in Haskell. For more information about Snap, read the `README.SNAP.md` or visit
+ changelog.md view
@@ -0,0 +1,25 @@+## 1.1.3.1++ - Update for GHC 8.10++<!-- n.b. where did the rest of the change log entries go?? -->++## 1.1.1.0++### Added++ - GHC 8.4 support++## 1.1.0.0++### Added++ - Support for aeson 1.x+ - GHC 8.2 support+ - New [lookupByEmail](src/Snap/Snaplet/Auth/AuthManager.hs#L62) function in the auth snaplet++## 1.0.0.0+### Removed++ - Removed support for `iteratees` in favor of + [io-streams](https://hackage.haskell.org/package/io-streams)
snap.cabal view
@@ -1,5 +1,6 @@+cabal-version: 2.2 name: snap-version: 1.1.3.1+version: 1.1.3.2 synopsis: Top-level package for the Snap Web Framework description: This is the top-level package for the official Snap Framework libraries.@@ -23,31 +24,31 @@ Note: since version 1.0, the \"snap\" executable program for generating starter projects is provided by the @snap-templates@ package. -license: BSD3+license: BSD-3-Clause license-file: LICENSE author: Ozgun Ataman, Doug Beardsley, Gregory Collins, Carl Howells, Chris Smith maintainer: snap@snapframework.com build-type: Simple-cabal-version: >= 1.10 homepage: http://snapframework.com/ bug-reports: https://github.com/snapframework/snap/issues category: Web, Snap -Tested-With:- GHC == 8.0.2,- GHC == 8.2.2,- GHC == 8.4.4,- GHC == 8.6.3,- GHC == 8.8.1,- GHC == 8.10.2+tested-with:+ GHC == 8.8.4+ GHC == 8.10.7+ GHC == 9.0.2+ GHC == 9.2.8+ GHC == 9.4.5+ GHC == 9.6.2 extra-source-files:- .ghci+ .ghci, CONTRIBUTORS, LICENSE, README.md, README.SNAP.md,+ changelog.md, design.md, extra/hscolour.css, extra/haddock.css,@@ -58,9 +59,9 @@ test/db.cfg, test/devel.cfg, test/good.tpl,- test/snaplets/baz/devel.cfg- test/snaplets/baz/templates/bazconfig.tpl- test/snaplets/baz/templates/bazpage.tpl+ test/snaplets/baz/devel.cfg,+ test/snaplets/baz/templates/bazconfig.tpl,+ test/snaplets/baz/templates/bazpage.tpl, test/snaplets/embedded/extra-templates/extra.tpl, test/snaplets/embedded/snaplets/heist/templates/embeddedpage.tpl, test/snaplets/foosnaplet/devel.cfg,@@ -74,12 +75,43 @@ test/snaplets/heist/templates/splicepage.tpl, test/snaplets/heist/templates/userpage.tpl -Library+common universal default-language: Haskell2010++ build-depends:+ , base >= 4.5 && < 5++ if !impl(ghc >= 8.0)+ build-depends:+ , semigroups >= 0.16 && < 0.19+ , fail >= 4.9 && < 4.10++ default-extensions:+ BangPatterns+ CPP+ DeriveDataTypeable+ ExistentialQuantification+ FlexibleContexts+ FlexibleInstances+ GeneralizedNewtypeDeriving+ MultiParamTypeClasses+ NoMonomorphismRestriction+ OverloadedStrings+ PackageImports+ Rank2Types+ RecordWildCards+ ScopedTypeVariables+ TemplateHaskell+ TypeFamilies+ TypeOperators+ TypeSynonymInstances++Library+ import: universal hs-source-dirs: src exposed-modules:- Snap,+ Snap Snap.Snaplet Snap.Snaplet.Heist Snap.Snaplet.HeistNoClass@@ -110,64 +142,39 @@ Snap.Snaplet.Session.SecureCookie build-depends:- aeson >= 0.6 && < 1.5,- attoparsec >= 0.10 && < 0.14,- base >= 4 && < 4.15,- bytestring >= 0.9.1 && < 0.11,+ aeson >= 0.6 && < 2.2.0.0,+ attoparsec >= 0.10 && < 0.15,+ bytestring >= 0.9.1 && < 0.13, cereal >= 0.3 && < 0.6, clientsession >= 0.8 && < 0.10, configurator >= 0.1 && < 0.4, containers >= 0.2 && < 0.7, directory >= 1.1 && < 1.4,- directory-tree >= 0.10 && < 0.13,- dlist >= 0.5 && < 0.9,- fail >= 4.9 && < 4.10,+ directory-tree >= 0.11 && < 0.13,+ dlist >= 0.5 && < 1.1, filepath >= 1.3 && < 1.5, -- hashable is broken from 1.2.0.0 through 1.2.0.5 -- snap does work with hashable 1.1.*, but some have complained that -- the version disjunction causes problems with dependency resolution.- hashable >= 1.2.0.6 && < 1.4,+ hashable >= 1.2.0.6 && < 1.5, heist >= 1.1 && < 1.2,- lens >= 3.7.6 && < 4.20,+ lens >= 3.7.6 && < 5.3, lifted-base >= 0.2 && < 0.3, map-syntax >= 0.2 && < 0.4, monad-control >= 0.3 && < 1.1,- mtl >= 2.0 && < 2.3,- mwc-random >= 0.8 && < 0.15,+ mtl >= 2.0 && < 2.4,+ mwc-random >= 0.8 && < 0.16, pwstore-fast >= 2.2 && < 2.5, snap-core >= 1.0 && < 1.1, snap-server >= 1.0 && < 1.2, stm >= 2.2 && < 2.6,- text >= 0.11 && < 1.3,- time >= 1.1 && < 1.10,- transformers >= 0.2 && < 0.6,+ text >= 1.1.1.0 && < 2.1,+ time >= 1.1 && < 1.14,+ transformers >= 0.2 && < 0.7, transformers-base >= 0.4 && < 0.5, unordered-containers >= 0.1.4 && < 0.3, xmlhtml >= 0.1 && < 0.3 - if !impl(ghc >= 8.0)- build-depends: semigroups >= 0.16 && < 0.19-- default-extensions:- BangPatterns,- CPP,- DeriveDataTypeable,- ExistentialQuantification,- FlexibleContexts,- FlexibleInstances,- GeneralizedNewtypeDeriving,- MultiParamTypeClasses,- NoMonomorphismRestriction,- OverloadedStrings,- PackageImports,- Rank2Types,- RecordWildCards,- ScopedTypeVariables,- TemplateHaskell,- TypeFamilies,- TypeOperators,- TypeSynonymInstances- if impl(ghc >= 6.12.0) ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -fno-warn-orphans -fno-warn-unused-do-bind@@ -176,16 +183,19 @@ -fno-warn-orphans Test-suite testsuite- default-language: Haskell2010+ import: universal hs-source-dirs: src test/suite type: exitcode-stdio-1.0 main-is: TestSuite.hs + autogen-modules:+ Paths_snap+ other-modules: Blackbox.Tests Paths_snap SafeCWD- Snap,+ Snap Snap.Snaplet Snap.Snaplet.Auth Snap.Snaplet.Auth.AuthManager@@ -234,7 +244,6 @@ aeson, async >= 2.0.1.5 && < 2.3, attoparsec,- base, bytestring, cereal, clientsession,@@ -244,7 +253,6 @@ directory, directory-tree, dlist,- fail, filepath, hashable, heist,@@ -257,7 +265,7 @@ mtl, mwc-random, pwstore-fast,- QuickCheck >= 2.4.2 && < 2.14,+ QuickCheck >= 2.4.2 && < 2.15, smallcheck >= 1.1.1 && < 1.3, snap-core, snap-server,@@ -274,30 +282,6 @@ transformers-base, unordered-containers, xmlhtml-- if !impl(ghc >= 8.0)- build-depends: semigroups-- default-extensions:- BangPatterns,- CPP,- DeriveDataTypeable,- ExistentialQuantification,- FlexibleContexts,- FlexibleInstances,- GeneralizedNewtypeDeriving,- MultiParamTypeClasses,- NoMonomorphismRestriction,- OverloadedStrings,- PackageImports,- Rank2Types,- RecordWildCards,- ScopedTypeVariables,- TemplateHaskell,- TypeFamilies,- TypeOperators,- TypeSynonymInstances- source-repository head type: git
src/Snap/Snaplet/Auth/Backends/JsonFile.hs view
@@ -11,6 +11,7 @@ import Control.Applicative ((<|>))+import Control.Monad (join) import Control.Monad.State import Control.Concurrent.STM import Data.Aeson
src/Snap/Snaplet/Auth/Handlers.hs view
@@ -11,6 +11,7 @@ ------------------------------------------------------------------------------ import Control.Applicative+import Control.Monad (join, liftM, liftM2) import Control.Monad.State import Control.Monad.Trans.Maybe import Data.ByteString (ByteString)
src/Snap/Snaplet/Heist/Internal.hs view
@@ -3,6 +3,7 @@ import Prelude import Control.Lens+import Control.Monad (liftM) import Control.Monad.State import qualified Data.ByteString as B import Data.Char
src/Snap/Snaplet/Internal/Types.hs view
@@ -18,10 +18,10 @@ ------------------------------------------------------------------------------ import Control.Applicative (Alternative) import Control.Lens (ALens', makeLenses, set)-import Control.Monad (liftM)+import Control.Monad (MonadPlus, liftM) import Control.Monad.Base (MonadBase (..)) import Control.Monad.Fail (MonadFail)-import Control.Monad.Reader (MonadIO (..), MonadPlus, MonadReader (ask, local))+import Control.Monad.Reader (MonadIO (..), MonadReader (ask, local)) import Control.Monad.State.Class (MonadState (get, put), gets) import Control.Monad.Trans.Control (MonadBaseControl (..)) import Control.Monad.Trans.Writer (WriterT)
test/suite/Blackbox/Tests.hs view
@@ -272,38 +272,36 @@ flip finally (remove badTplNew) $ testWithCwd' "admin/reload" $ \cwd' b -> do- let cwd = S.pack cwd'- let response =- [T.concat [ "Error reloading site!\n\nInitializer "- , "threw an exception...\n"- , T.pack cwd'- , "/snaplets/heist"- , "/templates/bad.tpl \""- , T.pack cwd'- , "/snaplets/heist/templates"- , "/bad.tpl\" (line 2, column 1):\nunexpected "- , "end of input\nexpecting \"=\", \"/\" or "- , "\">\"\n\n...but before it died it generated "- , "the following output:\nInitializing app @ /\n"- , "Initializing heist @ /heist\n\n" ]+ let cwd = T.pack cwd' - ,T.concat [ "Error reloading site!\n\nInitializer "- , "threw an exception...\n"- , T.pack cwd'- , "/snaplets/heist"- , "/templates/bad.tpl \""- , T.pack cwd'- , "/snaplets/heist/templates"- , "/bad.tpl\" (line 2, column 1):\nunexpected "- , "end of input\nexpecting \"=\", \"/\" or "- , "\">\"\n"- , "CallStack (from HasCallStack):\n error, called at src/Snap/Snaplet/Heist/Internal.hs:74:35 in main:Snap.Snaplet.Heist.Internal\n"- , "\n...but before it died it generated "- , "the following output:\nInitializing app @ /\n"- , "Initializing heist @ /heist\n\n" ]- ]+ let prefix = T.intercalate "\n"+ [ "Error reloading site!"+ , ""+ , "Initializer threw an exception..."+ , T.concat+ [ cwd, "/snaplets/heist/templates/bad.tpl \""+ , cwd, "/snaplets/heist/templates/bad.tpl\" (line 2, column 1):"+ ]+ , "unexpected end of input"+ , "expecting \"=\", \"/\" or \">\"" - assertBool "admin/reload" $ (T.decodeUtf8 b) `elem` response + -- Building with the latest dependency versions produces the following:+ -- "CallStack (from HasCallStack):"+ -- " error, called at src/Snap/Snaplet/Heist/Internal.hs:75:35 in main:Snap.Snaplet.Heist.Internal"+ ]++ let suffix = T.intercalate "\n"+ [ "...but before it died it generated the following output:"+ , "Initializing app @ /"+ , "Initializing heist @ /heist"+ , ""+ , ""+ ]++ let response = T.decodeUtf8 b++ assertEqual "admin/reload" prefix (T.take (T.length prefix) response)+ assertEqual "admin/reload" suffix (T.takeEnd (T.length suffix) response) copyFile goodTplOrig goodTplNew