
On 09.10 08:57, Mario Blažević wrote:
Via Hackage. Let's say my-package is at version 1.7.2 as far as features and bug fixes go; Hackage would then host my-package-1.7.2.708 and my-package-1.7.2.710. The former is uploaded by running cabal upload on branch ghc-7.8 of the source repository, the latter on branch ghc-7.10. The main difference between the branches would be in the .cabal file:
on ghc-7.8 branch
version: my-package-1.7.2.708 build-depends: ghc <= 7.8.*,
on ghc-7.10 branch
version: my-package-1.7.2.710 build-depends: ghc == 7.10.*,
You can do this with no extra tooling, the only extra work is to run seven commands instead of one at publishing time:
git checkout ghc-7.8 git merge master cabal upload git checkout ghc-7.10 git merge master cabal upload git checkout master
And then GHC 8.0 is released and your library is broken until you update the cabal file or add a new branch. Which means that all libraries depending on your library refuse to build... This would mean that all libraries would need a new release on each GHC major version? Oh and testing your library on HEAD before release? Not supported? Using any library depending on your library before the release? - Taru Karttunen