From 3224e8e6f128494ee85f11ff7b13efe7a812fae3 Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Wed, 5 May 2021 12:15:57 -0600 Subject: [PATCH 1/6] Support persistent-2.13 --- .gitignore | 1 + stack-persistent-213.yaml | 25 +++++++++++++++++++++++++ yesod-persistent/Yesod/Persist/Core.hs | 10 +++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 stack-persistent-213.yaml diff --git a/.gitignore b/.gitignore index 42e81982..8f84fbea 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ tarballs/ # OS X .DS_Store +*.yaml.lock diff --git a/stack-persistent-213.yaml b/stack-persistent-213.yaml new file mode 100644 index 00000000..3fd9703d --- /dev/null +++ b/stack-persistent-213.yaml @@ -0,0 +1,25 @@ +resolver: nightly-2021-03-31 +packages: +- ./yesod-core +- ./yesod-static +- ./yesod-persistent +- ./yesod-newsfeed +- ./yesod-form +- ./yesod-form-multi +- ./yesod-auth +- ./yesod-auth-oauth +- ./yesod-sitemap +- ./yesod-test +- ./yesod-bin +- ./yesod +- ./yesod-eventsource +- ./yesod-websockets +extra-deps: +- lift-type-0.1.0.1 +- git: git@github.com:yesodweb/persistent + commit: 315ae91349ef4fbc2f4f2595cb7d3423e79ef80f + subdirs: + - persistent + - persistent-sqlite + - persistent-mysql + - persistent-postgresql diff --git a/yesod-persistent/Yesod/Persist/Core.hs b/yesod-persistent/Yesod/Persist/Core.hs index b7c82baf..6a671ca7 100644 --- a/yesod-persistent/Yesod/Persist/Core.hs +++ b/yesod-persistent/Yesod/Persist/Core.hs @@ -25,6 +25,7 @@ module Yesod.Persist.Core import Database.Persist import Control.Monad.Trans.Reader (ReaderT, runReaderT) +import Data.Foldable (toList) import Yesod.Core import Data.Conduit import Blaze.ByteString.Builder (Builder) @@ -33,6 +34,9 @@ import Control.Monad.Trans.Resource import Control.Exception (throwIO) import Yesod.Core.Types (HandlerContents (HCError)) import qualified Database.Persist.Sql as SQL +#if MIN_VERSION_persistent(2,13,0) +import qualified Database.Persist.SqlBackend.Internal as SQL +#endif unSqlPersistT :: a -> a unSqlPersistT = id @@ -197,7 +201,11 @@ insert400 datum = do case conflict of Just unique -> #if MIN_VERSION_persistent(2, 12, 0) - badRequest' $ map (unFieldNameHS . fst) $ persistUniqueToFieldNames unique +-- toList is called here because persistent-2.13 changed this +-- to a nonempty list. for versions of persistent prior to 2.13, toList +-- will be a no-op. for persistent-2.13, it'll convert the NonEmptyList to +-- a List. + badRequest' $ map (unFieldNameHS . fst) $ toList $ persistUniqueToFieldNames unique #else badRequest' $ map (unHaskellName . fst) $ persistUniqueToFieldNames unique #endif From 69735fc9c6c10eaa0a2dc170fc4c703519afe696 Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Wed, 5 May 2021 12:33:24 -0600 Subject: [PATCH 2/6] Add link to changelog, version bump --- yesod-persistent/ChangeLog.md | 4 ++++ yesod-persistent/yesod-persistent.cabal | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/yesod-persistent/ChangeLog.md b/yesod-persistent/ChangeLog.md index a8c8dad1..f8741166 100644 --- a/yesod-persistent/ChangeLog.md +++ b/yesod-persistent/ChangeLog.md @@ -1,5 +1,9 @@ # ChangeLog for yesod-persistent +## 1.7.0.7 + +* Add support for persistent 2.13. [#1723](https://github.com/yesodweb/yesod/pull/1723) + ## 1.6.0.6 * Add support for persistent 2.12 diff --git a/yesod-persistent/yesod-persistent.cabal b/yesod-persistent/yesod-persistent.cabal index 5bd21f5c..b9ca9fff 100644 --- a/yesod-persistent/yesod-persistent.cabal +++ b/yesod-persistent/yesod-persistent.cabal @@ -1,6 +1,6 @@ cabal-version: >= 1.10 name: yesod-persistent -version: 1.6.0.6 +version: 1.6.0.7 license: MIT license-file: LICENSE author: Michael Snoyman From d42354ae98d49df7cac850fa59fa04a6bf0ab9ad Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Wed, 5 May 2021 15:17:46 -0600 Subject: [PATCH 3/6] use hackage release --- stack-persistent-213.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/stack-persistent-213.yaml b/stack-persistent-213.yaml index 3fd9703d..bce1e6d8 100644 --- a/stack-persistent-213.yaml +++ b/stack-persistent-213.yaml @@ -16,10 +16,7 @@ packages: - ./yesod-websockets extra-deps: - lift-type-0.1.0.1 -- git: git@github.com:yesodweb/persistent - commit: 315ae91349ef4fbc2f4f2595cb7d3423e79ef80f - subdirs: - - persistent - - persistent-sqlite - - persistent-mysql - - persistent-postgresql +- persistent-2.13.0.0 +- persistent-mysql-2.13.0.0 +- persistent-sqlite-2.13.0.0 +- persistent-postgrseql-2.13.0.0 From 3d3fe3f5b6feea6cc7c87cd1d564d0e627e207e5 Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Wed, 5 May 2021 16:31:30 -0600 Subject: [PATCH 4/6] fix version in changelog --- yesod-persistent/ChangeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-persistent/ChangeLog.md b/yesod-persistent/ChangeLog.md index f8741166..52286010 100644 --- a/yesod-persistent/ChangeLog.md +++ b/yesod-persistent/ChangeLog.md @@ -1,6 +1,6 @@ # ChangeLog for yesod-persistent -## 1.7.0.7 +## 1.6.0.7 * Add support for persistent 2.13. [#1723](https://github.com/yesodweb/yesod/pull/1723) From b3188d962e0c1d79e0631c90cd00b4ed9c062329 Mon Sep 17 00:00:00 2001 From: parsonsmatt Date: Thu, 6 May 2021 07:35:37 -0600 Subject: [PATCH 5/6] add to test --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2265e9ec..c328b031 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,6 +22,7 @@ jobs: - "--resolver lts-11" - "--stack-yaml stack-persistent-211.yaml" - "--stack-yaml stack-persistent-212.yaml" + - "--stack-yaml stack-persistent-213.yaml" # Bugs in GHC make it crash too often to be worth running exclude: - os: windows-latest From 3ea97d21b8266712a1ecf1ea595e701658c72ada Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Fri, 7 May 2021 13:08:39 +0300 Subject: [PATCH 6/6] Fix extra-deps --- stack-persistent-213.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stack-persistent-213.yaml b/stack-persistent-213.yaml index bce1e6d8..c90d12e7 100644 --- a/stack-persistent-213.yaml +++ b/stack-persistent-213.yaml @@ -19,4 +19,5 @@ extra-deps: - persistent-2.13.0.0 - persistent-mysql-2.13.0.0 - persistent-sqlite-2.13.0.0 -- persistent-postgrseql-2.13.0.0 +- persistent-postgresql-2.13.0.0 +- persistent-template-2.12.0.0