pvp icon indicating copy to clipboard operation
pvp copied to clipboard

Provide guidance on non-enumerated changes

Open gbaz opened this issue 2 years ago • 4 comments

As inspired by https://github.com/haskell/pvp/issues/55 this PR does two things. First it changes "other changes" to "last-component changes" to disambiguate that this only covers other changes which are "extremely minor". Second, it adds a new clause for "non-enumerated changes" as an umbrella clause to handle any cases not explicitly enumerated elsewhere with the guidance that any change which would cause a package depending on the versioned package to fail to compile must be considered breaking.

This clause then can cover new features introduced by GHC as general guidance without the PVP needing to be specifically updated immediately to cover them. (Though as time goes on, we may of course add more enumerated changes from new GHC features to the explicit enumerations of breaking and non-breaking changes).

gbaz avatar Oct 10 '23 16:10 gbaz

-1


  • it is not obvious to me that this is the "spirit" of the spec
  • it is a blanket statement that will regress future efforts: now we can point everything and everyone to this and stop discussing what is actually API. GHC might incorrectly stop compiling certain code changes. What causes code to stop compiling should not be mandated by current GHC implementation. And how are end users supposed to validate this? We want clear rules that can be applied without running the compiler. So either this new rule adds nothing (because it doesn't say what "would fail to compile" actually means) or it now defers PVP to a runtime property of invoking GHC

TLDR: how to figure out if you broke API: Compile all your reverse dependencies.

hasufell avatar Oct 11 '23 03:10 hasufell

The text of the proposed change makes no mention of GHC or an implementation. The above comment does not appear to be pertinent to the text of the proposed change, but arguing against something else entirely -- what, precisely, I don't know.

gbaz avatar Oct 11 '23 04:10 gbaz

The text of the proposed change makes no mention of GHC or an implementation.

Then it absolutely says nothing, because "would fail to compile" is entirely undefined and gives no value for the end user.

hasufell avatar Oct 11 '23 05:10 hasufell

The intention is that the guidance is considered with regards to the specified behavior of the new features.

gbaz avatar Oct 11 '23 14:10 gbaz