Skip to content

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

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 tasks done
jneira opened this issue Oct 18, 2021 · 19 comments
Closed
16 tasks done

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

jneira opened this issue Oct 18, 2021 · 19 comments
Labels
Milestone

Comments

@jneira
Copy link
Member

jneira commented Oct 18, 2021

  • It would contain the recent great performance improvements by @pepeiborra
  • Also to enable fourmolu for ghc-9.0.1 thanks to @georgefst
  • It would be great to have the rename plugin even disabled at runtime by default (Renaming multi component support #2193)
  • Anyone would like to drive it this time 🙂 ? this one does not seem to be too cumbersome

github release

  • generate the list of pull requests finished since the last release using the haskell script in the project root.
    Nix users should run command gen-hls-changelogs (a wrapper of the script) in nix-shell instead.
  • add that list to the actual Changelog with a description of the release.
  • bump up versions of changed packages. All are optional but haskell-language-server itself.
  • create the tag and make an initial prerelease to trigger the ci workflow (see details below)
  • contact ghcup team (#haskell-ghcup irc channel or via its repo) to try to sync our release and its inclusion in ghcup
  • check uploaded binaries and the release description (usually the changelog entry) and uncheck the prerelease box
  • make public the release in the usual social channels: irc, twitter, reddit, discord, discourse, etc (not required but useful to spread the word 🙂)
    • irc
    • twitter
    • discord
    • discourse
    • reddit

hackage release

  • bump up package versions following the pvp specification if they are not already updated
  • create ${version}-hackage branch to trigger the hackage github workflow which will upload all changed packages to hackage as candidates
  • check manually candidates in hackage
  • publish them definitely

//cc @Ailrun @berberman @michaelpj @konn

@Ailrun
Copy link
Member

Ailrun commented Oct 18, 2021

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

@jneira
Copy link
Member Author

jneira commented Oct 18, 2021

Dont worry and good luck with the preparation

@jneira jneira added this to the 1.5.0 milestone Oct 29, 2021
@jneira jneira changed the title Time to cut a new release: October 2021/1.5.0 Time to cut a new release: November 2021/1.5.0 Nov 2, 2021
@jneira
Copy link
Member Author

jneira commented Nov 11, 2021

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
Copy link
Collaborator

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

@jneira
Copy link
Member Author

jneira commented Nov 11, 2021

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: mokus0/th-extras#10

@jneira
Copy link
Member Author

jneira commented Nov 12, 2021

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

@jneira
Copy link
Member Author

jneira commented Nov 15, 2021

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
Copy link
Member Author

jneira commented Nov 18, 2021

@jneira
Copy link
Member Author

jneira commented Nov 18, 2021

@jneira
Copy link
Member Author

jneira commented Nov 18, 2021

All packages has been released to hackage

@jneira jneira closed this as completed Nov 18, 2021
@ocharles
Copy link
Contributor

Amazing work as always @jneira 😍 !!!

@jneira
Copy link
Member Author

jneira commented Nov 18, 2021

Possible improvements:

  • check the gitlab build which generates artifacts for ghcup is working before making the definitive release, like we are doing for hackage (//cc @hasufell)
    • they are failing and maybe will be need source changes
  • maybe a little bit paranoic but check the build script which generates artifacts for the github release before making the definitive release

@jneira
Copy link
Member Author

jneira commented Nov 18, 2021

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

@jneira jneira reopened this Nov 18, 2021
@pepeiborra
Copy link
Collaborator

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
Copy link
Member Author

jneira commented Nov 18, 2021

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
Copy link
Member Author

jneira commented Nov 18, 2021

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

@pepeiborra
Copy link
Collaborator

pepeiborra commented Nov 23, 2021

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

@jneira
Copy link
Member Author

jneira commented Nov 23, 2021

The plugin is disabled by default at build time cause it does not have support for multicomponent projects afair: #2193

We were waiting for a way of disabling by default at runtime to include it at build time: #2193 (comment)

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

flag rename
description: Enable rename plugin
default: False
manual: True

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

No branches or pull requests

4 participants