clash-compiler icon indicating copy to clipboard operation
clash-compiler copied to clipboard

Upload `clash-lib`, `clash-ghc`, `clash-prelude-hedgehog` to Stackage (both nightly and lts)

Open evan0greenup opened this issue 11 months ago • 8 comments

clash-prelude is currently included in Stackage.

It would be nice to add those packages above into Stackage as well to make stack.yml without any extra-deps fields.

evan0greenup avatar Mar 14 '24 03:03 evan0greenup

Thanks for taking the time to file an issue!

We are painfully aware of this issue. Unfortunately, fixing it is impossible: a bug in Cabal prevents building Clash in Stack for GHC's 9.6 and newer. The bug has been fixed, but the fix has not made GHC 9.8.2 in time, so we're hoping it will be included in GHC 9.8.3 in the future so we can re-enter Stackage nightly.

For more information, see for instance https://github.com/clash-lang/clash-compiler/pull/2665#issuecomment-1939044550 .

DigitalBrains1 avatar Mar 14 '24 11:03 DigitalBrains1

(Of course the issue is still valid and should remain open even though we can do nothing more towards the resolution. I made an error in judgement when I closed this. Time to grab another coffee.)

DigitalBrains1 avatar Mar 14 '24 11:03 DigitalBrains1

That's not the reason we're not included in stackage-nightly, it's because clash-lib has a dependency on the officially unmaintained docopts-hs. clash-lib could be included again once we take over maintership of docopts-hs or drop it as a dependency.

christiaanb avatar Mar 14 '24 12:03 christiaanb

docopt has been in Stackage since nightly-2024-03-08, as Martijn and I are now the maintainers. But we thought we could not upload Clash because of the Cabal bug. Now when I'm looking at it again, that workaround is only needed for clash-cores and clash-cosim? So we can just go on Stackage nightly?

I don't know what the process is for getting back into an LTS.

DigitalBrains1 avatar Mar 14 '24 12:03 DigitalBrains1

~~You make a PR that uncomments these lines: https://github.com/commercialhaskell/stackage/blob/8224a55ad30685f47ec8c7fd5b9e5745b83110b5/build-constraints.yaml#L2517-L2518~~

After it's been added to nightly, you wait until the next major version bump of the LTS

christiaanb avatar Mar 14 '24 12:03 christiaanb

I know the process for getting on Stackage: you make a PR on master adding/uncommenting the packages. Sure. That's not the problem. I said for getting back into an LTS. My guess is going to be that is not by doing a PR on master.

[edit] That still doesn't answer the question. @evan0greenup explicitly said both nightly and lts. And I know that it is indeed possible in principle to get into an already released LTS as I think they are deliberately asking for. I just don't know the process and whether we would even qualify. [/edit]

DigitalBrains1 avatar Mar 14 '24 12:03 DigitalBrains1

I am not aware of any processes to get a "new" package into a minor version bump of a stackage LTS.

christiaanb avatar Mar 14 '24 13:03 christiaanb

https://github.com/commercialhaskell/stackage/pull/7346 \o/

Woohoo! 🚀

The usual flow for Stackage is that you add/re-add your package to the nightly, and when a new LTS is released, that is where your package will be available (again). I do believe I've heard about an alternative flow where you get into the current LTS, but I couldn't find instructions and I don't know what requirements there are for that flow. @evan0greenup, if you do know and also think Clash would qualify, by all means please elucidate me :-D. It would be nice to be in LTS 22.

DigitalBrains1 avatar Mar 14 '24 15:03 DigitalBrains1