diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.travis.yml b/.travis.yml index 1e67206..1d712c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,12 +10,12 @@ dist: trusty language: c services: - - redis-server + - redis-server addons: apt: packages: - - libgmp-dev + - libgmp-dev postgresql: "9.3" cache: @@ -25,8 +25,7 @@ cache: matrix: include: - - env: STACKARGS="--resolver=lts-11" - - env: STACKARGS="--resolver=lts-12" + - env: STACKARGS="--resolver=lts-15" - env: STACKARGS="--resolver=nightly" allow_failures: - env: STACKARGS="--resolver=nightly" diff --git a/examples/serversession-example-yesod-persistent/Model.hs b/examples/serversession-example-yesod-persistent/Model.hs index cbe20c4..91ab7b5 100644 --- a/examples/serversession-example-yesod-persistent/Model.hs +++ b/examples/serversession-example-yesod-persistent/Model.hs @@ -1,3 +1,6 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE UndecidableInstances #-} module Model where import ClassyPrelude.Yesod diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..b486ac5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,44 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1619345332, + "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "master", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1620323686, + "narHash": "sha256-+gfcE3YTGl+Osc8HzOUXSFO8/0PAK4J8ZxCXZ4hjXHI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dfacb8329b2236688b9a1e705116203a213b283a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..42a5ecf --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +{ + inputs = { + nixpkgs = { + type = "github"; + owner = "NixOS"; + repo = "nixpkgs"; + ref = "master"; + }; + flake-utils = { + type = "github"; + owner = "numtide"; + repo = "flake-utils"; + ref = "master"; + }; + }; + + outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem + (system: + let pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in { + devShell = pkgs.mkShell { + name = "uni2work-serversession"; + nativeBuildInputs = with pkgs.haskellPackages; [ stack ]; + }; + } + ); +} diff --git a/nixpkgs.nix b/nixpkgs.nix new file mode 100644 index 0000000..4492a1c --- /dev/null +++ b/nixpkgs.nix @@ -0,0 +1,8 @@ +import ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in fetchTarball { + url = "https://api.github.com/repos/NixOS/nixpkgs/tarball/${lock.nodes.nixpkgs.locked.rev}"; + sha256 = lock.nodes.nixpkgs.locked.narHash; + } +) diff --git a/serversession-backend-acid-state/changelog.md b/serversession-backend-acid-state/changelog.md index e69de29..2de1281 100644 --- a/serversession-backend-acid-state/changelog.md +++ b/serversession-backend-acid-state/changelog.md @@ -0,0 +1,3 @@ +# 1.0.4 + +* bump acid-state to 0.16 diff --git a/serversession-backend-acid-state/serversession-backend-acid-state.cabal b/serversession-backend-acid-state/serversession-backend-acid-state.cabal index 3252955..096c702 100644 --- a/serversession-backend-acid-state/serversession-backend-acid-state.cabal +++ b/serversession-backend-acid-state/serversession-backend-acid-state.cabal @@ -1,5 +1,6 @@ +cabal-version: >= 1.10 name: serversession-backend-acid-state -version: 1.0.3 +version: 1.0.4 license: MIT license-file: LICENSE author: Felipe Lessa @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Storage backend for serversession using acid-state. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -19,10 +19,11 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* - , acid-state == 0.16.* + , acid-state >= 0.16 , containers , mtl , safecopy >= 0.8 && <0.11 @@ -32,7 +33,7 @@ library exposed-modules: Web.ServerSession.Backend.Acid Web.ServerSession.Backend.Acid.Internal - extensions: + default-extensions: ConstraintKinds DeriveDataTypeable FlexibleContexts @@ -47,6 +48,7 @@ library test-suite tests + default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: tests build-depends: @@ -57,7 +59,7 @@ test-suite tests , serversession , serversession-backend-acid-state main-is: Main.hs - extensions: + default-extensions: CPP ghc-options: -Wall -threaded "-with-rtsopts=-N -s -M1G -c" -rtsopts if flag(lib-Werror) diff --git a/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs b/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs index 57d1412..8fca833 100644 --- a/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs +++ b/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs @@ -109,7 +109,7 @@ instance SafeCopy SS.SessionMap where -- | We can't @deriveSafeCopy 0 'base ''SS.SessionId@ as -- otherwise we'd require an unneeded @SafeCopy sess@. -instance SafeCopy (SS.SessionId sess) where +instance Typeable sess => SafeCopy (SS.SessionId sess) where putCopy = contain . safePut . SSI.unS getCopy = contain $ SSI.S <$> safeGet @@ -118,7 +118,7 @@ instance SafeCopy (SS.SessionId sess) where -- | We can't @deriveSafeCopy 0 'base ''SS.Session@ due to the -- required context. -instance SafeCopy (SS.Decomposed sess) => SafeCopy (SS.Session sess) where +instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (SS.Session sess) where putCopy (SS.Session key authId data_ createdAt accessedAt) = contain $ do put_t <- getSafePut safePut key @@ -140,7 +140,7 @@ instance SafeCopy (SS.Decomposed sess) => SafeCopy (SS.Session sess) where -- | We can't @deriveSafeCopy 0 'base ''ServerSessionAcidState@ due -- to the required context. -instance SafeCopy (SS.Decomposed sess) => SafeCopy (ServerSessionAcidState sess) where +instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (ServerSessionAcidState sess) where putCopy (ServerSessionAcidState sits aits) = contain $ do safePut (HM.toList sits) safePut (HM.toList aits) @@ -279,31 +279,27 @@ data DeleteAllSessionsOfAuthId sess = DeleteAllSessionsOfAuthId SS.AuthId derivi data InsertSession sess = InsertSession (SS.Session sess) deriving (Typeable) data ReplaceSession sess = ReplaceSession (SS.Session sess) deriving (Typeable) -instance SafeCopy (GetSession sess) where +instance Typeable sess => SafeCopy (GetSession sess) where putCopy (GetSession v) = contain $ safePut v getCopy = contain $ GetSession <$> safeGet - errorTypeName _ = "GetSession" - -instance SafeCopy (DeleteSession sess) where +instance Typeable sess => SafeCopy (DeleteSession sess) where putCopy (DeleteSession v) = contain $ safePut v getCopy = contain $ DeleteSession <$> safeGet errorTypeName _ = "DeleteSession" -instance SafeCopy (DeleteAllSessionsOfAuthId sess) where +instance Typeable sess => SafeCopy (DeleteAllSessionsOfAuthId sess) where putCopy (DeleteAllSessionsOfAuthId v) = contain $ safePut v getCopy = contain $ DeleteAllSessionsOfAuthId <$> safeGet errorTypeName _ = "DeleteAllSessionsOfAuthId" -instance SafeCopy (SS.Decomposed sess) => SafeCopy (InsertSession sess) where +instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (InsertSession sess) where putCopy (InsertSession v) = contain $ safePut v getCopy = contain $ InsertSession <$> safeGet - errorTypeName _ = "InsertSession" - -instance SafeCopy (SS.Decomposed sess) => SafeCopy (ReplaceSession sess) where +instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (ReplaceSession sess) where putCopy (ReplaceSession v) = contain $ safePut v getCopy = contain $ ReplaceSession <$> safeGet diff --git a/serversession-backend-persistent/changelog.md b/serversession-backend-persistent/changelog.md index bee723b..41730b8 100644 --- a/serversession-backend-persistent/changelog.md +++ b/serversession-backend-persistent/changelog.md @@ -1,3 +1,5 @@ +1.0.5 +* bump persistent to 2.10 1.0.4 * Default auth id to NULL to fix a MySQL bug. 1.0.3 diff --git a/serversession-backend-persistent/serversession-backend-persistent.cabal b/serversession-backend-persistent/serversession-backend-persistent.cabal index f06080a..b516bfe 100644 --- a/serversession-backend-persistent/serversession-backend-persistent.cabal +++ b/serversession-backend-persistent/serversession-backend-persistent.cabal @@ -1,5 +1,6 @@ +cabal-version: >= 1.10 name: serversession-backend-persistent -version: 1.0.4 +version: 1.0.5 license: MIT license-file: LICENSE author: Felipe Lessa @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Storage backend for serversession using persistent and an RDBMS. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -19,6 +19,7 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* @@ -27,7 +28,7 @@ library , bytestring , cereal >= 0.4 , path-pieces - , persistent >= 2.1 + , persistent >= 2.10 , tagged >= 0.7 , text , time @@ -39,7 +40,7 @@ library Web.ServerSession.Backend.Persistent Web.ServerSession.Backend.Persistent.Internal.Impl Web.ServerSession.Backend.Persistent.Internal.Types - extensions: + default-extensions: DeriveDataTypeable EmptyDataDecls FlexibleContexts @@ -62,6 +63,7 @@ library test-suite tests + default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: tests build-depends: @@ -79,7 +81,7 @@ test-suite tests , serversession , serversession-backend-persistent - extensions: + default-extensions: OverloadedStrings TemplateHaskell main-is: Main.hs diff --git a/serversession-backend-persistent/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs b/serversession-backend-persistent/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs index 623857c..36cc39e 100644 --- a/serversession-backend-persistent/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs +++ b/serversession-backend-persistent/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs @@ -96,6 +96,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe ["Eq", "Ord", "Show", "Typeable"] M.mempty False + Nothing where pfd :: P.EntityField (PersistentSession sess) typ -> P.FieldDef pfd = P.persistFieldDef @@ -142,8 +143,10 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe (P.SqlOther "SqlType unset for key") [] True - P.NoReference] + P.NoReference + Nothing] [])) + Nothing persistFieldDef PersistentSessionKey = P.FieldDef (P.HaskellName "key") @@ -153,6 +156,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe ["maxlen=30"] True P.NoReference + Nothing persistFieldDef PersistentSessionAuthId = P.FieldDef (P.HaskellName "authId") @@ -162,6 +166,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe ["Maybe", "default=NULL"] True P.NoReference + Nothing persistFieldDef PersistentSessionSession = P.FieldDef (P.HaskellName "session") @@ -171,6 +176,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe [] True P.NoReference + Nothing persistFieldDef PersistentSessionCreatedAt = P.FieldDef (P.HaskellName "createdAt") @@ -180,6 +186,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe [] True P.NoReference + Nothing persistFieldDef PersistentSessionAccessedAt = P.FieldDef (P.HaskellName "accessedAt") @@ -189,6 +196,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe [] True P.NoReference + Nothing persistIdField = PersistentSessionId diff --git a/serversession-backend-redis/changelog.md b/serversession-backend-redis/changelog.md index a126c38..ecd3c31 100644 --- a/serversession-backend-redis/changelog.md +++ b/serversession-backend-redis/changelog.md @@ -1,3 +1,5 @@ +1.0.4 +* bump hedis to 0.13 1.0.3 * Allow hedis-0.10 1.0.2 diff --git a/serversession-backend-redis/serversession-backend-redis.cabal b/serversession-backend-redis/serversession-backend-redis.cabal index 7281279..d8d83b1 100644 --- a/serversession-backend-redis/serversession-backend-redis.cabal +++ b/serversession-backend-redis/serversession-backend-redis.cabal @@ -1,5 +1,6 @@ +cabal-version: >= 1.10 name: serversession-backend-redis -version: 1.0.3 +version: 1.0.4 license: MIT license-file: LICENSE author: Felipe Lessa @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Storage backend for serversession using Redis. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -23,11 +23,12 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* , bytestring - , hedis < 0.11 + , hedis < 0.13 , path-pieces , tagged >= 0.7 , text @@ -43,7 +44,7 @@ library exposed-modules: Web.ServerSession.Backend.Redis Web.ServerSession.Backend.Redis.Internal - extensions: + default-extensions: CPP DeriveDataTypeable FlexibleContexts @@ -60,6 +61,7 @@ library test-suite tests + default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: tests build-depends: diff --git a/serversession-frontend-snap/serversession-frontend-snap.cabal b/serversession-frontend-snap/serversession-frontend-snap.cabal index 12f9319..58c254a 100644 --- a/serversession-frontend-snap/serversession-frontend-snap.cabal +++ b/serversession-frontend-snap/serversession-frontend-snap.cabal @@ -1,3 +1,4 @@ +cabal-version: >= 1.10 name: serversession-frontend-snap version: 1.0.1 license: MIT @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Snap bindings for serversession. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -20,6 +20,7 @@ flag lib-Werror library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* @@ -37,7 +38,7 @@ library exposed-modules: Web.ServerSession.Frontend.Snap Web.ServerSession.Frontend.Snap.Internal - extensions: + default-extensions: DeriveDataTypeable FlexibleContexts OverloadedStrings diff --git a/serversession-frontend-wai/serversession-frontend-wai.cabal b/serversession-frontend-wai/serversession-frontend-wai.cabal index ce4a934..c23b13f 100644 --- a/serversession-frontend-wai/serversession-frontend-wai.cabal +++ b/serversession-frontend-wai/serversession-frontend-wai.cabal @@ -1,3 +1,4 @@ +cabal-version: >= 1.10 name: serversession-frontend-wai version: 1.0 license: MIT @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: wai-session bindings for serversession. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -19,6 +19,7 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base >= 4.6 && < 5 @@ -38,7 +39,7 @@ library exposed-modules: Web.ServerSession.Frontend.Wai Web.ServerSession.Frontend.Wai.Internal - extensions: + default-extensions: FlexibleContexts OverloadedStrings TypeFamilies diff --git a/serversession-frontend-yesod/serversession-frontend-yesod.cabal b/serversession-frontend-yesod/serversession-frontend-yesod.cabal index 66e4b1c..821034e 100644 --- a/serversession-frontend-yesod/serversession-frontend-yesod.cabal +++ b/serversession-frontend-yesod/serversession-frontend-yesod.cabal @@ -1,3 +1,4 @@ +cabal-version: >= 1.10 name: serversession-frontend-yesod version: 1.0 license: MIT @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Yesod bindings for serversession. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -19,6 +19,7 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* @@ -38,7 +39,7 @@ library exposed-modules: Web.ServerSession.Frontend.Yesod Web.ServerSession.Frontend.Yesod.Internal - extensions: + default-extensions: FlexibleContexts OverloadedStrings TypeFamilies diff --git a/serversession/changelog.md b/serversession/changelog.md index e69de29..eac42de 100644 --- a/serversession/changelog.md +++ b/serversession/changelog.md @@ -0,0 +1,2 @@ +# 1.0.2 +* add persistent-test to deps diff --git a/serversession/serversession.cabal b/serversession/serversession.cabal index e0a38e5..eaba5fe 100644 --- a/serversession/serversession.cabal +++ b/serversession/serversession.cabal @@ -1,5 +1,6 @@ +cabal-version: >= 1.10 name: serversession -version: 1.0.1 +version: 1.0.2 license: MIT license-file: LICENSE author: Felipe Lessa @@ -7,7 +8,6 @@ maintainer: Michael Xavier synopsis: Secure, modular server-side sessions. category: Web stability: Stable -cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at @@ -19,16 +19,18 @@ flag lib-Werror manual: True library + default-language: Haskell2010 hs-source-dirs: src build-depends: base == 4.* , aeson - , base64-bytestring == 1.0.* + , base64-bytestring >= 1.0 && < 1.3 , bytestring , data-default , hashable , nonce == 1.0.* , path-pieces + , persistent-test , text , time , transformers @@ -37,7 +39,7 @@ library Web.ServerSession.Core Web.ServerSession.Core.Internal Web.ServerSession.Core.StorageTests - extensions: + default-extensions: DeriveDataTypeable FlexibleContexts OverloadedStrings @@ -53,6 +55,7 @@ library test-suite tests + default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: tests build-depends: @@ -64,7 +67,7 @@ test-suite tests , hspec >= 2.1 && < 3 , QuickCheck , serversession - extensions: + default-extensions: DeriveDataTypeable FlexibleContexts OverloadedStrings diff --git a/serversession/src/Web/ServerSession/Core/StorageTests.hs b/serversession/src/Web/ServerSession/Core/StorageTests.hs index 875d1b1..b7e7fda 100644 --- a/serversession/src/Web/ServerSession/Core/StorageTests.hs +++ b/serversession/src/Web/ServerSession/Core/StorageTests.hs @@ -10,6 +10,7 @@ module Web.ServerSession.Core.StorageTests import Control.Applicative as A import Control.Exception (Exception) import Control.Monad +import DataTypeTest (roundUTCTime) import Web.ServerSession.Core.Internal import qualified Crypto.Nonce as N @@ -173,8 +174,8 @@ allStorageTests storage it runIO parallel _shouldBe shouldReturn shouldThrow = d { sessionKey = sid , sessionAuthId = Nothing , sessionData = SessionMap $ HM.fromList vals - , sessionCreatedAt = now - , sessionAccessedAt = now + , sessionCreatedAt = roundUTCTime now + , sessionAccessedAt = roundUTCTime now } ver2 = session { sessionData = SessionMap HM.empty } run (getSession storage sid) `shouldReturn` Nothing @@ -223,8 +224,8 @@ generateSession gen hasAuthId = do { sessionKey = sid , sessionAuthId = authId , sessionData = SessionMap data_ - , sessionCreatedAt = TI.addUTCTime (-1000) now - , sessionAccessedAt = now + , sessionCreatedAt = roundUTCTime $ TI.addUTCTime (-1000) now + , sessionAccessedAt = roundUTCTime $ now } data HasAuthId = HasAuthId | NoAuthId diff --git a/stack.nix b/stack.nix new file mode 100644 index 0000000..762fd74 --- /dev/null +++ b/stack.nix @@ -0,0 +1,16 @@ +{ ghc, nixpkgs ? import ./nixpkgs.nix }: + +let + # haskellPackages = import ./stackage.nix { inherit nixpkgs; }; + haskellPackages = pkgs.haskellPackages; + inherit (nixpkgs {}) pkgs; +in pkgs.haskell.lib.buildStackProject { + inherit ghc; + inherit (haskellPackages) stack; + name = "stackenv"; + buildInputs = (with pkgs; + [ postgresql zlib libsodium gmp llvm_9 + ]) ++ (with haskellPackages; + [ yesod-bin happy alex + ]); +} diff --git a/stack.yaml b/stack.yaml index 9a431b3..63c39c1 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,18 @@ -resolver: lts-15.0 +flags: + serversession-backend-acid-state: + lib-Werror: true + serversession-frontend-wai: + lib-Werror: true + serversession-backend-persistent: + lib-Werror: true + serversession: + lib-Werror: true + serversession-backend-redis: + lib-Werror: true + serversession-frontend-yesod: + lib-Werror: true + serversession-frontend-snap: + lib-Werror: true packages: - serversession - serversession-backend-acid-state @@ -8,25 +22,16 @@ packages: - serversession-frontend-wai - serversession-frontend-yesod - examples/serversession-example-yesod-persistent -flags: - serversession: - lib-Werror: true - serversession-backend-acid-state: - lib-Werror: true - serversession-backend-persistent: - lib-Werror: true - serversession-backend-redis: - lib-Werror: true - serversession-frontend-snap: - lib-Werror: true - serversession-frontend-wai: - lib-Werror: true - serversession-frontend-yesod: - lib-Werror: true extra-deps: - - acid-state-0.16.0 - - snap-1.1.1.0 - - heist-1.1 - - map-syntax-0.3 - - pwstore-fast-2.4.4 - - xmlhtml-0.2.5.2 + - snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872 + - acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190 + - heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311 + - map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420 + - pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351 + - xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997 +resolver: lts-16.31 +nix: + packages: [] + pure: false + shell-file: ./stack.nix + add-gc-roots: true diff --git a/stack.yaml.lock b/stack.yaml.lock index fa6d85a..603b6fd 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -4,51 +4,51 @@ # https://docs.haskellstack.org/en/stable/lock_files packages: +- completed: + hackage: snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872 + pantry-tree: + size: 5743 + sha256: 804f55a8cab81e720547308e799243e81f43e089b860c0d3160a938cad86ed0d + original: + hackage: snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872 - completed: hackage: acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190 pantry-tree: size: 13678 sha256: c6e4b7f00d2a500e6286beafe3a2da7ba898a9ea31f5744df57cdce8a8f5890f original: - hackage: acid-state-0.16.0 + hackage: acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190 - completed: - hackage: snap-1.1.1.0@sha256:3b6301b66f244074d1d7a87173cc70871df1df84b3a86bba5e996422d5e73f45,9093 - pantry-tree: - size: 5743 - sha256: 23a8899b96ab2dd080328b35f047c057c06ff1dc31a73b724a7a69ba3f5db374 - original: - hackage: snap-1.1.1.0 -- completed: - hackage: heist-1.1@sha256:20187de15ef630f8f6debc1cc22cacefb55ddf8864749294bfe2b79a831cad8d,8722 + hackage: heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311 pantry-tree: size: 7354 - sha256: 977c0818628cc92775afbf063032e308e55e29e85eaf6289e955dcdcd80b563f + sha256: a2635ed49de6debaf8b98189989f83ab58dcc125c6ae8e57f6fe0903bc7fa8ff original: - hackage: heist-1.1 + hackage: heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311 - completed: hackage: map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420 pantry-tree: size: 558 sha256: c196bee0433f9540e4251ebd1be06d802ff7cc4931e6f0aedc38babd28683a3c original: - hackage: map-syntax-0.3 + hackage: map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420 - completed: hackage: pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351 pantry-tree: size: 270 sha256: ff4a44ede62515efe5cd366a5803f7183c811c4a0cf56eea88da94181c4844c0 original: - hackage: pwstore-fast-2.4.4 + hackage: pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351 - completed: hackage: xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997 pantry-tree: size: 61835 sha256: bb1bd95db3738e18d112bbc9724510ee64a51b7eda61494507f4957c5e2281f6 original: - hackage: xmlhtml-0.2.5.2 + hackage: xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997 snapshots: - completed: - size: 488576 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/15/0.yaml - sha256: e4b6a87b47ec1cf63a7f1a0884a3b276fce2b0d174a10e8753c4f618e7983568 - original: lts-15.0 + size: 534126 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/31.yaml + sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6 + original: lts-16.31