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

Update lower bounds (base, template-haskell) #254

Merged
merged 1 commit into from
Apr 19, 2024

Conversation

sheaf
Copy link
Contributor

@sheaf sheaf commented Apr 10, 2024

This PR updates the following lower bounds:

template-haskell: 2.16 -> 2.17
base: 4.14 -> 4.15

This ensures we don't try to build time >= 1.14 with GHC 8.10 or below,
which is not supported:

lib\Data\Time\Clock\Internal\DiffTime.hs:83:18: error:
Error: Not in scope: type constructor or class ‘TH.Quote’

lib\Data\Time\Clock\Internal\DiffTime.hs:83:44: error:
Error: Not in scope: type constructor or class ‘TH.Code’

I believe this should be applied as a Hackage revision to the package as well.

@AshleyYakeley
Copy link
Member

The time library only supports the most recent three versions of GHC (9.4, 9.6, 9.8).

@sheaf
Copy link
Contributor Author

sheaf commented Apr 10, 2024

The time library only supports the most recent three versions of GHC (9.4, 9.6, 9.8).

That's fine, but this should be reflected in the bounds of the package, so that Cabal's solver doesn't pick them. As it stands, version 1.14 is picked with older GHCs when it doesn't build with them. This causes CI breakages for packages that have wider compatibility windows.

@AshleyYakeley
Copy link
Member

OK, fair. Probably setting the lower bound of base as well, to make sure cabal never picks a GHC version before 9.4, will be a more robust solution. In any case I want to avoid having to test with every GHC version...

@sheaf sheaf force-pushed the patch-1 branch 3 times, most recently from da41f19 to 013d3f4 Compare April 16, 2024 08:42
This commit updates the following lower bounds:

  template-haskell: 2.16 -> 2.17
  base: 4.14 -> 4.15

This ensures we don't try to build time >= 1.14 with GHC 8.10 or below,
which is not supported:

  lib\Data\Time\Clock\Internal\DiffTime.hs:83:18: error:
  Error:     Not in scope: type constructor or class ‘TH.Quote’

  lib\Data\Time\Clock\Internal\DiffTime.hs:83:44: error:
  Error:     Not in scope: type constructor or class ‘TH.Code’
@sheaf sheaf changed the title Update lower bound on template-haskell to 2.17 Update lower bounds (base, template-haskell) Apr 16, 2024
@sheaf
Copy link
Contributor Author

sheaf commented Apr 16, 2024

@AshleyYakeley I have updated this PR with a lower bound on base.

I have run the CI on my fork with an extended set of GHC versions and can confirm that time 1.14 builds and passes tests on GHC 9.0 and 9.2 (on Linux, Mac and Windows), so I have set the lower bounds to include 9.0 and 9.2.
If you would prefer, I can bump the lower bounds corresponding to GHC >= 9.4. However, keeping the bounds inclusive of 9.0 but with "tested-with: 9.4, 9.6, 9.8" seems like the best approach to me.

@sheaf
Copy link
Contributor Author

sheaf commented Apr 19, 2024

Is there anything blocking this PR from getting merged? Let me know if you would like some changes.

@AshleyYakeley
Copy link
Member

You don't need to do anything. But I need to write some testing related to this to make sure time never gets selected with unsupported GHC versions.

@AshleyYakeley AshleyYakeley merged commit 1532e28 into haskell:master Apr 19, 2024
11 checks passed
@AshleyYakeley
Copy link
Member

OK, have also updated time-1.14 on Hackage with the new constraints.

@sheaf
Copy link
Contributor Author

sheaf commented Apr 19, 2024

OK, have also updated time-1.14 on Hackage with the new constraints.

Great, thanks a lot.

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

Successfully merging this pull request may close these issues.

2 participants