Obviously the surface area on my side is small, but supporting this is still a pain in the ass.
Super major version bump (from 1.5 to 2.0) requires clunky version ranges (like ^>= 1.5 || ^>= 2.0). If it was a normal major version bump this would be easy (>= 1.5 && < 1.7). The same thing happened back in the day with Aeson 0.11 to 1.0.
Some things are completely missing from the change log, such as the new Key type, which is now pervasive through Aeson's API: https://github.com/haskell/aeson/pull/868
Apparently no effort was made for forwards compatibility, like introducing type Key = Text or releasing a new 1.5.x version that makes migration easier.
Intuitively you'd think Rattletrap wouldn't have to change at all, since it doesn't care about the representation of JSON objects. And yet since unrelated changes were bundled into this release, I'm forced to deal with them using CPP (or something equivalent).
Prompted by https://github.com/commercialhaskell/stackage/issues/6217.
Obviously the surface area on my side is small, but supporting this is still a pain in the ass.
^>= 1.5 || ^>= 2.0
). If it was a normal major version bump this would be easy (>= 1.5 && < 1.7
). The same thing happened back in the day with Aeson 0.11 to 1.0.Key
type, which is now pervasive through Aeson's API: https://github.com/haskell/aeson/pull/868type Key = Text
or releasing a new 1.5.x version that makes migration easier.