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

aeson 0.10 #845

Closed
bergmark opened this issue Sep 19, 2015 · 68 comments
Closed

aeson 0.10 #845

bergmark opened this issue Sep 19, 2015 · 68 comments

Comments

@bergmark
Copy link
Member

aeson-0.10.0.0 depended on by:

@phadej
Copy link
Contributor

phadej commented Sep 19, 2015

new revisions of binary-orphans and binary-tagged published

@phadej
Copy link
Contributor

phadej commented Sep 19, 2015

Also, be aware of really breaking change haskell/aeson#287

@jpvillaisaza
Copy link
Contributor

twitter-feed is updated in Hackage now.

@adinapoli
Copy link
Contributor

Mandrill 0.4.1.0 is updated & on Hackage now, fixed by: adinapoli/mandrill#22

@mgajda
Copy link
Contributor

mgajda commented Sep 20, 2015

json-autotype is fixed too.

On Sunday, September 20, 2015, Alfredo Di Napoli notifications@github.com
wrote:

Mandrill 0.4.1.0 is updated & on Hackage now, fixed by:
adinapoli/mandrill#22 adinapoli/mandrill#22


Reply to this email directly or view it on GitHub
#845 (comment).

Pozdrawiam
Michał

@nomeata
Copy link
Contributor

nomeata commented Sep 20, 2015

Is there actually any point in everyone reporting here that a fix is uploaded? I would presume that the stackage admins would see what’s fixed and what not based on their tool, and use that to check it. At least until there are only two or three packages left which everyone is waiting on, in which case a “I’m finally done message” might be useful.

@hadronized
Copy link
Contributor

smoothie fixed.

@nikita-volkov
Copy link
Contributor

"hasql-postgres" is fixed, but I would love to see the maintainers' input on @nomeata's comment.

@snoyberg
Copy link
Contributor

Is there actually any point in everyone reporting here that a fix is uploaded? I would presume that the stackage admins would see what’s fixed and what not based on their tool, and use that to check it. At least until there are only two or three packages left which everyone is waiting on, in which case a “I’m finally done message” might be useful.

When it's just a few packages: telling us to try again is very helpful. With lots of packages: everyone needs to do the mental checklist of "did everyone else already fix this?" In which case: it's less useful. The curator team will regularly check on open issues and see if they're still relevant, so that seems like the right way to address these big issues.

How's this for a policy: if there are five or more package maintainers pinged in an issue, don't bother writing back.

@bergmark @DanBurton @juhp Any thoughts on that?

@mgajda
Copy link
Contributor

mgajda commented Sep 21, 2015

Whatever helps You best Michael!
Thanks for making awesome contribution to the commuńity, and making sure
that our packages are all together compatibleand up to date.

On Monday, September 21, 2015, Michael Snoyman notifications@github.com
wrote:

Is there actually any point in everyone reporting here that a fix is
uploaded? I would presume that the stackage admins would see what’s fixed
and what not based on their tool, and use that to check it. At least until
there are only two or three packages left which everyone is waiting on, in
which case a “I’m finally done message” might be useful.

When it's just a few packages: telling us to try again is very helpful.
With lots of packages: everyone needs to do the mental checklist of "did
everyone else already fix this?" In which case: it's less useful. The
curator team will regularly check on open issues and see if they're still
relevant, so that seems like the right way to address these big issues.

How's this for a policy: if there are five or more package maintainers
pinged in an issue, don't bother writing back.

@bergmark https://github.com/bergmark @DanBurton
https://github.com/DanBurton @juhp https://github.com/juhp Any
thoughts on that?


Reply to this email directly or view it on GitHub
#845 (comment).

Pozdrawiam
Michał

@bergmark
Copy link
Member Author

👍

@gregwebs
Copy link
Contributor

Due to the breaking change that got released mentioned by @phadej, I would recommend that nobody use aeson 0.10 for now. There is already a pull request to attempt to fix this situation: haskell/aeson#288

@bitemyapp
Copy link
Contributor

@gregwebs yeah I've been holding out to see how that clears up.

@erratic-pattern
Copy link
Contributor

For webdriver, my solution was to simply add a new operator to Test.WebDriver.JSON and use it in place of .:?

(.:??) :: FromJSON a => Object -> Text -> Parser (Maybe a)
o .:?? k = fmap join (o .:? k)

I believe this should have the same result regardless of which aeson version you use.

@mgajda
Copy link
Contributor

mgajda commented Sep 27, 2015

I used Adam's solution in json-autotype too, and it passed all unit tests
without issues.

On Monday, 28 September 2015, Adam Curtis notifications@github.com wrote:

For webdriver, my solution was to simply add a new operator to
Test.WebDriver.JSON and use it in place of .:?

(.:??) :: FromJSON a => Object -> Text -> Parser (Maybe a)
o .:?? k = fmap join (o .:? k)

Pozdrawiam
Michał

@phadej
Copy link
Contributor

phadej commented Sep 29, 2015

I was a bit impatient so I made Data.Aeson.Compat

@bitemyapp
Copy link
Contributor

Fixed in http://hackage.haskell.org/package/bloodhound-0.9.0.0 but I had to bring the lower-bound up to 0.10.

Current LTS Aeson is 0.8.0.2, let me know if this'll be a problem.

@bergmark
Copy link
Member Author

Update:

aeson-0.10.0.0 depended on by:

postgresql-binary-0.7.4.1 depended on by:

borsboom added a commit to commercialhaskell/stack that referenced this issue Dec 15, 2015
@YoEight
Copy link
Contributor

YoEight commented Dec 15, 2015

@fizruk
Copy link
Contributor

fizruk commented Dec 21, 2015

@tmcgilchrist I am not sure what you're asking. You can check the Travis build for v1.0.
The only problem I had with aeson-0.10.0.0 was a couple of bugs fixed in HEAD but not released (e.g. haskell/aeson#293 and the misplaced MINIMAL pragma). To fix compatibility with aeson-0.10.0.0 I just replaced TH with Generic-based code.

@bergmark
Copy link
Member Author

@tmcgilchrist Do you mean if there are other dependencies you might need to bump? If you can build against the latest nightly and cabal sandbox init && cabal install --dry-run | grep latest doesn't give any results you should be good. Possibly also pass --enable-tests --enable-benchmarks if you have those

@tolysz
Copy link
Contributor

tolysz commented Dec 21, 2015

Whenever your code handle Maybe via Value type it will be broken in aeson saying that there is a patch for that. So Basically if you use .:? or anything Value -> Maybe a there will be issues as current version is not working correctly there. So if you have Maybe in your type there is no way to write correct fromJson.

@tmcgilchrist
Copy link
Contributor

@bergmark Yes that's what I meant. Thanks.

New version of riak up on package 0.9.1.1. @juhp

juhp added a commit that referenced this issue Dec 22, 2015
@juhp
Copy link
Contributor

juhp commented Dec 22, 2015

@tmcgilchrist okay thanks - looks good now

@freizl
Copy link
Contributor

freizl commented Jan 4, 2016

houath is bump to 0.5.0 in order to work with aeson-0.10

@jgm
Copy link
Contributor

jgm commented Jan 13, 2016

In my opinion, it was premature to add aeson 0.10 to stackage. The problem noted in haskell/aeson#296 essentially makes it impossible to compile pandoc-types on a machine with 2 GB RAM or less. Once pandoc enters lts-4.0, many people are going to find that stack install pandoc simply dies with an unexplained "ExitFailure 127."

As long as aeson 0.10 is in stackage, I'm faced with the choice between putting an upper bound on aeson in pandoc-types, thus excluding the pandoc ecosystem from stackage, or having many users complain that they are unable to install pandoc. (Yes, I know there are workarounds; you can specify a constraint on aeson; but most people aren't going to know that, and there's no way to figure out that that's what is needed.)

See my comment on haskell reddit.

@DanBurton
Copy link
Contributor

@jgm the problem is with the generics-based default implementation, right? As an implementation workaround, how about using Data.Aeson.TH instead?

@jgm
Copy link
Contributor

jgm commented Jan 13, 2016

@DanBurton I've studiously avoided using any TH in pandoc, due to problems I had in the past with TH + Windows (I can't recall the details now). Does Data.Aeson.TH generate the same JSON mapping as the generics implementation?

@phadej
Copy link
Contributor

phadej commented Jan 13, 2016

@jgm it does, IIRC there are actual tests for that in aeson

@jgm
Copy link
Contributor

jgm commented Jan 13, 2016

Even if there is a workaround, I think my point stands. The aim of stackage is to provide a consistent set of packages that make building Haskell projects unproblematic. If one of the packages makes projects (not just mine, but anything that derives generic instances for complex product or sum types) unbuildable on machines without lots of RAM, that strikes me as a reason not to include it until the relevant bugs are fixed.

@phadej
Copy link
Contributor

phadej commented Jan 13, 2016

@jgm but that sounds as a bug in GHC, not the package itself.

@brendanhay
Copy link
Contributor

The aeson-0.10 release was a bit of a cluster fart (looking at haskell/aeson#293) and there hasn't been visible movement getting the fixes that are in HEAD released.

Being dependent upon aeson I would of (pre-stackage) just added an upper bound < 0.10, but since the broken package is in stackage nightly I'm forced to somehow play along, or my package versions get put in the naughty section of stackage's build_constraints.yaml. Seems there should be provision for omitting or rolling back the offender from stackage (nightly at least), rather than forcing downstream dependencies through acts of choreographed contortion.

@gregwebs
Copy link
Contributor

Can anyone get in touch with @bos? I think the community can benefit from having additional official maintainers of aeson that are focused on shouldering the burden of stability, releases, and responsiveness.

@jgm
Copy link
Contributor

jgm commented Jan 13, 2016

@phadej Well, it seems to be an interaction between changes specific to aeson 0.10 and ghc 7.10.3. Earlier version of aeson do not have the same problem, even with ghc 7.10.3. So the hope is that something can be fixed in aeson, even independent of fixes to ghc. Someone just commented on the aeson issue that removing the INLINE pragmas might do it.

@DanBurton
Copy link
Contributor

We stackage curators have been considering our options. We didn't properly take the regressions of aeson-0.10 into consideration when we selected it for LTS-4; we intend to take action over the next few days to remedy the situation.

@phadej
Copy link
Contributor

phadej commented Jan 15, 2016

I'd like to help with aeson situation, if only there is something I can help with.

@gregwebs
Copy link
Contributor

heads up: aeson just merged a PR to revert some of the 0.10 nullability change:
haskell/aeson#288

@RyanGlScott
Copy link
Contributor

Also, we're exploring a workaround to aeson-0.10's generic-deriving issues here.

@DanBurton
Copy link
Contributor

@brendanhay (and @ all) as of tonight's nightly, aeson 0.9 is back, and you're no longer in the naughty section for failing to support aeson 0.10.0.0. lts-5 will be released (planned for 2016-01-24) with aeson 0.9.

See #1155 for details.

@brendanhay
Copy link
Contributor

Thank you!

@RyanGlScott
Copy link
Contributor

I've opened a pull request to aeson to address the compilation slowdowns related to GHC generics.

@DanBurton
Copy link
Contributor

To whomever is still listening to this thread, aeson-0.11 is being prepared for release. If you can clone the repo and test it out with your package, it would be much appreciated.

@hadronized
Copy link
Contributor

I will!

@phadej
Copy link
Contributor

phadej commented Jan 22, 2016

At least aeson's master suffers from QuickCheck instances https://travis-ci.org/phadej/aeson/jobs/104043153

@phadej
Copy link
Contributor

phadej commented Jan 22, 2016

also aeson-compat (with small adoptions) and aeson-extra tests pass with nightly-2016-01-22 amended with aeson's master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests