"Sebastian Graf" <sgraf1...@gmail.com> writes: > Hi, > > Do we have concrete evidence that minor bumps in a boot library have > caused breakage in the past? (That would of course be a bug in the boot > library according to the PVP.) > Yes, I cited two such examples that came to mind in the original message. These weren't hard to find, despite boot library bumps in GHC minor releases being historically rather rare.
Contrary to what one might be tempted to conclude, PVP-compliant, non-buggy minor bumps can cause breakage for downstream users. The reason for this is typically the introduction of new exports. For instance, in #25411 we found that the bump of `deepseq` in 9.8.3 introduced a new export (`Unit`) from `Control.DeepSeq`. This is, of course, a minor change under the PVP but renders previously working modules unbuildable due to ambiguous occurrences. Perhaps in an ideal world all `import`s would be either `qualified` or include an explicit import list but, sadly, this is not the world in which we live. Consequently, the principle difference between a major and minor bump is that the breakage from the latter is usually "easy" to fix. However, it is breakage nevertheless and even easy breakage can cost significant time when migrating large code-bases. > I would think that such breakage is even less of an issue for a new GHC > minor release (say GHC 9.8.4). > The hackage ecosystem is likely prepared to compile with the GHC 9.8 > series at this point, so it should be possible to detect such breakages > by compiling stackage/hackage and running testsuites. > Indeed head.hackage identified the breakage in 9.8.3. However, we decided to move ahead regardless since the maintainer requested it. The policy proposed in the head of thread will make this sort of breakage considerably more likely to appear in future releases. > Besides, the only reliable way to prevent such breakage is not to bump > any boot library *at all*. > If a boot library breaks on a minor bump, it is just as likely that it > breaks on a super-minor bump. > I am not sure I agree. While the PVP is silent on this matter, IMHO patch-level bumps should not touch external interfaces at all, only implementation and packaging. This makes it much less likely for breakage to manifest. Cheers, - Ben
signature.asc
Description: PGP signature
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs