Skip to content

Prepare release 2.1.0.0 #3748

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

Merged
merged 11 commits into from
Aug 12, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 0 additions & 163 deletions .github/workflows/hackage.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "9.0.2", "8.10.7"]
ghc: ["9.6.2", "9.4.6", "9.4.5", "9.2.8", "9.0.2", "8.10.7"]
platform: [ { image: "debian:9"
, installCmd: "sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list && sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list && sed -i /-updates/d /etc/apt/sources.list && apt-get update && apt-get install -y"
, toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
Expand Down
83 changes: 82 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,89 @@
# Changelog for haskell-language-server

## 2.1.0.0

* Binaries for GHC 9.4.6
* Completions for .cabal files
* Performance improvements

### Pull requests merged

- Update to latest lsp packages
([#3747](https://github.com/haskell/haskell-language-server/pull/3747)) by @joyfulmantis
- Remove unnecessary allow-newer in stack.yaml
([#3746](https://github.com/haskell/haskell-language-server/pull/3746)) by @July541
- Log fourmolu and ormolu version that hls using
([#3744](https://github.com/haskell/haskell-language-server/pull/3744)) by @July541
- Various PluginError PR suggestions I missed earlier
([#3737](https://github.com/haskell/haskell-language-server/pull/3737)) by @joyfulmantis
- Add resolve support in refine imports by merging it with explicit imports
([#3729](https://github.com/haskell/haskell-language-server/pull/3729)) by @joyfulmantis
- Fix other file goto definition
([#3725](https://github.com/haskell/haskell-language-server/pull/3725)) by @nlander
- Fix Nix builds
([#3724](https://github.com/haskell/haskell-language-server/pull/3724)) by @cydparser
- Better plugin error infrastructure
([#3717](https://github.com/haskell/haskell-language-server/pull/3717)) by @joyfulmantis
- Move Recorder to hls-plugin-api
([#3714](https://github.com/haskell/haskell-language-server/pull/3714)) by @joyfulmantis
- Actually force usages
([#3713](https://github.com/haskell/haskell-language-server/pull/3713)) by @wz1000
- Best-effort support of Qualified Imports in GHC 9.4
([#3712](https://github.com/haskell/haskell-language-server/pull/3712)) by @konn
- Skip test if only CODEOWNERS changed
([#3707](https://github.com/haskell/haskell-language-server/pull/3707)) by @July541
- Update stack stuff
([#3706](https://github.com/haskell/haskell-language-server/pull/3706)) by @July541
- Mark hls-floskell-plugin as tier 3
([#3705](https://github.com/haskell/haskell-language-server/pull/3705)) by @July541
- Remove isovector as an owner
([#3700](https://github.com/haskell/haskell-language-server/pull/3700)) by @isovector
- Bump haskell/actions from 2.4.3 to 2.4.4 in /.github/actions/setup-build
([#3699](https://github.com/haskell/haskell-language-server/pull/3699)) by @dependabot[bot]
- Bump haskell/actions from 2.4.3 to 2.4.4
([#3698](https://github.com/haskell/haskell-language-server/pull/3698)) by @dependabot[bot]
- Catch exceptions in commands and use lsp null
([#3696](https://github.com/haskell/haskell-language-server/pull/3696)) by @joyfulmantis
- Show package name and its version while hovering on import statements
([#3691](https://github.com/haskell/haskell-language-server/pull/3691)) by @July541
- Resolve refactoring
([#3688](https://github.com/haskell/haskell-language-server/pull/3688)) by @joyfulmantis
- Prefer non-boot files when creating the FinderCache.
([#3687](https://github.com/haskell/haskell-language-server/pull/3687)) by @wz1000
- Some fixes for multi component stuff
([#3686](https://github.com/haskell/haskell-language-server/pull/3686)) by @wz1000
- Further hlint resolve changes.
([#3685](https://github.com/haskell/haskell-language-server/pull/3685)) by @joyfulmantis
- docs (plugin-support): fix plugin name typo
([#3683](https://github.com/haskell/haskell-language-server/pull/3683)) by @PiDelport
- Resolve for explicit-imports
([#3682](https://github.com/haskell/haskell-language-server/pull/3682)) by @joyfulmantis
- Hls 2.0.0.1 forward port
([#3680](https://github.com/haskell/haskell-language-server/pull/3680)) by @hasufell
- Resolve 2: Support for resolve in hls-hlint-plugin
([#3679](https://github.com/haskell/haskell-language-server/pull/3679)) by @joyfulmantis
- Resolve 0: Generic support for resolve in hls packages
([#3678](https://github.com/haskell/haskell-language-server/pull/3678)) by @joyfulmantis
- Ship hls-hlint-plugin for ghc-9.6
([#3677](https://github.com/haskell/haskell-language-server/pull/3677)) by @July541
- Remove extra call to newHscEnvEqWithImportPaths
([#3676](https://github.com/haskell/haskell-language-server/pull/3676)) by @nlander
- Fixes pragma plugin offering incorrect code actions #3673
([#3674](https://github.com/haskell/haskell-language-server/pull/3674)) by @joyfulmantis
- Restore short option for logfile
([#3672](https://github.com/haskell/haskell-language-server/pull/3672)) by @michaelpj
- Enable stylish-haskell for 9.6
([#3670](https://github.com/haskell/haskell-language-server/pull/3670)) by @michaelpj
- Resolve 1: Support for resolve in overloaded-record-dot
([#3658](https://github.com/haskell/haskell-language-server/pull/3658)) by @joyfulmantis
- Cabal file completions
([#3268](https://github.com/haskell/haskell-language-server/pull/3268)) by @VeryMilkyJoe
- Share ModuleGraphs for all files
([#3232](https://github.com/haskell/haskell-language-server/pull/3232)) by @wz1000

## 2.0.0.1

- Add overloaded record dot plugin intial version (closes #3350) (#3560)
- Add overloaded record dot plugin initial version (closes #3350) (#3560)
- Binaries for GHC 9.2.8 and GHC 9.6.2

## 2.0.0.0
Expand Down
17 changes: 6 additions & 11 deletions GenChangelogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,13 @@ import System.Environment
import System.Process

main = do
callCommand "git fetch --tags"
tags <- filter (isPrefixOf "1.") . lines <$>
readProcess "git" ["tag", "--list", "--sort=v:refname"] ""

lastDateStr <- last . lines <$> readProcess "git" ["show", "-s", "--format=%cI", "-1", last tags] ""
lastDate <- zonedTimeToUTC <$> iso8601ParseM lastDateStr

args <- getArgs
let githubReq = case args of
[] -> github'
token:_ -> github (OAuth $ BS.pack token)
let (githubReq,tag) = case args of
token:tag:_ -> (github (OAuth $ BS.pack token), tag)
prs <- githubReq $ pullRequestsForR "haskell" "haskell-language-server" stateClosed FetchAll
lastDateStr <- last . lines <$> readProcess "git" ["show", "-s", "--format=%cI", "-1", tag] ""
lastDate <- zonedTimeToUTC <$> iso8601ParseM lastDateStr

let prsAfterLastTag = either (error . show)
(foldMap (\pr -> [pr | inRange pr]))
prs
Expand All @@ -39,5 +34,5 @@ main = do

forM_ prsAfterLastTag $ \SimplePullRequest{..} ->
putStrLn $ T.unpack $ "- " <> simplePullRequestTitle <>
"\n([#" <> T.pack (show $ unIssueNumber simplePullRequestNumber) <> "](" <> getUrl simplePullRequestHtmlUrl <> "))" <>
"\n ([#" <> T.pack (show $ unIssueNumber simplePullRequestNumber) <> "](" <> getUrl simplePullRequestHtmlUrl <> "))" <>
" by @" <> untagName (simpleUserLogin simplePullRequestUser)
20 changes: 20 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,31 @@
- [ ] set the supported GHCs in workflow file `.github/workflows/release.yaml`
- [ ] check all plugins still work if release includes code changes
- [ ] bump package versions in all `*.cabal` files (same version as hls)
- HLS uses a lockstep versioning. The core packages and all plugins use the same version number, and only support exactly the 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:
Copy link
Collaborator

Choose a reason for hiding this comment

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

We should just commit something like this!

- ```sh
# Update all `version:` fields
sed -ri "s/^version:( +)2.1.0.0/version:\12.2.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.1.0.0/== 2.2.0.0/" **/*.cabal
```
- It still requires manual verification and review
- [ ] generate and update changelog
- Generate a ChangeLog via `./GenChangelogs.hs <api-key> <tag>`
- `<tag>` is the git tag you want to generate the ChangeLog from.
- `<api-key>` is a github access key: https://github.com/settings/tokens
- [ ] 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 <version> <your-gpg-email>`
- downloads artifacts to `gh-release-artifacts/<version>/`
- also downloads FreeBSD bindist from circle CI
Expand Down
Loading