Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update persistent, make buildable with ghc 8.6 #1561

merged 7 commits into from Oct 14, 2018


Copy link

commented Oct 11, 2018


  • Addressed merge conflicts with #1516.
    • This PR adds CPP to make the code compatible with persistent-2.9 (still unreleased).
  • Make all packages in the repo buildable with ghc 8.6.
    • This involved addressing a few issues with MonadFail. (See the GHC 8.6 migration guide.)
      This was accomplished by making pattern match failures explicitly call liftIO $ fail "$msg", instead of the formerly implicit call to fail on irrefutable pattern matches. Further improvements may be desired, but I believe this change at least preserves (and makes more explicit) the pre-existing behavior.


I have successfully built & run tests on these changes using the current stack.yaml as follows:

$ stack build --test --bench --no-run-benchmarks --fast

I have additionally built & run tests using the following stack.yaml which uses ghc 8.6 as well as persistent-2.9.2 (& others in that repo) from source, (as well as a small tweak on the constraints on email-validate) like so:

$ stack build --test --bench --no-run-benchmarks --fast --stack-yaml stack-nightly.yaml
# stack-nightly.yaml
resolver: nightly-2018-10-11
- ./yesod-core
- ./yesod-static
- ./yesod-persistent
- ./yesod-newsfeed
- ./yesod-form
- ./yesod-auth
- ./yesod-auth-oauth
- ./yesod-sitemap
- ./yesod-test
- ./yesod-bin
- ./yesod
- ./yesod-eventsource
- ./yesod-websockets
# on hackage
- byteable-0.1.1@sha256:12eeda93251d4b5d510ac95cf578f5c89d4a399b14ca73116deaf4921a516fdf
- clientsession-
- authenticate-1.3.4@sha256:0a017e0bd0292366b1a6c15f0d8aa4929c031197c0289eae478ed22725b4e30a
- authenticate-oauth-1.6@sha256:ba9e93e7b949fa4799ae7b3cb302df38dc7fb0be0460803b6c48636317b2bcbb
- cipher-aes-0.2.11@sha256:3f887a53efb0df216d44e954108fd660a7548e6f109bba1f158cc2c792810f8b
- cprng-aes-0.6.1@sha256:5f16cee07ffc501078a81bf4e3061e74656c00fa4f7714a0495fc2539734a737
- crypto-random-0.0.9@sha256:3fc8e0bf4e07591ce08bf4bf40b69100b8bcce786f3253130f46af0b61c4161d
- cryptonite-conduit-0.2.2@sha256:bfbae677a44f3a5cf3bf7f36271682979a402825f3d1e8767cfd62f2ddb702c2
- http-client-tls-
- http-conduit-2.3.2@sha256:0f505ab01bdf659831568839ff1f644c498e9993fb20517aaeb9e031327ad93c
- http-reverse-proxy-0.6.0@sha256:df4ff669d7b33a0587c5e38299424d4c44812e0618df75e8b65f6eafc8dac6cb
- project-template-
- skein-
- wai-app-static-
- wai-websockets-
- warp-tls-
- RSA-2.3.0@sha256:e2f8bc09c869bcd78a02974c40d1b1a5792f866b71e7ad18edde027e124acc4f
- connection-0.2.8@sha256:80671b805383147d41bc099a2b591442da5659d075b17f528c4729a39c99d6d8
- crypto-cipher-types-0.0.9@sha256:db4b94bd674d5d81caa41e1154396ae09c4de916a85163c8cd7892bc80c4c0cf
- crypto-pubkey-types-0.4.3@sha256:9bcf9ec7045f1043edac2b8331d9120bc055083578dbd953a3cccfc7452d9e8c
- html-conduit-1.3.1@sha256:fff57b4befad09ef398ecf9af47c9d1e534ea4c21f604b519f05dba1ee071e5f
- securemem-0.1.10@sha256:1e69f378f2837c502ebe02760c136e67e84dfe6052b7ecf694ccbe66c16a86d2
- tls-1.4.1@sha256:10087515f118d29938c3442b1255c10e0c866efa3639b3813dfb9755a8f89d86
- tls-session-manager-
- asn1-encoding-0.9.5@sha256:7d4acf178ef17aad650f2073dd2ed94febb1e468fddb0d5ca65c1a54caffcfb8
- asn1-types-0.3.2@sha256:2fc0d64079e9ac9ec7f349aa65c1775acb060f19601deee129a9769fdcf8f07a
- x509-1.7.4@sha256:dfc5cc9617dc084c5560dff230644da009e1a63dd71bc954f5c8a210e4ff3f5d
- x509-store-1.6.6@sha256:5503bf2d77f5d7349e92b3961cbfab9cdbb48a310a4ac74b22069c3b6c18f4d8
- x509-system-1.6.6@sha256:3a1b9cc26715d7cb3cd1a3f8b6153f12c2d42187ac5df305c3973c78a061db05
- x509-validation-1.6.10@sha256:1c50be76040e7a02b1cf6ca8a2806aa159a47c29c1be212fc161c01736ba4ac7
- pem-0.2.4@sha256:cc8e62118b783e284dc0fa032f54fe386a3861a948ec88079370a433c103a705
- asn1-parse-0.9.4@sha256:748249e23024dde8fed1d99e85e7e952576ce51b3ce460b9d131b2e91ff9c5a4
# from source
- git:
  commit: 04d1c5169e6174fcfd8836c64739168c9e975d68
  - persistent
  - persistent-template
  - persistent-sqlite
- git:
  commit: 1c2ffb4c8a7dc35403d7a3458ace3998c1bbda3c


Before submitting your PR, check that you've:

After submitting your PR:

  • Update the file with a link to your PR
  • Check that CI passes (or if it fails, for reasons unrelated to your change, like CI timeouts)
iand675 and others added 7 commits Jun 4, 2018

@snoyberg snoyberg merged commit bff8200 into yesodweb:master Oct 14, 2018

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
3 participants
You can’t perform that action at this time.