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

Bump to 2.4.0.1 #3863

Closed
wants to merge 2 commits into from
Closed

Bump to 2.4.0.1 #3863

wants to merge 2 commits into from

Conversation

hasufell
Copy link
Member

@hasufell hasufell commented Nov 11, 2023

Release checklist

  • check ghcup supports new GHC releases if any
  • set the supported GHCs in workflow file .github/workflows/release.yaml
    • There is currently a list of GHC versions for each major platform. Search for ghc: [ to find all lists.
    • Look for TODO: to find locations that require extra care for GHC versions.
  • check all plugins still work if release includes code changes
  • bump package versions in all *.cabal files (same version as hls)
    • HLS uses lockstep versioning. The core packages and all plugins use the same version number, and only support exactly this version.
      • Exceptions:
        • hie-compat requires no automatic version bump.
        • shake-bench is an internal testing tool, not exposed to the outside world. Thus, no version bump required for releases.
    • For updating cabal files, the following script can be used:
      • # Update all `version:` fields
        sed -ri "s/^version:( +)2.2.0.0/version:\12.3.0.0/" **/*.cabal
        # Update all constraints expected to be in the form `== <version>`.
        # We usually don't force an exact version, so this is relatively unambiguous.
        # We could introduce some more ad-hoc parsing, if there is still ambiguity.
        sed -ri "s/== 2.2.0.0/== 2.3.0.0/" **/*.cabal
      • It still requires manual verification and review
  • generate and update changelog
    • Generate a ChangeLog via ./GenChangelogs.hs <api-key> <tag>
  • create release branch as wip/<version>
    • git switch -c wip/<version>
  • create release tag as <version>
    • git tag <version>
  • trigger release pipeline by pushing the tag
    • this creates a draft release
    • git push <remote> <version>
  • run sh scripts/release/download-gh-artifacts.sh <version> <your-gpg-email>
    • downloads artifacts to gh-release-artifacts/haskell-language-server-<version>/
    • also downloads FreeBSD bindist from circle CI
    • adds signatures
  • upload artifacts to downloads.haskell.org from gh-release-artifacts/haskell-language-server-<version>/
    • You require sftp access, contact wz1000, bgamari or chreekat
    • cd gh-release-artifacts/haskell-language-server-<version>
    • SIGNING_KEY=... ../../release/upload.sh upload
      • Your SIGNING_KEY can be obtained with gpg --list-secret-keys --keyid-format=long
    • Afterwards, the artifacts are available at: https://downloads.haskell.org/~hls/haskell-language-server-<version>/
    • Run SIGNING_KEY=... ../../release/upload.sh purge_all to remove CDN caches
  • create PR to ghcup-metadata
    • update ghcup-0.0.7.yaml and ghcup-vanilla-0.0.7.yaml
      • can use sh scripts/release/create-yaml-snippet.sh <version> to generate a snippet that can be manually inserted into the yaml files
    • update hls-metadata-0.0.1.json
      • utilize cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-0.0.7.yaml --format json --stdout in the root of ghcup-metadata repository
    • Be sure to mark the correct latest version and add the 'recommended' tag to the latest release.
  • get sign-off on release
    • from wz1000, michealpj, maerwald and fendor
  • publish release on github
  • upload hackage packages
    • requires credentials
  • update https://haskell-language-server.readthedocs.io/en/latest/support/ghc-version-support.html#current-ghc-version-support-status
  • Supported tools table needs to be updated:
  • post release on discourse and reddit
  • merge release PR to master or forward port relevant changes

@hasufell hasufell marked this pull request as draft November 11, 2023 08:14
@wz1000
Copy link
Collaborator

wz1000 commented Nov 13, 2023

Please don't drop 9.8.1 support, head.hackage should be working now.

@benz0li
Copy link

benz0li commented Nov 13, 2023

Please don't drop 9.8.1 support, head.hackage should be working now.

Running cabal update works, but building HLS 2.4.0.0 fails. Cross reference: https://gitlab.haskell.org/ghc/head.hackage/-/issues/94#note_535255


Unless there is a proper fix for head.hackage, building HLS 2.4.0.0 with GHC 9.8 will no longer work.

@wz1000
Copy link
Collaborator

wz1000 commented Nov 14, 2023

We don't depend on head.hackage anymore, so if you rebase the build should work for 9.8.1

@benz0li
Copy link

benz0li commented Nov 14, 2023

so if you rebase the build should work for 9.8.1

Confirmed.

@wz1000
Copy link
Collaborator

wz1000 commented Nov 14, 2023

I think this should be a major bump now

@hasufell
Copy link
Member Author

I think this should be a major bump now

Can we avoid that?

@wz1000
Copy link
Collaborator

wz1000 commented Nov 14, 2023

No, the lsp version we depend on had breaking changes.

@hasufell
Copy link
Member Author

No, the lsp version we depend on had breaking changes.

I'm not sure I understand. Why can't we rebase on the previous release and just backport the removal of head.hackage without any further changes?

@benz0li
Copy link

benz0li commented Nov 14, 2023

Why can't we rebase on the previous release and just backport the removal of head.hackage without any further changes?

It will not build with GHC 9.8.

@hasufell
Copy link
Member Author

Why can't we rebase on the previous release and just backport the removal of head.hackage without any further changes?

It will not build with GHC 9.8.

So the lsp version didn't backport the GHC 9.8 compatibility patch to the older branch?

@benz0li
Copy link

benz0li commented Nov 14, 2023

Why can't we rebase on the previous release and just backport the removal of head.hackage without any further changes?

It will not build with GHC 9.8.

So the lsp version didn't backport the GHC 9.8 compatibility patch to the older branch?

I never said that.

See #3861 (comment) for instructions on how to reproduce.
👉 Execute including && export ARTIFACT, solely patch the head.hackage part in cabal.project, execute cabal update and then execute emake hls-ghc.

If I remember correctly, th-abstraction-0.5.0.0 does not build.

@hasufell
Copy link
Member Author

I don't have time at the moment to pursue this release.

@hasufell hasufell closed this Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants