Fwd: Release policies

Gershom B gershomb at gmail.com
Thu Dec 14 00:27:13 UTC 2017


On Wed, Dec 13, 2017 at 7:06 PM, Boespflug, Mathieu <m at tweag.io> wrote:
>
> But crucially, what *is* the policy around Cabal versions? This
> comment, https://ghc.haskell.org/trac/ghc/ticket/14558#comment:23
> claims "if Stack doesn't support the version of Cabal that ships with
> a certain version of GHC, it shouldn't claim that it supports that
> version of GHC. The same applies to cabal-install". Is any build tool
> linked against Cabal-X by definition "not a supported configuration"
> by GHC-Z if it ships with Cabal-Y such that X < Y?

My understanding is that this is the general thought, yes. In fact,
I've been told that even though cabal-install 1.24 did end up working
with the GHC 8.2.x series, the release notes, which were not updated
properly, actually _were supposed_ to say cabal-install 2.0.0.0 was
what was supported there. I believe future cabal-installs will warn
when used with a ghc with a newer Cabal-lib than they were built
against...

> Right. But switching from Cabal-2 to Cabal-3 (a hypothetical at this
> point) sounds like a whole new set of features transitively just made
> it into the compiler. Is that something we're happy to happen during
> feature freeze?

Right. After freeze, the compiler itself shouldn't switch from Cabal-2
to Cabal-3. But I would imagine rather that the Cabal-3 tree and the
compiler tree would be updated in tandem, and then the "freeze" would
sort of apply to both in tandem as well. So there wouldn't be big
changes after the freeze, but nor would the compiler be coupled to a
_released_ lib. Rather, they would develop together, freeze together,
and release together.

> I don't disagree. But then we'd need to abandon any notion that
> versions of packages on Hackage and versions of packages in the GHC
> release tarball always match up. Might even be worth calling that out
> explicitly in the policy.

Not exactly. The tarball of the package on hackage should match the
release tarball. Revisions don't change the tarball. They just add
additional metadata to the index as well that cabal-install knows how
to use in conjunction with the tarball:
https://github.com/haskell-infra/hackage-trustees/blob/master/revisions-information.md#what-are-revisions

--Gershom


More information about the ghc-devs mailing list