haskell / cabal

Official upstream development repository for Cabal and cabal-install
https://haskell.org/cabal
Other
1.58k stars 685 forks source link

PVP breakage: `Cabal-(syntax-)?3.12.1.0` #10161

Open ffaf1 opened 4 days ago

ffaf1 commented 4 days ago

Describe the bug Breakage re: PVP in 3.12.1.0. See #10160 for a broader overview.

To Reproduce

List of offending PRs:

Comment What should we do? Shall we revert those changes in 3.12.3.0? Or will that be useless or even counter-productive as codebases are being updated right now?

ulysses4ever commented 4 days ago

How hard is it to release just Cabal and Cabal-syntax without the breaking changes as 3.12.2? I don't think it's hard?

ffaf1 commented 4 days ago

How hard is it to release just Cabal and Cabal-syntax without the breaking changes as 3.12.2? I don't think it's hard?

Definitely not.

What about 3.12.1.0 (Cabal and Cabal-syntax)? Deprecate it?

ulysses4ever commented 4 days ago

Yeah, there's the standard dance: deprecate and put base<0 as a revision.

ulysses4ever commented 4 days ago

Although, base<0 may screw the users of cabal-install-3.12.1.0 under custom setups. That's why I was asking for opinions: there's probably people experienced in this more than I...

Mikolaj commented 3 days ago

We should verify experimentally by reproducing #9917, but I hope custom setups can mix minor versions just fine. It was the lack of a matching major release of cabal-install that was the problem.

However, releasing only Cabal(-syntax) makes sense only if there are no PvP violations also in the cabal-install API. Let's wait and see. If only Cabal(-syntax) is affected, then the big rush of updating to Cabal 3.12 was at Cabal 3.12.0.0, so deprecating Cabal 3.12.1.0 should not be too disruptive. And the cabal-install library is not as widely used, so perhaps deprecating it is not a big deal as well, if that needs to be done.

What we could do sooner rather than later is to warn users (in particular GHC, @bgamari, @mpickering) to hold their horses regarding the move to Cabal 3.12.1.0, while encouraging the users of the cabal-install tool to switch to 3.12.0.0 ASAP. Maybe even in the release announcement on discourse and in some mailing lists?

Bodigrim commented 3 days ago

I would probably leave things as they stand for now. It's unlikely that anyone is really badly broken. Multiplying amount of Cabal versions floating around is not helpful either.

Check that there are @since pragmas, put a big warning in changelogs, update processes for the next time, that's it.