Skip to content

[RELEASE] 1.9.1.0 #3488

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

Closed
16 of 17 tasks
hasufell opened this issue Feb 11, 2023 · 18 comments
Closed
16 of 17 tasks

[RELEASE] 1.9.1.0 #3488

hasufell opened this issue Feb 11, 2023 · 18 comments
Assignees
Labels
bindists Anything to do with binary distributions of HLS

Comments

@hasufell
Copy link
Member

hasufell commented Feb 11, 2023

Release checklist


@wz1000 @michaelpj @pepeiborra @fendor

@hasufell hasufell self-assigned this Feb 11, 2023
@hasufell
Copy link
Member Author

GHC versions to be supported will be: ["9.4.4", "9.2.6", "9.2.5", "9.0.2", "8.10.7"]

@hasufell
Copy link
Member Author

hasufell commented Feb 11, 2023

@hasufell
Copy link
Member Author

@hasufell
Copy link
Member Author

@hasufell
Copy link
Member Author

Testing:

ghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/5b0adcc859269be290673132323c45838802423c/ghcup-0.0.7.yaml install hls 1.9.1.0

Can I get at least two sign-offs @wz1000 @michaelpj @fendor @pepeiborra

@hasufell hasufell added the bindists Anything to do with binary distributions of HLS label Feb 12, 2023
@fendor
Copy link
Collaborator

fendor commented Feb 12, 2023

LGTM, tried the release with ghc 9.2.5 on linux 👍

@michaelpj
Copy link
Collaborator

I haven't had a chance to test the binaries, but the release branch and changelog look good, CI runs look plausible. So LGTM!

I gather we're missing bindists for a couple of platforms for various reasons. @hasufell how do you think we should advertise this? We can put it in the release notes, will ghcup give users a comprehensible error if they try and install for one of the platform/GHC combinations with missing bindists?

@wz1000
Copy link
Collaborator

wz1000 commented Feb 12, 2023

Unsetting the the ghc-check-use-package-abis cabal flag for ghc-check allows the build to suceed on Windows with 9.2.6:

diff --git a/cabal.project b/cabal.project
index 73e93be97..d2768097d 100644
--- a/cabal.project
+++ b/cabal.project
@@ -66,6 +66,7 @@ constraints:
   hlint +ghc-lib,
   ghc-lib-parser-ex -auto,
   stylish-haskell +ghc-lib,
+  ghc-check -ghc-check-use-package-abis,
   fourmolu -fixity-th

I think it is safe to unset on other platforms as well because the wrapper script already performs the package abi check.

@hasufell
Copy link
Member Author

because the wrapper script already performs the package abi check

Not if you use ghcup compile hls and end up changing compiler (can easily happen when stack is involved).

@wz1000
Copy link
Collaborator

wz1000 commented Feb 13, 2023

I'm not convinced that check ever worked reliably because we still ran into issues with mismatching ABI after it was implemented.

@wz1000
Copy link
Collaborator

wz1000 commented Feb 13, 2023

I mean the check in ghc-check specifically.

If you use ghcup compile hls that will build from master?

@wz1000
Copy link
Collaborator

wz1000 commented Feb 13, 2023

It's also the wrong place for the check because any Haskell code can segfault before it reaches the check if the ABI is incompatible.

@wz1000
Copy link
Collaborator

wz1000 commented Feb 13, 2023

Right, ghcide doesn't use the package abi information check returned by ghc-check:

InstallationChecked _compileTime _ghcLibCheck ->
session (hieYaml, toNormalizedFilePath' cfp, opts, libDir)

In order to actually check the ABIs, we would need to run _ghcLibCheck. Without this, ABIs are not checked at all, only ghc --version.

So using ghc-check -ghc-check-use-package-abis is completely harmless and has no effect on ghcide behaviour.

@wz1000
Copy link
Collaborator

wz1000 commented Feb 13, 2023

Here is the code generating that result in ghc-check:

        if runTime /= compileTime
          then InstallationMismatch {libdir = runTimeLibdir, ..}
          else InstallationChecked compileTime
            $ flip gcatchSafe (pure . PackageCheckError)
            $ do
              runTimeVersions <- collectPackageVersions (map fst compileTimeVersions)
              let compares =
                    if isUnstableGhcVersion (lookup "ghc" runTimeVersions)
                      then Map.empty
                      else Map.intersectionWith
                            comparePackageVersions
                            compileTimeVersionsMap
                            (Map.fromList runTimeVersions)
                  failure = PackageCheckFailure <$> nonEmpty (Map.toList $ Map.filter isPackageCheckFailure compares)
                  success = PackageCheckSuccess <$> nonEmpty (Map.toList compares)
                  inconclusive = PackageCheckInconclusive (map fst compileTimeVersions)

              return $ fromMaybe inconclusive (failure <|> success)

Notice that the second argument of InstallationChecked is a monadic action that needs to be run to actually perform the check, which we do not do in current ghcide.

@hasufell
Copy link
Member Author

Understood. Will trigger another run shortly.

@hasufell
Copy link
Member Author

hasufell commented Feb 13, 2023

@hasufell
Copy link
Member Author

@hasufell
Copy link
Member Author

Discourse thread: https://discourse.haskell.org/t/ann-hls-1-9-1-0-released/5808

Forward port: #3493

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bindists Anything to do with binary distributions of HLS
Projects
None yet
Development

No branches or pull requests

4 participants