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

bytestring 0.12 #54

Closed
wants to merge 2 commits into from
Closed

bytestring 0.12 #54

wants to merge 2 commits into from

Conversation

andreasabel
Copy link
Member

  • Bump Haskell CI to latest GHCs: 9.6.2 9.2.8
  • v1.3.2.1-r1: allow bytestring-0.12

@andreasabel andreasabel closed this Jul 8, 2023
@andreasabel
Copy link
Member Author

Pushed to master in 771ac3b

@andreasabel andreasabel deleted the bytestring-0.12 branch July 8, 2023 17:58
@phadej
Copy link
Contributor

phadej commented Jul 8, 2023

Same question as with cassava, parsec depends on text and neither allow bytestring-0.12. Have you tested that they work?

@andreasabel
Copy link
Member Author

I tested with constraints: bytestring >= 0.12 and allow-newer: bytestring locally.
cabal-plan fingerprint shows just one entry for bytestring:

<hash> G bytestring-0.12.0.0

I concluded this was enough evidence.

I could have added a constraint-set for bytestring-0.12 to the CI, but now I realize that this only checks the build, but does not run the tests: https://github.com/haskell/base64-bytestring/pull/50/files#r1257414879
Is there a way to instrument the constraint-set step to also run the tests?

@phadej
Copy link
Contributor

phadej commented Jul 9, 2023

Is there a way to instrument the constraint-set step to also run the tests?

https://github.com/haskell-CI/haskell-ci/blob/782c6f634b44ccd8f55c60d8058673bdfc176e23/cabal.haskell-ci#L106-L115

@andreasabel
Copy link
Member Author

Thanks for the pointer, @phadej!

Unfortunately, constraint-set does not recognise allow-newer, is there a way to place allow-newer: bytestring in the cabal.project for the constraint-set?

@phadej
Copy link
Contributor

phadej commented Jul 10, 2023

Unfortunately, constraint-set does not recognise allow-newer

And I don't see a reason to make it.

Add allow-newer to the whole cabal.project. The bytestring is pinned to installed version by the step building with bundled libraries, and then the constraint set will build separately. (Or if the library weren't boot library, you probably should have constraint sets for various major versions anyway to ensure that the old one is tested when support elsewhere catches up, and then cabal-install won't pick old one if not explicitly asked for).

@andreasabel
Copy link
Member Author

One reason could be that users might expect to be able to place a allow-newer there.
Another one, as you hint, is that a raw-project allow-newer:foo affects also the vanilla builds, if foo isn't constrained otherwise.

Older versions can be conveniently tested with a CI based on stackage snapshots, complementing the Haskell CI.

In #55 now I turned your advice into a constraint-set for bytestring-0.12.

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