serokell / universum

:milky_way: Prelude written in @Serokell
MIT License
174 stars 26 forks source link

[Chore] Build with LTS-21.0, prepare a release #289

Closed Martoon-00 closed 1 year ago

Martoon-00 commented 1 year ago

We want to make universum work with the recent LTS-21.0, that would at least be helpful for Morley project.

So make CI test against the most recent GHC version, do the necessary changes. The prepare the next release.

Description

Related to #288

Related issues(s)

Fixed #

✓ Checklist for your Pull Request

Ideally a PR has all of the checkmarks set.

If something in this list is irrelevant to your PR, you should still set this checkmark indicating that you are sure it is dealt with (be that by irrelevance).

Related changes (conditional)

Stylistic guide (mandatory)

✓ Release Checklist

lierdakil commented 1 year ago

Uh. You forgot to bump stack's ghc version in ci.yml. Also might as well bump stack version while at it.

lierdakil commented 1 year ago

WTH, Windows build dies horribly while trying to link tests on 9.4.5.

Martoon-00 commented 1 year ago

WTH, Windows build dies horribly while trying to link tests on 9.4.5.

Do you think Morley can wait for this to me properly resolved by devops, or we better try to invent a workaround, e.g. ignore Windows support?

lierdakil commented 1 year ago

properly resolved by devops

Frankly, I'm not entirely convinced there's something "to be properly resolved" here, I've since seen GHC 9.4.5 segfaulting on Windows when trying to build stuff, too, so probably it's just that :shrug: Sigh. I can take a closer look though, if you want. The first thing I'd suggest trying is building with -fasm instead of -fllvm.

Do you think Morley can wait

Honestly, I just want to get the update over with, so I can play around with the cool stuff like Char kind and OverloadedRecordDot. FWIW, this here's not the only blocker for Morley.

But arguably we want to push out the release sooner rather than later, if for no other reason than Universum not being on Stackage means Hoogle doesn't index it and that's annoying :unamused:

Martoon-00 commented 1 year ago

I can take a closer look though, if you want.

Can I offload this to you to try then?

Or I could go with your guesses, but it would definitely take more time.

lierdakil commented 1 year ago

Can I offload this to you to try then?

Sure

lierdakil commented 1 year ago

Oh well, apparently it was just cabal 3.6 not playing ball with newer ghc.

Martoon-00 commented 1 year ago

Just in case: @gromakovsky would you like to check this once again, or I can merge?

lierdakil commented 1 year ago

ping @gromakovsky @Martoon-00 can we get this over with? :sweat_smile:

gromakovsky commented 1 year ago

Oh, let me look now 👀

gromakovsky commented 1 year ago

Solution: bump the version from 1.8.1.2 to 1.8.2, since we started exporting ~. Whether is this a breaking change or not - is arguable, but let's play it safe.

What do you mean by "safe"? AFAIK when you increase c in a.b.c, it means that changes are non-breaking. My interpretation of "safe" is "let's mark it as breaking, because marking non-breaking as breaking is safer than marking something breaking as non-breaking". FTR I think it's not a breaking change, so I don't mind setting 1.8.2.

lierdakil commented 1 year ago

when you increase c in a.b.c, it means that changes are non-breaking

Hackage PVP is rather specific in what it calls "breaking changes":

If any entity was removed,

nope

or the types of any entities or the definitions of datatypes or classes were changed,

also no

or orphan instances were added or any instances were removed,

not to my knowledge

then the new A.B MUST be greater than the previous A.B.

Although, that all includes dependencies, and that all gets rather vague with instances in base when allowing multiple versions.

gromakovsky commented 1 year ago

So long story short, 1.8.2 should be fine and we don't need 1.9.0 AFAIU.