-
Notifications
You must be signed in to change notification settings - Fork 2
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
Aeson 1.5-2.0 compat #9
Comments
+1 for a CPP-less migration option! |
I think this is a good addition. One upside is that it doesn't require usage of a compat package. The downside is that every major aeson series we wish to support for this migration needs to be amended with this patch. Bounds on dependents would need to be adjusted to e.g. The compat package approach (we could always do both) would allow us to support more versions of aeson (bounds could be simplified to e.g. FWIW I think that filing this directly against aeson would be better. I'm one of three maintainers but I'm currently the least active one so I think it's better to discuss it over there. Just noting a detail in case this turns into a full PR: The change should probably be made against the latest 1.5.x commit. |
OK, migrated to Aeson at haskell/aeson#932 |
Reopening as there seems to be some difference of opinion as to whether this belongs in Aeson. |
I think I may not have explained very well what my suggestion actually is. It seems that it was interpreted to be a change to 2.0 to revert making |
Indeed! Context is key -- we all understood what you intended but Oleg will have been missing that context.
Let's discuss later.
… On 2022-03-07, at 11:02, tomjaguarpaw ***@***.***> wrote:
I think I may not have explained very well what my suggestion actually is. It seems that it was interpreted to be a change to 2.0 to revert making Key and KeyMap abstract.
—
Reply to this email directly, view it on GitHub <#9 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAG7BSQ24UQVYN2FGLJZ2NLU6XO5TANCNFSM5PPMPETQ>.
You are receiving this because you modified the open/close state.
|
Here is a suggestion for an Aeson 1.5-2.0 compatibilty story. The technique is simple: take Aeson 2.0 and change the version 2 abstract types to type synonyms as below (plus chasing up the ensuing, minor, type errors).
This backports the 2.0 API to 1.5, and ought to allow Aeson users to write code that works at the same time against version 1.5 and version 2.0, providing a smooth upgrade path and avoiding the need for a "big bang" switch of the entire Aeson ecosystem at once.
I don't actually use Aeson myself, so I would welcome the input of Aeson users and maintainers (esp. @bergmark) regarding
The text was updated successfully, but these errors were encountered: