Proposal: packages in GHC should have different versions from hackage if the packages differ
marlowsd at gmail.com
Wed Oct 31 13:22:51 CET 2012
On 26/10/2012 13:02, Ian Lynagh wrote:
> What exactly would the new policy be? Is it just the last component that
> is bumped, or is the version number bumped according to the PvP? Is the
> version bump relative to what was in the repo before, so after the
> 18.104.22.168 directory release we might have 22.214.171.124, 126.96.36.199 and 188.8.131.52 in
> the repo before 184.108.40.206 is release, skipping 1.3 and 1.4? Or do you
> check what the last release was and only bump if necessary relative to
> that (so once the repo reaches 220.127.116.11 it will not be bumped further
> until a release is made)?
Bump versions according to the PVP, relative to the last version that
was released on Hackage. So for example that means that the first time
we make an API-breaking change we bump the major number of the package,
but no further bumps are needed until after the next release (which is
typically when we next release GHC).
This means that the first API-breaking change to a package is a little
painful because we have to go around and bump the dependencies on a few
other packages, which might be maintained upstream, and that might
require creating stable branches. But this will have to be done
sometime before the next GHC release anyway.
You can check whether the version has already been bumped by comparing
it against the version in the previous GHC release. It would be helpful
to adopt a convention of adding a comment in the .cabal file indicating
the GHC release corresponding to each package release version.
> Would we also follow this policy for packages we don't maintain (perhaps
> with ghc-only version bumps if necessary)?
We wouldn't be making API-breaking changes to packages we don't
maintain, and we won't pull in API-breaking changes from upstream unless
there has been a release. If we need to modify an upstream package to
bump its dependencies, then that will require a patchlevel version bump
of the upstream package which we can hopefully push upstream first.
More information about the Libraries