aeson-better-errors
aeson-better-errors copied to clipboard
Allow aeson 2.1
Tested to build fine with the new version.
@felixonmars I tested your change and it is needed for compiling this package with ghc-9.4.* for both stack and cabal.
Without the bump in aeson upper bound we get:
- With
stack build
$ stack build --resolver=nightly
Selected resolver: nightly-2023-05-04
Error: [S-4804]
Stack failed to construct a build plan.
While constructing the build plan, Stack encountered the following errors:
In the dependencies for aeson-better-errors-0.9.1.1:
aeson-2.1.2.1 from Stack configuration does not match
>=0.7 && <1.6 || >=2.0 && <2.1 (latest matching version is 2.0.3.0)
needed since aeson-better-errors is a build target.
Some different approaches to resolving this:
* Set 'allow-newer: true' in /home/philderbeast/.stack/config.yaml to ignore
all version constraints and build anyway.
* Recommended action: try adding the following to your extra-deps
in /.../aeson-better-errors/stack.yaml:
- aeson-2.0.3.0@sha256:510c59bece9c6b3d9e999674b869c765cdc3df9f9f90b6871df3e62f87b12fff,5867
- With
cabal build
$ cabal build all --minimize-conflict-set
Resolving dependencies...
Error: cabal: Could not resolve dependencies:
[__0] trying: aeson-better-errors-0.9.1.1 (user goal)
[__1] trying: text-2.0.2/installed-2.0.2 (dependency of aeson-better-errors)
[__2] trying: template-haskell-2.19.0.0/installed-2.19.0.0 (dependency of
text)
[__3] trying: pretty-1.1.3.6/installed-1.1.3.6 (dependency of
template-haskell)
[__4] next goal: aeson (dependency of aeson-better-errors)
[__4] rejecting: aeson-2.1.2.1 (conflict: aeson-better-errors => aeson>=0.7 &&
<1.6 || >=2.0 && <2.1)
[__4] skipping: aeson-2.1.2.0, aeson-2.1.1.0, aeson-2.1.0.0 (has the same
characteristics that caused the previous version to fail: excluded by
constraint '>=0.7 && <1.6 || >=2.0 && <2.1' from 'aeson-better-errors')
[__4] rejecting: aeson-2.0.3.0 (conflict: text =>
ghc-prim==0.9.0/installed-0.9.0, aeson => ghc-prim>=0.5.0.0 && <0.9)
[__4] rejecting: aeson-2.0.2.0, aeson-2.0.1.0 (conflict: text =>
bytestring==0.11.4.0/installed-0.11.4.0, aeson => bytestring>=0.10.8.1 &&
<0.11.2)
[__4] rejecting: aeson-2.0.0.0 (conflict: text =>
bytestring==0.11.4.0/installed-0.11.4.0, aeson => bytestring>=0.10.8.1 &&
<0.11.2.0)
[__4] rejecting: aeson-1.5.6.0, aeson-1.5.5.1 (conflict: text =>
bytestring==0.11.4.0/installed-0.11.4.0, aeson => bytestring>=0.10.8.1 &&
<0.11.2)
[__4] rejecting: aeson-1.5.5.0 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, aeson => base(>=4.7.0.0 && <5) && <0)
[__4] rejecting: aeson-1.5.4.1 (conflict: text =>
bytestring==0.11.4.0/installed-0.11.4.0, aeson => bytestring>=0.10.8.1 &&
<0.11.2)
[__4] rejecting: aeson-1.5.4.0, aeson-1.5.3.0, aeson-1.5.2.0, aeson-1.5.1.0,
aeson-1.5.0.0, aeson-1.4.7.1, aeson-1.4.7.0 (conflict: text =>
bytestring==0.11.4.0/installed-0.11.4.0, aeson => bytestring>=0.10.8.1 &&
<0.11)
[__4] rejecting: aeson-1.4.6.0, aeson-1.4.5.0, aeson-1.4.4.0 (conflict: text
=> bytestring==0.11.4.0/installed-0.11.4.0, aeson +/-bytestring-builder =>
bytestring>=0.10.8.1 && <0.11)
[__4] rejecting: aeson-1.4.3.0, aeson-1.4.2.0, aeson-1.4.1.0, aeson-1.4.0.0,
aeson-1.3.1.1, aeson-1.3.1.0, aeson-1.3.0.0, aeson-1.2.4.0, aeson-1.2.3.0,
aeson-1.2.2.0 (conflict: text => bytestring==0.11.4.0/installed-0.11.4.0,
aeson +/-bytestring-builder => bytestring>=0.9.2 && <0.11)
[__4] rejecting: aeson-1.2.1.0, aeson-1.2.0.0, aeson-1.1.2.0, aeson-1.1.1.0,
aeson-1.1.0.0 (conflict: text => base==4.17.1.0/installed-4.17.1.0, aeson =>
base>=4.5 && <4.13)
[__4] rejecting: aeson-1.0.2.1, aeson-1.0.2.0, aeson-1.0.1.0, aeson-1.0.0.0
(conflict: text => bytestring==0.11.4.0/installed-0.11.4.0, aeson
+/-bytestring-builder => bytestring>=0.9 && <0.11)
[__4] rejecting: aeson-0.11.3.0, aeson-0.11.2.1, aeson-0.11.2.0,
aeson-0.11.1.4, aeson-0.11.1.3, aeson-0.11.1.2, aeson-0.11.1.1,
aeson-0.11.1.0, aeson-0.11.0.0 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, aeson => base>=4.5 && <4.13)
[__4] rejecting: aeson-0.9.0.1, aeson-0.9.0.0, aeson-0.8.1.1, aeson-0.8.1.0,
aeson-0.8.0.2 (conflict: text => base==4.17.1.0/installed-4.17.1.0, aeson =>
base>=4.5 && <4.9)
[__4] trying: aeson-0.7.0.6
[__5] next goal: time (dependency of aeson)
[__5] rejecting: time-1.12.2/installed-1.12.2 (conflict: aeson => time>=1.1.3
&& <1.5)
[__5] skipping: time-1.12.2, time-1.12.1, time-1.12, time-1.11.1.2,
time-1.11.1.1, time-1.11.1, time-1.11, time-1.10, time-1.9.3, time-1.9.2,
time-1.9.1, time-1.9, time-1.8.0.4, time-1.8.0.3, time-1.8.0.2, time-1.8.0.1,
time-1.8, time-1.7.0.1, time-1.7, time-1.6.0.1, time-1.6, time-1.5.0.1,
time-1.5 (has the same characteristics that caused the previous version to
fail: excluded by constraint '>=1.1.3 && <1.5' from 'aeson')
[__5] rejecting: time-1.4.2, time-1.4.1 (conflict: text =>
deepseq==1.4.8.0/installed-1.4.8.0, time => deepseq>=1.1 && <1.4)
[__5] rejecting: time-1.4.0.2 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, time => base>=4.4 && <4.7)
[__5] rejecting: time-1.4.0.1, time-1.4, time-1.3, time-1.2.0.5, time-1.2.0.4,
time-1.2.0.3, time-1.2.0.2, time-1.2.0.1 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, time => base>=4 && <4.7)
[__5] rejecting: time-1.2 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, time => base(>=4 && <4.7) && <0)
[__5] rejecting: time-1.1.4 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, time => base>=4 && <4.7)
[__5] rejecting: time-1.1.3 (conflict: text =>
base==4.17.1.0/installed-4.17.1.0, time +/-split-base => base>=2 && <4.7)
[__5] rejecting: time-1.1.2.4 (conflict: aeson => time>=1.1.3 && <1.5)
[__5] skipping: time-1.1.2.3, time-1.1.2.2, time-1.1.2.1, time-1.1.2.0,
time-1.0, time-1.13 (has the same characteristics that caused the previous
version to fail: excluded by constraint '>=1.1.3 && <1.5' from 'aeson')
[__5] fail (backjumping, conflict set: aeson, text, time)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: template-haskell, aeson, text, pretty,
aeson-better-errors, time
@sjakobi a hackage revision would work again wouldn't it?
Should be working for both Stack and Cabal in this PR, for aeson 2.2: https://github.com/hdgarrood/aeson-better-errors/pull/24