[Haskell-cafe] Versioning of libraries bundled with GHC pre-releases
Ben Gamari
ben at well-typed.com
Wed Jan 17 19:25:55 UTC 2018
Oleg Grenrus <oleg.grenrus at iki.fi> writes:
> Hi Ben,
>
> Note that PVP dictates to do _major_ bump every time a breaking changes
> is introduced:
>
Right; this is what I was trying to imply when I said "at least a minor
bump" in the initial email.
> 1. Breaking change. If any entity was removed, or the types of any
> entities or the definitions of datatypes or classes were changed, or
> orphan instances were added or any instances were removed, then the
> new A.B MUST be greater than the previous A.B.
>
> This means that first alpha-release for e.g. GHC-8.4.1/base-4.11.0.0 or
> GHC-8.6.1/base-4.12.0.0 will force to freeze both GHC and base.
>
> For example "Make the Div and Mod type families `infixl 7`" commit
> https://github.com/ghc/ghc/commit/fdfaa56b04b2cefb86e4dc557b1d163fd2e062dc
> is a breaking change. OTOH it's pity not to fix new feature before it's
> officially released.
>
Yes, the fact that this sort of thing would require a decision between a
major bump or punting until the next release is terribly unfortunate.
In an idea world we would simply "be careful" and make sure tha major
interface decisions are made by the time of the first alpha but
unfortunately, as the above commit illustrates, mistakes are bound to
happen. I don't know the right compromise here.
> I cannot judge how much ghc-the-lib public API changes.
>
> TL;DR first alpha release is too early to do "PVP dictated freeze".
>
This may well be so. Hopefully this thread will help us determine the
costs and benefits of freezing during the alpha phase.
> I think that we need *staging* (mutable) package repository, where
> package authors can upload packages using lighter release procedure.
> Let's keep Hackage to high standards, and test in a staging environment,
> not the production one.
>
That is reasonable; however, I am a bit worried that our current tooling
isn't quite up to the task. Herbert's head.hackage effort is a great
start, but I fear that the friction of maintaining and using the
patchset may hamper adoption.
Cheers,
- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180117/d5dfa647/attachment.sig>
More information about the Haskell-Cafe
mailing list