Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GHC-9.8.3 to default channel #255

Open
hasufell opened this issue Oct 21, 2024 · 13 comments
Open

Add GHC-9.8.3 to default channel #255

hasufell opened this issue Oct 21, 2024 · 13 comments

Comments

@hasufell
Copy link
Member

hasufell commented Oct 21, 2024

@andreasabel
Copy link
Member

The PR is merged but ghcup list -t ghc does not show 9.8.3 yet...

@hasufell
Copy link
Member Author

The PR just adds those bindists to the vanilla channel, which has zero QA from ghcup.

Adding them to the default channel will take some work.

I currently have low capacity, as I just moved to another country. It will have to wait.

@hasufell
Copy link
Member Author

hasufell commented Nov 5, 2024

https://discourse.haskell.org/t/ghc-9-8-3-is-now-available/10576/26?u=hasufell

I decided I will wait for 9.8.4.

If you want to test busted releases... use the vanilla channel or adjust config.yaml as such:

url-source:
- GHCupURL
- ghcup-info:
    ghcupDownloads:
      GHC:
        9.8.3:
          viArch:
            A_32:
              Linux_Debian:
                unknown_versioning: &ghc983-i386-deb10
                  dlHash: f8bc5169a77375b8526688bdd7ff9824e9217ba21a2e9d0739237353890c8105
                  dlOutput: ghc-9.8.3-i386-linux-deb10.tar.xz
                  dlSubdir: ghc-9.8.3-i386-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-i386-deb10-linux.tar.xz
              Linux_Mint:
                unknown_versioning: *ghc983-i386-deb10
              Linux_Ubuntu:
                unknown_versioning: *ghc983-i386-deb10
              Linux_UnknownLinux:
                unknown_versioning: *ghc983-i386-deb10
            A_64:
              Darwin:
                unknown_versioning:
                  dlHash: b56a53411e9864440753ccd8a8c0a870f74e437b0d519a7f2d88e9f39a7193bf
                  dlOutput: ghc-9.8.3-x86_64-darwin.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-apple-darwin
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-apple-darwin.tar.xz
              Linux_Alpine:
                unknown_versioning:
                  dlHash: 16681aa4bf849244b0b5439625447f1000bd9c5181f5bb7ae13ea03c398aaf45
                  dlOutput: ghc-9.8.3-x86_64-linux-alpine3_12.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-alpine3_12-linux.tar.xz
              Linux_CentOS:
                ( >= 7 && < 8 ): &ghc983-x86_64-centos7
                  dlHash: c5e8e2f2d6dfe3578709d44813e652c57622b3d452a73a7c0b47eb9a62c71950
                  dlOutput: ghc-9.8.3-x86_64-linux-centos7.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-centos7-linux.tar.xz
                unknown_versioning: *ghc983-x86_64-centos7
              Linux_Debian:
                (>= 10 && < 11):
                  dlHash: f09890af68c99ccd7b7882351c4e87641c53f55075c6ad39fce061a84f35c265
                  dlOutput: ghc-9.8.3-x86_64-linux-deb10.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-deb10-linux.tar.xz
                < 10:
                  dlHash: e66959ae00e01d1dcdec612f38c8b1b331f114c505f3a0879bdd38e1356781fa
                  dlOutput: ghc-9.8.3-x86_64-linux-deb9.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-deb9-linux.tar.xz
                '>= 11': &ghc983-x86_64-deb11
                  dlHash: 10f9db0f341ebe0fd9f3745a6c0fa4a213fd25522e1090912a591ea0d47674c7
                  dlOutput: ghc-9.8.3-x86_64-linux-deb11.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-deb11-linux.tar.xz
                unknown_versioning: *ghc983-x86_64-deb11
              Linux_Fedora:
                '>= 33':
                  dlHash: f505264b673df71ec7c693cbabb084daa6405aaa2a3a4ebb368b378bbc470305
                  dlOutput: ghc-9.8.3-x86_64-linux-fedora33.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-fedora33-linux.tar.xz
                unknown_versioning: *ghc983-x86_64-centos7
              Linux_Mint:
                < 20: &ghc983-x86_64-ubuntu1804
                  dlHash: 39e5ee6ad10c8bb85fdb9e8863c68c8ceb9105afe94063e9be82819bfde1d451
                  dlOutput: ghc-9.8.3-x86_64-linux-ubuntu18_04.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-ubuntu18_04-linux.tar.xz
                '>= 20': &ghc983-x86_64-ubuntu2004
                  dlHash: 08763b6d5ace1911974aec122b9d1062b51a2d126ad9d9814f4657c9ead16072
                  dlOutput: ghc-9.8.3-x86_64-linux-ubuntu20_04.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-ubuntu20_04-linux.tar.xz
              Linux_RedHat:
                unknown_versioning: *ghc983-x86_64-centos7
              Linux_Ubuntu:
                ( >= 16 && < 19 ): *ghc983-x86_64-ubuntu1804
                unknown_versioning: *ghc983-x86_64-ubuntu2004
              Linux_UnknownLinux:
                unknown_versioning:
                  dlHash: 7b2b3ef540ea9fc1d9f3d54d36d1f7c6bdf94a86f1762c115b103c8ecd3a31a3
                  dlOutput: ghc-9.8.3-x86_64-linux-rocky8.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-rocky8-linux.tar.xz
              Windows:
                unknown_versioning:
                  dlHash: 7d1ddc690bd25b3315eadbc3ab38b0b6ed4c92f5b497eec9629d86acbf1af2bb
                  dlOutput: ghc-9.8.3-x86_64-windows.tar.xz
                  dlSubdir: ghc-9.8.3-x86_64-unknown-mingw32
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-x86_64-unknown-mingw32.tar.xz
            A_ARM64:
              Darwin:
                unknown_versioning:
                  dlHash: f38e8f61b8c741896b2cb7fe6ce025f1f218f18dbe52093f39446629c044dbc2
                  dlOutput: ghc-9.8.3-aarch64-darwin.tar.xz
                  dlSubdir: ghc-9.8.3-aarch64-apple-darwin
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-aarch64-apple-darwin.tar.xz
              Linux_UnknownLinux:
                unknown_versioning:
                  dlHash: 2b17e88a8cb083d547671ee81bbc3367bcbd3839cedb733cb714fd0e5f44ddef
                  dlOutput: ghc-9.8.3-aarch64-linux-deb10.tar.xz
                  dlSubdir: ghc-9.8.3-aarch64-unknown-linux
                  dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-aarch64-deb10-linux.tar.xz
          viChangeLog: https://downloads.haskell.org/~ghc/9.8.3/docs/users_guide/9.8.3-notes.html
          viReleaseDay: '2024-10-20'
          viSourceDL:
            dlHash: 99e40d729ec8831a633b75fd85d65dd10e31a0133dec9d198d686a273679ab70
            dlOutput: ghc-9.8.3-src.tar.xz
            dlSubdir: ghc-9.8.3
            dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-src.tar.xz
          viTags:
          - base-4.19.2.0
          viTestDL:
            dlHash: d2a3929d4071dc5b699e35259a2545a39b1bd46ed1e0e26ea42f10cfbc4ed315
            dlOutput: ghc-9.8.3-testsuite.tar.xz
            dlSubdir: ghc-9.8.3
            dlUri: https://downloads.haskell.org/~ghc/9.8.3/ghc-9.8.3-testsuite.tar.xz

@hasufell hasufell closed this as completed Nov 5, 2024
@hasufell hasufell closed this as not planned Won't fix, can't repro, duplicate, stale Nov 5, 2024
This was referenced Nov 7, 2024
@juhp
Copy link
Collaborator

juhp commented Nov 7, 2024

I decided I will wait for 9.8.4.

Could you explain why?

@hasufell
Copy link
Member Author

hasufell commented Nov 7, 2024

9.8.3 is botched and below the minimum quality that I would consider to ship to users.

9.8.4 is supposed to fix that, so we wait for 9.8.4.

Also note that every release (even minor) requires me to:

  • fix bindist bugs (missing manpages in ~5 of them... require me to unpack, fix and repack all those .tar.xz)
  • build unofficial ones for alpine i386 and FreeBSD and manually test them

E.g. see https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.8.2/

That work looks like a waste for 9.8.3.


Users have multiple ways to remedy this:

  • use vanilla channel in a one-shot manner to install only 9.8.3
    • ghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml install ghc 9.8.3
  • switch to vanilla channel
    • ghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml
  • combine vanilla and default, preferring default (not really sure if that works well)
    • ghcup config set url-source '["https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml", "GHCupURL"]'
  • combine default and stack metadata, preferring stack versions:
    • ghcup config set url-source '["GHCupURL", "StackSetupURL"]'
  • use stack metadata in a one-shot manner to install only 9.8.3
    • ghcup -s "StackSetupURL" install ghc 9.8.3
  • manually add the 9.8.3 to your config.yaml as described above

GHCup is extremely flexible. I think those are plenty solutions. In my opinion, the safest solution is the addition to config.yaml or the one-shot via the vanilla channel. Combining channels can have surprising behavior if you don't understand how it works precisely.

@AndreasPK
Copy link

That work looks like a waste for 9.8.3.

While 9.8.3 does not fix any packaging issues present in 9.8.2 it contains some important correctness fixes for the 9.8 series. So I don't think such an effort would be wasted. But ultimately the decision is yours.

9.8.4 is supposed to fix that, so we wait for 9.8.4.

I just want to state clearly that there is no concrete plan for a 9.8.4 release at this point. And that unless new serious issues arise it might not happen at all.

There is also no guarantee any packaging fixes made on the newer branches would be packported in such a release.


@hasufell I do greatly appreciate you documenting how to get 9.8.3 via the vanilla channel for users!

@hasufell hasufell reopened this Nov 9, 2024
@hasufell
Copy link
Member Author

hasufell commented Nov 9, 2024

I am doing a downstream release of 9.8.3 now with an updated filepath: https://gitlab.haskell.org/maerwald/ghc/-/pipelines/102940

The GHC version will not be changed.

@adamgundry
Copy link
Member

@hasufell please can you discuss this proposed course of action with the GHC maintainers and the wider community and seek consensus, before you go ahead with the release? Users generally expect the GHC version to determine the versions of the boot libraries shipped with the compiler. Having two "GHC 9.8.3" distributions with different filepath versions seems liable to cause confusion at the very least, and potentially significant complications for Stackage if the version numbers are different.

@hasufell
Copy link
Member Author

hasufell commented Nov 9, 2024

Users generally expect the GHC version to determine the versions of the boot libraries shipped with the compiler.

What makes you say that? I don't think that is the case, but maybe I missed something.

Having two "GHC 9.8.3" distributions with different filepath versions seems liable to cause confusion at the very least

The only other solution is that GHC developers release 9.8.4. It doesn't appear they will.

Are you saying consistency is more important than fixing a buggy filepath?

I also want to highlight that source code patches are done in linux distributions as well, without touching the version of the package. That goes even for the kernel.

The GHCup policies and the expectations users can have are very clearly documented: https://www.haskell.org/ghcup/about/#distribution-policies

See point 3 and 4:

  1. We may fix build system or other distribution bugs in upstream bindists
  2. We may even patch source code of supported tools in very rare cases if that is required to ensure that the end-user experience does not break

Edit: here's an example of a distro applying a multitude of source code patches to GHC https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-lang/ghc/files

@andreasabel
Copy link
Member

If GHC 9.8.3 non-deterministically ships one of filepath 1.4.200.1 or 1.4.300.0, then is a priori impossible to make a package snapshot that fixes all versions of all packages and fixes GHC to 9.8.3.
So I do not see how a stackage nightly or lts for 9.8.3 can be facilitated that works for both of the Stack flavors --install-ghc (which gives you the original GHC 9.8.3 with filepath-1.4.200.1) and --system-ghc (which might be the GCHup-installed GHC with filepath-1.4.300.0). [Note that the snapshots prune the GHC-shipped packages, if I understand correctly.]

@AndreasPK Wouldn't it be an option to release GHC 9.8.4 as just 9.8.3 with the updated filepath?
GHC has seen releases because of a single fix before, e.g. 8.10.7.

@hasufell
Copy link
Member Author

hasufell commented Nov 9, 2024

So I do not see how a stackage nightly or lts for 9.8.3 can be facilitated that works for both of the Stack flavors

Once I have the fixed bindists, we can test this scenario.

I've been dealing with GHC CI for half a day now on my saturday.

@bgamari
Copy link
Collaborator

bgamari commented Nov 9, 2024

@hasufell before you spend your Saturday producing a new build that may do more harm than good, let's please discuss this course of action in a meeting next week. We are not necessarily opposed to ultimately producing a 9.8.4, however, we also want to be certain that we have an understanding regarding what we are doing, why, and how. In my opinion, these questions should be discussed before anyone moves forward with technical action.

@hasufell
Copy link
Member Author

9.8.4 is imminent. @bgamari is grappling with GHC CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants