haskell / haskell-language-server

Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Apache License 2.0
2.71k stars 368 forks source link

Time to cut a new release: November 2021/1.5.0 #2281

Closed jneira closed 2 years ago

jneira commented 3 years ago

github release

hackage release

//cc @Ailrun @berberman @michaelpj @konn

Ailrun commented 3 years ago

I'm unfortunately insanely occupied with my POPL preparation :(

jneira commented 3 years ago

Dont worry and good luck with the preparation

jneira commented 2 years ago

Well it is time to start the engine:

@pepeiborra what version bump do you think is needed for ghcide? There is ton of changes (diff here) and i guess some of them would need a major version bump (so maybe it is time to set it to 1.5.0.0) Also do you think we should wait to #2323?

pepeiborra commented 2 years ago

Yes, it's time for 1.5.0.0. I'll try to land #2323 this weekend. No need to wait any further

jneira commented 2 years ago

I am afraid that th-extras version with 9.0.1 support has not been released so ghcide can't be built:

src/Language/Haskell/TH/Extras.hs:42:17: error: 

Error: • Expecting one more argument to ‘TyVarBndr’ 

Expected a type, but ‘TyVarBndr’ has kind ‘* -> *’ 

• In the type signature: nameOfBinder :: TyVarBndr -> Name 

| 

42 | nameOfBinder :: TyVarBndr -> Name 

| ^^^^^^^

I've emailed maintainers again asking for the release, but if they don't respond soon we will have to ship without 9.0.1 support

And ping in the issue about just in case: https://github.com/mokus0/th-extras/issues/10

jneira commented 2 years ago

After updating hackage index and invalidate the cache, the build is getting a compile error on ghc-lib-parser-8.10.7.20210828

jneira commented 2 years ago

Ok, so ghc-lib is not supposed to be buildable with newer ghcs, in the general case:

I assume ghc-lib-parse >= 8.10.5.20210606 is buildable with ghc-9.0.1 as their base bounds allow it.

it's not. generally, we only support building "forward" (or rather, this is a ghc restriction).

And it turns out that stylish-haskell was forcing the build plan to pick ghc-lib-parser-8.10.* although it is not build for ghc-9.0.1. Adding a allow-newer did solve it.

jneira commented 2 years ago
jneira commented 2 years ago
jneira commented 2 years ago

The package candidates has been published, only left make them definitive:

jneira commented 2 years ago

All packages has been released to hackage

ocharles commented 2 years ago

Amazing work as always @jneira :heart_eyes: !!!

jneira commented 2 years ago

Possible improvements:

jneira commented 2 years ago

I am gonna reopen the issue until ghcup are updated to include the release

pepeiborra commented 2 years ago

Maybe we could also add a step to the release process to do manual testing using the ghcup codebase, or some other non-trivial project (ghc itself?) to avoid last minute bugs like #2365

jneira commented 2 years ago

Yeah, maybe hls itself could be a good candidate, ghc is too big and hard to setup if you are not already working on it and ghcup too small (although coincidentally has hs-boot files). Ideally it should automatized in some way, maybe calling hls in the cli in trace mode and examining the logs to see all files are correctly loaded?

jneira commented 2 years ago

The release has been included in ghcup: https://github.com/haskell/ghcup-metadata/blob/master/ghcup-0.0.6.yaml thanks to @hasufell

pepeiborra commented 2 years ago

Looks like you missed the hls-rename-plugin upload - maybe there's a list that needs to be updated somewhere?

jneira commented 2 years ago

The plugin is disabled by default at build time cause it does not have support for multicomponent projects afair: https://github.com/haskell/haskell-language-server/issues/2193

We were waiting for a way of disabling by default at runtime to include it at build time: https://github.com/haskell/haskell-language-server/issues/2193#issuecomment-946269703

But we could upload it anyways for sure, hls will not include it if you dont set the appropiate flag:

https://github.com/haskell/haskell-language-server/blob/2e61b7c0ba64cded22cf0fb80b089eaf328528e6/haskell-language-server.cabal#L124-L127