Project builds with stack, not with cabal. How to diagnose?

Dear Café, I have been building my project for quite some time now using Stack. That works fine. However, I also want to make sure cabal users can build it from source. Recently I have been trying to set this up using github actions. I use a matrix to build both with stack and with cabal. I use the same version of ghc. A recent build can be seen here: https://github.com/AmpersandTarski/Ampersand/runs/1756887612 I guess that the error is due to the fact that the used packages to build are somehow different between the stack build and the cabal build. Is there some way to find out what those differences are? Any help would be appreciated! Thanks Han Joosten

(I forgot to CC the list) Hi Han, with stack, you can use `stack ls dependencies` to get a list of your dependencies with versions. With cabal, you can use `cabal freeze`. The error message you linked indicates that changes in microlens or lens might be the problem. Both have exported (^?) for a long time though. It turns out that you're re-exporting the entirety of RIO from Ampersand.Basics (via Ampersand.Basics.Prelude). And RIO has only recently begun to export parts of microlens: http://hackage.haskell.org/package/rio-0.1.20.0/changelog. Cheers, Simon Am Fr., 29. Jan. 2021 um 21:47 Uhr schrieb Han Joosten < han.joosten.han@gmail.com>:
Dear Café,
I have been building my project for quite some time now using Stack. That works fine. However, I also want to make sure cabal users can build it from source.
Recently I have been trying to set this up using github actions. I use a matrix to build both with stack and with cabal. I use the same version of ghc.
A recent build can be seen here: https://github.com/AmpersandTarski/Ampersand/runs/1756887612
I guess that the error is due to the fact that the used packages to build are somehow different between the stack build and the cabal build. Is there some way to find out what those differences are?
Any help would be appreciated!
Thanks
Han Joosten _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

Hi Simon, Thank you very much for this great help. I Have created an issue for my project, so I can follow up on my findings and fix this. I have run both ways to get dependency lists, and tbh I am pretty astonished by the amount and sort of differences. More on this in mentioned issue: https://github.com/AmpersandTarski/Ampersand/issues/1142 Again, Thanks a lot! Cheers, Han Op vr 29 jan. 2021 om 22:15 schreef Simon Jakobi < simon.jakobi@googlemail.com>:
(I forgot to CC the list)
Hi Han,
with stack, you can use `stack ls dependencies` to get a list of your dependencies with versions. With cabal, you can use `cabal freeze`.
The error message you linked indicates that changes in microlens or lens might be the problem. Both have exported (^?) for a long time though. It turns out that you're re-exporting the entirety of RIO from Ampersand.Basics (via Ampersand.Basics.Prelude). And RIO has only recently begun to export parts of microlens: http://hackage.haskell.org/package/rio-0.1.20.0/changelog.
Cheers, Simon
Am Fr., 29. Jan. 2021 um 21:47 Uhr schrieb Han Joosten < han.joosten.han@gmail.com>:
Dear Café,
I have been building my project for quite some time now using Stack. That works fine. However, I also want to make sure cabal users can build it from source.
Recently I have been trying to set this up using github actions. I use a matrix to build both with stack and with cabal. I use the same version of ghc.
A recent build can be seen here: https://github.com/AmpersandTarski/Ampersand/runs/1756887612
I guess that the error is due to the fact that the used packages to build are somehow different between the stack build and the cabal build. Is there some way to find out what those differences are?
Any help would be appreciated!
Thanks
Han Joosten _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

Hi Han, because stack uses the cabal library for the building of the project, it might be possible to use cabal-bounds[1] to update the version bounds of the dependencies in the cabal file, after a stack build has been executed. So just calling 'cabal-bounds update' might do the job. Greetings, Daniel [1] https://github.com/dan-t/cabal-bounds
participants (3)
-
Daniel Trstenjak
-
Han Joosten
-
Simon Jakobi