haskell / cabal

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

Release for GHC-8.10 #6247

Closed phadej closed 4 years ago

phadej commented 5 years ago

Yesterday (2019-09-18) Ben sent an email about GHC-8.10 plans: https://mail.haskell.org/pipermail/ghc-devs/2019-September/018136.html

In particular I would suggest the following concrete schedule:

  • October 18 2019: start of one week freeze in preparation for branching
  • October 25 2019: ghc-8.10 branch cut
  • November 8 2019: 8.10.1-alpha1
  • November 22 2019: 8.10.1-alpha2
  • December 6 2019: 8.10.1-alpha3
  • December 20 2019: 8.10.1-rc1
  • January 10 2020: Final 8.10.1 release

I propose that we only do Cabal-3.0.x release. Specifically


We haven't yet updated the documentation for 3.0, or allow users upload cabal-version: 3.0 packages to Hackage: So let's rather concentrate on these things, than trying to get more undocumented and unfinished things in.

bgamari commented 5 years ago

Thank you for opening this, @phadej!

I completely agree that GHC 8.10 should ship with a minor Cabal release if at all possible. @23Skidoo, I have sent you a few emails on this over the past few months; have you received these?

23Skidoo commented 5 years ago

@phadej +1 on only making a minor release for 8.10.

@bgamari Sorry for procrastinating on that e-mail, just answered it.

hvr commented 5 years ago

I really don't want to promise anything about not needing a major version bump (NB: new features don't require a major ver bump; it's breaking changes that require it; and I'm not going to jump through hoops just to avoid a breaking change in order to fix something only because we aren't allowed to perform a major ver bump)

Fwiw, I think the GHC release frequency is getting really silly given the ecosystem still hasn't recovered & caught up with GHC 8.8.1 (I'm still in the process of finishing up some GHC 8.8-release related tasks) we're already being stressed with an imminent GHC 8.10 branch cut I really couldn't care less about until GHC 8.8 stabilises enough and gains more confidence... why is it sooooooo important to rush out a GHC 8.10 which nobody needs and yet causes everyone unnecessary extra support-work?

phadej commented 5 years ago

@hvr, I agree. If something like Quick Look Impredicativity gets into GHC-8.10, then we'll need to make a major release of Cabal.

But still, I propose to make as small change on top of 3.0 as possible, even we unfortunately need to "consume" a major version.

But I do agree on the last point. I personally (as a Cabal maintainer, Hackage trustee or ecosystem contributor) would like to not do anything related to the new major GHC release this year.

EDIT: to mention "catching up with GHC-8.8" thing: even cabal-install itself is not buildable with GHC-8.8 due dependencies catching up.

gbaz commented 5 years ago

Among other tasks that we haven't caught up with -- no new platform release (which only affects windows). I was planning to do this once we had a cabal point release to cover a windows-related bug in cabal 3.0 but that hasn't happened yet. Also, no new hackage deploy yet to come up to date with new cabal-the-library stuff. And of course we're still behind on uploading ghc libs to hackage as well.

(and yes, there are also packages still being updated to work with 8.8 also)

23Skidoo commented 5 years ago

A major release that happens only due to a new extension is still "in spirit" a minor release. Agreed that we shouldn't commit to only doing a minor version bump (it doesn't really make a difference for GHC), only to not making a proper major release.

bgamari commented 5 years ago

A major release that happens only due to a new extension is still "in spirit" a minor release.

Precisely.

To rephrase this in my own words: I don't particularly care whether the version number changes in its major or minor number. By "minor release" I mean that the functional difference from the last release should be small. I completely understand that the PVP requires that things like language extension additions require a major version number bump. I just wanted to stress that we should avoid tying GHC to refactorings or feature additions in Cabal.

In my mind the ideal Cabal release for GHC would be a a small patch on top of the last minor release (e.g. adding language extensions and command line flags introduced by GHC) and an appropriate version number bump (major or minor, as dictated by the PVP).

phadej commented 5 years ago

We shouldn’t forget that once in a while there will be major releases of Cabal. And bundling with GHC is the only way to expose new Cabal releases to larger audience (e.g. also during alpha testing window).

Also there might be changes in GHC that simply require bigger changes in Cabal, e.g. extended dependency generation would slightly pointless to implement in GHC if there are no support in Cabal. Similarly Backpack-like features, eg multiple home packages. Looks like Hadrian doesn’t need changes to Cabal anymore, that’s good.

So TL;DR hopefully a release for GHC-8.10 can be small, but we cannot promise that in general

On 25 Sep 2019, at 16.35, Ben Gamari notifications@github.com wrote:

A major release that happens only due to a new extension is still "in spirit" a minor release.

Precisely.

To rephrase this in my own words: I don't particularly care whether the version number changes in its major or minor number. By "minor release" I mean that the functional difference from the last release should be small. I completely understand that the PVP requires that things like language extension additions require a major version number bump. I just wanted to stress that we should avoid tying GHC to refactorings or feature additions in Cabal.

In my mind the ideal Cabal release for GHC would be a a small patch on top of the last minor release (e.g. adding language extensions and command line flags introduced by GHC) and an appropriate version number bump (major or minor, as dictated by the PVP).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

phadej commented 4 years ago

Looks like there is GHC-8.10.1-alpha which bundles some old master commit.


Commits from HEAD & 3.0 common ancestor point:

% git log $(git merge-base Cabal/3.0 HEAD)..HEAD --oneline
63331c95e (HEAD) Merge pull request #6188 from sgraf812/patch-1
cb8b7d7aa Remove dead code
3042371a5 Merge pull request #6217 from haskell/new-ghc-version
8b1baf49b Update custom-setup lower bounds for GHC 8.8 (c.f. #415)
da9e541fc (origin/new-ghc-version) Update setupMinCabalVersionConstraint for GHC-8.8
2387ebb14 Add (for GHC) release checklist
5f05e67b4 Changelog update. [ci skip]
7650ce94c Fix typo introduced in 48151e4a0f9356db92e29d6543c2157064f22e05
e9dfb0b17 Whitespace.
48151e4a0 Formatting.
0da54ab5b s/seperated/separated/. [ci skip]
8ebf0556d Changelog update. [ci skip]
690d6c568 Merge pull request #5902 from m-renaud/mrenaud-non-interactive-default
49cefe85f Merge branch 'master' into mrenaud-non-interactive-default
b6baecc7c Update AUTHORS. [ci skip]
01491e0b6 Update .mailmap.
9b33459e2 Formatting.
a7a9766a2 Merge pull request #6195 from DanielG/fix-v2-install-progdb
d8e55bd95 Merge pull request #6199 from toonn/doc-html-location
1ad6c0fc5 Fix v2-install ProgramDb confusion
cffeb5974 Improve docs for html-location
773ad13a0 Merge pull request #6148 from haskell/changelog-5977-6134
1d2ff3450 Merge pull request #6191 from haskell/cabal-version-3.2
09210e3ab Add cabal-version: 3.2
e61483892 Merge pull request #6185 from haskell/tagged
21e8c7fe7 (origin/tagged) Depend on tagged to get Proxy
853414b78 Merge pull request #5451 from nh2/issue-4925-pass-ld-options-to-ghc
26f5b34ef Changelog: Add entry for `ld-options` being passed to ghc
7e0a7b85d Pass `ld-options` through to GHC. Fixes #4925
83b27d925 Merge pull request #6173 from haskell/ignore-invalid-fields
438db9450 parser: Clearly state that invalid fields are ignored
3f15b3244 Merge pull request #6171 from haskell/spdx-3.6
bc2131733 (origin/spdx-3.6) Update to SPDX License List 3.6 2019-07-10
0d3289215 Merge pull request #6161 from haskell/gb/parse-config-multiline
5c1c286e1 (origin/gb/parse-config-multiline) Update changelog
a30a290c2 test for parsing option as list
f6c6c400b whoops
e5b53720d parse some comma sep fields in config, rearrange some parse functions
c98805086 Merge pull request #6158 from haskell/fgsectiondescrs
1f5426cbc Add FGSectionDescrs so cabal.project sections can be parsed using FieldGrammar
0b7db2bb2 Merge pull request #6156 from haskell/nonempty-perrors
eb5e6f322 (origin/nonempty-perrors) runParseResult reutrns NonEmpty PError
d302c44a3 (origin/changelog-5977-6134) Add changelog for #5977 amd #6134 fixes [ci skip]
0d2d9ca7b Merge pull request #6137 from haskell/issue-5977
48a8aa2bc Merge pull request #6135 from haskell/bump-version-to-3.1
73751a9a1 (origin/issue-5977) v2-haddock should fail when v2-build fails
525ef663a Haddock failures should be fatal when running Haddock
91dc14ca1 Bump version to 3.1.0.0
dc138034d Merge pull request #6134 from haskell/lite-literate-run
13e9bdcb5 cabal run works with Literate Haskell file
9616d6892 Merge pull request #6132 from haskell/enable-cmd-run-script-test
edc79ab74 Issue 5775 seems to be fixed, let's see
27221efc8 Merge pull request #6131 from haskell/erikd/NoCabalFileFound
20492dabf Improve CabalFileSearchFailure messages
46be823b4 Revert "Revert "Make `Setup.hs copy/install` work when data-files uses **. (#6127)""
a6fff366d Revert "Make `Setup.hs copy/install` work when data-files uses **. (#6127)"
7fec503aa Make `Setup.hs copy/install` work when data-files uses **. (#6127)
ed3ae1332 Merge pull request #6111 from mpickering/debug-info
fef6d8d40 Fix `v2-repl` changing directory incorrectly. (#6115)
4d2ca5255 Changelog for #5526
ffd45c505 Make `debug-info` >= 1 imply library/executable-stripping: False
c241917a7 Formatting.
c02ed9424 Formatting, whitespace, 80-col violations.
5a07388f2 Formatting, whitespace, 80-col violations.
3a8ecbe6c Whitelist the 3.0 branch.
6318eea53 Add missing trailing comma.
1a8744de1 Update changelog and re-word init command description.
372eb9a36 Default to non-interactive init.

from GHC's commit to master HEAD (2019-11-25)

% git log HEAD..Cabal/master --oneline
7587a5fc0 (origin/master, origin/HEAD, Cabal/master) Merge pull request #6368 from haskell/zinza2
1e22324e1 Merge pull request #6364 from haskell/async-compat
e75a64836 (origin/zinza2) Second try to use zinza
14dd0eece Make Async compat and use it to clean-up rawSystemStdInOut
1c1ce1e70 Merge pull request #6336 from dwijnand/validate.sh/allow-short-ghc-binaries
864f9e801 Merge pull request #6352 from dwijnand/travis-ci/fast_finish
7d7113654 Merge pull request #6363 from haskell/makefile-lib-ghc-7.6
5c4e09afd (origin/makefile-lib-ghc-7.6) Makefile rule to build Cabal with GHC-7.6
eb2f7642f Merge pull request #6357 from haskell/docker-validate-deps
87432c037 (origin/docker-validate-deps) Pre-install deps in validate.dockerfile, relax some upper bounds.
a61012c90 Merge pull request #6356 from haskell/issue-6334
4af71790b (origin/issue-6334) Add regression test, and resolve #6334
274d295f6 Merge pull request #6345 from haskell/lukko
fedadb3aa Use lukko for file-locking
b3b0276b3 .travis.yml: Add fast_finish to get build status faster
39fb0a4db Merge pull request #6351 from haskell/travis-xenial
5e67a1342 Merge pull request #6350 from haskell/validate-dockerfile
08f9fa61f (origin/travis-xenial) Change travis dist: trusty -> xenial
92f3c53d9 (origin/validate-dockerfile) Add make validate-via-docker
a9861448e If open files limit >= 4096, pretend it's infinite
dc2114a36 Merge pull request #6340 from haskell/less-partial
13599ae83 (origin/less-partial) Replace Prelude.head/tail/init/last with NonEmpty
a6ada8496 validate.sh: Allow using short-version ghc binaries, like ghc-8.6
0046cf2db Merge pull request #6335 from dwijnand/tests/avoid-blocking-on-git-tagging
d9e03616f Merge pull request #6337 from haskell/alex-3.2.5
7ee2073ed (origin/alex-3.2.5) alex 3.2.5 reordered imports
bab51e736 Merge pull request #6333 from dwijnand/CABALPLANLISTBIN
68b4c62c3 tests: avoid blocking on git tagging
c0e41763c validate.sh: Fix cabal-plan invocation
129775a78 Compute correct install directories for instantiated Backpack components  (#6317)
70da03e34 Merge pull request #6207 from fendor/install-honour-suffix-prefix
9dfcece02 Merge pull request #6320 from dwijnand/semigroups-rebased
31532dfb7 Merge pull request #6314 from antonlogvinenko/configuration-chapter-typo-fix
1ea97305e Merge pull request #6311 from dwijnand/repl-fix-main-test-module-in-scope
bdfb42069 Drop *By1 parsers
1c11acb53 Use Data.List.NonEmpty and avoid some partial functions
e5b48049e Merge PR#6312
1eb646d11 Start GHCi with the main module in scope
0d4692151 Merge pull request #6316 from dwijnand/ghc-8.6.5
c620f0050 Merge pull request #6325 from dwijnand/travis_retry-uploading-to-s3
881232a85 CI: Add travis_retry when uploading binaries to S3
157a973db Fix typo in Configuration chapter [ci skip]
03d389a82 Bump from GHC 8.6.4 to 8.6.5
bf69d2d4c .travis.yml: Allow forks to build
9e0ab3b4d Fix store-dir in ghc env files generated by `cabal install --lib --package-env` (#6298)
b7d5bcbe4 Merge pull request #6303 from kozross/master
b662373e5 Fix spelling error in bug report template
21762b71a Merge pull request #6224 from RyanGlScott/benchmark-options
ad597e218 Add test case for v2-test --test-option(s)
0810c590e Implement --benchmark-options for v2-bench
0ad0ac0b4 Fix dropExeExtension on Windows (#6287)
57c95125e Merge pull request #6286 from haskell/exe-dependency-less-lexeme
467f5c1f1 Merge pull request #6289 from haskell/legacy-note-to-cabal-rtd
dac007fe1 (origin/legacy-note-to-cabal-rtd) Change legacy note to point to cabal.readthedocs nix-style section
a4bf13967 (origin/exe-dependency-less-lexeme) Make ExeDependency parser stricter
c488c4d3b Document (via examples) Parsec ExeDependency
59eaabf5a Merge pull request #6276 from haskell/bgamari-patch-1
cc5bfb073 Merge pull request #6278 from haskell/allow-failures-in-osx-jobs
b8abd6989 Allow failures in OSX jobs
f190f4b9a Make cabal-install depend on transformers directly
f1e33c7c4 Merge pull request #6128 from quasicomputational/cabal-install-glob-expansion
7b2f3864e (origin/bgamari-patch-1) doc: Linkify some :pkg-fields:
1156e5a09 Merge pull request #6270 from haskell/appveyor-ghc-8.6.5
dd19c728a (origin/appveyor-ghc-8.6.5) remove local tarball test on Windows
5e117d384 Use removePathForcibly in integration-tests2 if available
021689e10 Skip few tests on windows
bec0c6999 Add needProgram
868f4f2c5 Warn that dependencies using backpack are broken when installed from hackage (#6264)
713367d58 [appveyor] use cabal-install-2.4.1.0
42538d590 [appveyor] new- -> v2-
56d69804c Try newer GHC on Appveyor
f1c1526bf Merge pull request #6266 from haskell/conf-var-and-flag
7a605f607 Separate Flag and ConfVar into own modules
4c577bfcc Merge pull request #6257 from haskell/Diff-0.4
0148980d7 haddock broken with GHC-7.6
adaaae1de Export Proxy, Set and Identity from D.C.Prelude
c1ddaaca0 Bump more upper bounds
37a0d3128 Allow Diff-0.4
5d3e88178 Merge pull request #6256 from haskell/md5
550849fe0 Merge pull request #6252 from haskell/cpp-options-only-d-or-u
fa452e8a0 (origin/md5) Packages on separate lines in cabal.project
76ce99add Add Distribution.Compat.MD5
a2f43f3e5 (origin/cpp-options-only-d-or-u) cabal check: cpp-options allows only -D and -U options
12a49040d Improve hs-source-dirs documentation (#6225)
8749f2149 Merge pull request #6159 from haskell/source-repo
fa27bd87d Honour suffix and prefix on install
048dac5af Resolve #5472: Add SourceRepositoryPackage..
3b54835cc Properly expand globs when looking for headers in extra-src-files.

Someone ought to figure out what to do. I'm still thinking that GHC should use Cabal-3.0 + necessary commits on top, and not master, as it's a mess, and won't be IMHO in releasable state this year. cc @bgamari @hvr @23Skidoo.

I suggest

We'll waste 3.2 version number because of new extensions, but it's acceptable. Bumping CabalSpecVersion is less work than trying to wrap up whatever is in master.

23Skidoo commented 4 years ago

I agree with this plan.

phadej commented 4 years ago

I made 3.2 branch, waiting for version bump pr's travis #6424. Will do a MR to GHC's 8.10 branch after it's landed.

In https://github.com/haskell/cabal/milestone/52 milestone are only cabal-install issues, so I hope that Cabal will not change much from what we have today.

The discovery of #6421 & #6226 was a surprise for me at this point. Let us see when someone complains. IMHO it's too late to try to push that for 3.2.

EDIT: https://gitlab.haskell.org/ghc/ghc/merge_requests/2319

phadej commented 4 years ago

There is release