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

Prepare release 2.9.0.0 #4319

Merged
merged 9 commits into from
Jun 19, 2024
Merged

Prepare release 2.9.0.0 #4319

merged 9 commits into from
Jun 19, 2024

Conversation

fendor
Copy link
Collaborator

@fendor fendor commented Jun 13, 2024

Releasing

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:
      • ./release/update_versions.sh <OLD_VERSION> <NEW_VERSION>
      • 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-vanilla-0.0.8.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 Currently unnecessary, GHCup builds its own HLS binaries and updates that file.
      • 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

@fendor fendor requested a review from michaelpj as a code owner June 13, 2024 15:26
@fendor fendor requested a review from wz1000 as a code owner June 13, 2024 15:26
Copy link
Collaborator

@jhrcek jhrcek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Collaborator

@soulomoon soulomoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@fendor fendor merged commit 287ee42 into master Jun 19, 2024
39 checks passed
@benz0li
Copy link

benz0li commented Jun 19, 2024

ℹ️ One has to patch

$(FIND) "$(STORE_DIR)/ghc-$(GHC_VERSION)" -type f -name "$(DLL)" -execdir $(INSTALL_X) "{}" "$(ROOT_DIR)/$(BINDIST_OUT_DIR)/lib/$(GHC_VERSION)/{}" \;
when using cabal-install versions ≥ 3.11 (i.e. cabal-install-v3.12.0.0-prerelease).
👉 Patch: Modify "$(STORE_DIR)/ghc-$(GHC_VERSION)" to "$(STORE_DIR)/ghc-$(GHC_VERSION)-inplace".

Cross reference:

dsaenztagarro added a commit to dsaenztagarro/haskell-language-server that referenced this pull request Jun 26, 2024
* master: (36 commits)
  Migrate indexHieFile progress notification to ProgressReporting API (haskell#4205)
  Remove final allow-newer for 9.10 (haskell#4329)
  Remove unused exactprint dep
  More stylish
  Use newer cabal-fmt, partially lift ghc version restriction
  stylish
  Cleanup CI configs and cabal files
  More no-op code cleanup
  Remove no-longer-needed compat code, remove unused stuff
  Remove pre-multi component junk for GHC <= 9.2
  Fix stylish
  Fix a few things
  Remove from CI
  Update docs
  Fix loss of 9.2 GHC version
  More CPP
  WIP evaluate CPP
  Prepare release 2.9.0.0 (haskell#4319)
  Add completion for import fields in cabal files (haskell#4305)
  Refine GHC deprecation policy (haskell#3438)
  ...
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.

None yet

6 participants