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

Relax upper bound constraints to build with base 4.15 #112

Closed
pepeiborra opened this issue Jul 19, 2020 · 21 comments
Closed

Relax upper bound constraints to build with base 4.15 #112

pepeiborra opened this issue Jul 19, 2020 · 21 comments

Comments

@pepeiborra
Copy link

The following packages need their base upper bounds relaxed:

  • active
  • diagrams-contrib
  • diagrams-core
  • diagrams-lib
  • diagrams-postscript
  • diagrams-svg
  • dual-tree
  • force-layout
  • monoid-extras
  • statestack
  • svg-builder

Thank you for this beautiful stack of libraries!

ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
The linear revbump is per upstream. An [issue][1] has been opened to
have upstream bump the base version.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
This pulls from upstream's revision on hackage. Upstream still has not
updated for newer base, but there is [an issue][1] open.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
The linear change is per upstream. There is [a ticket][1] open for
bumping `base`.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
See [this issue][1] upstream for bumping base version

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
Ticket opened [upstream][1] to bump base. Linear bump is already on
hackage.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 10, 2021
[Upstream issue][1] is open for bumping the base dep.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
@ezzieyguywuf
Copy link

diagrams-builder needs to be added to this list, and also needs some other upperbounds bumped as well.

ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
The linear revbump is per upstream. An [issue][1] has been opened to
have upstream bump the base version.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
This pulls from upstream's revision on hackage. Upstream still has not
updated for newer base, but there is [an issue][1] open.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
The linear change is per upstream. There is [a ticket][1] open for
bumping `base`.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
See [this issue][1] upstream for bumping base version

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is [an issue opened upstream][1] for bumping this.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
[Upstream issue][1] is open for bumping the base dep.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
…rbounds.

An issue is [open upstream][1] to make these same changes.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
The linear revbump is per upstream. An [issue][1] has been opened to
have upstream bump the base version.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
This pulls from upstream's revision on hackage. Upstream still has not
updated for newer base, but there is [an issue][1] open.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
The linear change is per upstream. There is [a ticket][1] open for
bumping `base`.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
See [this issue][1] upstream for bumping base version

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is [a ticket][1] open for bumping `base`.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
[Upstream issue][1] is open for bumping the base dep.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
…rbounds.

An issue is [open upstream][1] to make these same changes.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
There is [a ticket][1] open for bumping `base`.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
The linear revbump is per upstream. An [issue][1] has been opened to
have upstream bump the base version.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
[Upstream issue][1] is open for bumping the base dep.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 12, 2021
…rbounds.

An issue is [open upstream][1] to make these same changes.

[1]: diagrams/diagrams-core#112

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 15, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 15, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 16, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 16, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
ezzieyguywuf added a commit to ezzieyguywuf/gentoo-haskell that referenced this issue Jan 17, 2021
There is an [issue upstream][1] to allow newer base. A [separate
issue][2] has been opened to bump `profunctors` and `template-haskell`

[1]: diagrams/diagrams-core#112
[2]: https://github.com/diagrams/diagrams-core/issues/449

Signed-off-by: Wolfgang E. Sanyer <[email protected]>
@guygastineau
Copy link

What's going on with this?

I would very much like to use Diagrams, but I need to use stack lts-17.4 for the project in order to get other dependencies working. Does work still need to happen to get the Diagram packages to relax the upper bounds limit on base? Is there some sort of serious conflict prohibits a base higher than 4.13?

@ezzieyguywuf
Copy link

For what it's worth, in gentoo i just patched the cabal files to remove the offending upper bounds and things seemed to Just Work (tm)

@guygastineau
Copy link

Okay, thank you for the response. I guess I will try making PRs for each of those packages in the list at the top of this issue. I need to use this library for both linux and windows binaries, so I would prefer having it fixed up stream eventually, but I can vendor them for the time being I guess... :/

Thank you again 🙏

@ezzieyguywuf
Copy link

No problem!

I haven't personally tried it, but you may also consider using the --allow-newer option of cabal. See here for more info.

@guygastineau
Copy link

guygastineau commented Feb 24, 2021

I have messed with allow-newer before. In real projects with a decent amount of dependencies it tends to break something (at least it normally does for me).

@ezzieyguywuf
Copy link

It looks like you can restrict which specific dependencies you relax the bounds on though, and even how much you relax them.

Seems like a pretty reasonable way to hobble along until upstream gets their act together :-P

@guygastineau
Copy link

Oh, wow. Somehow I didn't realize that. I will read the docs again I guess ;)

@guygastineau
Copy link

Hmm, for some reason it seems like it ignore my allow-newer settings in <project>.cabal... When I run with cabal new-build --allow-newer then it finally fixes the dependency conflicts, but including scoped allow newer settings in my cabal file doesn't work. Do I need to do something special? Do I need to use the flag at the cli in addition to specifying the the scoped package allow-newer settings in my cabal file? I am just a bit confused. I know this isn't a forum for getting help with cabal-install, but I really apprevciate any insight you have. Thanks.

@ezzieyguywuf
Copy link

Hrm, yea I'd probably move the convo to somewhere more cabal-specific if I were you. The only thing that comes to mind is to check your cabal versions - both cabal-the-library and cabal-the-exectuable. cabal --version should give you both.

This seems like a generally newish feature so that could be what's causing the discrepenancy you see. Or you may have found a genuine bug.

I personally don't use cabal-the-executable when packaging in gentoo, so I'm not sure if I'll see the same issue. But I'll let you know.

@guygastineau
Copy link

I figured it out from asking Reddit. I didn't know it needed to go into the project.cabal. I was just trying to use it in my individual cabal files. Thank you for your help.

@byorgey
Copy link
Member

byorgey commented Feb 24, 2021

Hi all, thanks for the nudges and the helpful advice on how to get diagrams working in the meantime. I'm definitely aware that the diagrams packages all need bounds updated, and hope to work on getting things updated soon.

@byorgey
Copy link
Member

byorgey commented Jun 21, 2021

I believe that all these packages have now been updated on Hackage.

@byorgey byorgey closed this as completed Jun 21, 2021
@kindaro
Copy link

kindaro commented Jun 22, 2021

Thanks Brent!

sternenseemann added a commit to NixOS/nixpkgs that referenced this issue Jun 22, 2021
haskellPackages.dual-tree: downgrade to 0.2.2.1

Since the resolution of the following issues, we can remove a lot of
jailbreaks:

* diagrams/diagrams-core#112
* diagrams/diagrams-cairo#77
* diagrams/diagrams-rasterific#63

Some we need to keep since the base 4.15 compatibility updates were
sometimes bundled with adjustments for monoid-extras 0.6 / diagrams-*
1.5 which we can't yet update to.

Downgrade dual-tree since 2.2.3.0 requires monoid-extras 0.6 (although
it seemed to compile with 0.5…).
@sternenseemann
Copy link

Thanks a lot of stuff has been resolved now! It seems that now all remaining diagrams packages need to be adjusted for monoid-extras 0.6 / join the 1.5 release line since in some cases these bounds fixed were combined with other breaking changes and atm not all diagrams packages seem to work together in their latest released form on hackage.

@byorgey
Copy link
Member

byorgey commented Jun 22, 2021

Hi @sternenseemann , yes, there are still other diagrams packages that need to be updated, I am slowly working through the list. However, I'm not sure what you mean by upper bounds fixes being combined with other breaking changes --- can you give an example?

@sternenseemann
Copy link

Hi @sternenseemann , yes, there are still other diagrams packages that need to be updated, I am slowly working through the list. However, I'm not sure what you mean by upper bounds fixes being combined with other breaking changes --- can you give an example?

The issue mostly affects diagrams-lib I think (and maybe similar cases, haven't checked) where the update fixing the upper bounds problem also included adjustments for monoid-extras 0.6. This then forces upgrading to diagrams-core 1.5.0 which creates the situation with mismatched 1.4.* and 1.5.* libraries.

For nixpkgs, I have chosen to work around this by patching diagrams-lib, so we have the fixes for optparse-applicative, but not for monoid-extras, so it is possible to workaround this issue for now.

@byorgey
Copy link
Member

byorgey commented Jun 22, 2021

I'm still not sure I understand. What is the problem with being forced to upgrade to diagrams-core-1.5 and having mismatched version numbers? Does something actually break or do you just not like having the version numbers be different?

Once upon a time we tried to make sure that the version numbers of all the diagrams packages stayed in sync with each other. But that was annoying and a lot of work. In this case adjusting to some changes in dependencies required technically breaking changes in monoid-extras and diagrams-core, and I decided it was not worth it to go through and make a major version bump in all the other diagrams packages (whose APIs did not change at all) just to have the version numbers stay in sync.

To be clear, if something specific is broken we would obviously love to know about it so we can fix it!

@sternenseemann
Copy link

I want to keep the diagrams wrapper package working as well which constrains diagrams-core and diagrams-lib to 1.4.* which is the concrete problem currently. Also I don't think all packages support monoid-extras 0.6 yet, so that also creates trouble since we can't have multiple versions of that package at the same time.

By the way, what happened to the idea of a diagrams monorepo? I can imagine that it would reduce the churn making such changes and it would also help people like me maintain an overview.

@byorgey
Copy link
Member

byorgey commented Jun 24, 2021

I still think a diagrams monorepo would be a good idea in theory, but it sounds like a lot of work to import everything and get the CI set up and so on.

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

6 participants