From ddfede4ab0fc013c423d4333942fe111503fcc78 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 4 Jan 2022 21:47:38 +0100 Subject: [PATCH 01/41] Extract out ci build setup --- .github/actions/setup-build/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/setup-build/action.yml b/.github/actions/setup-build/action.yml index 5a697555cc..68616d3fa1 100644 --- a/.github/actions/setup-build/action.yml +++ b/.github/actions/setup-build/action.yml @@ -25,7 +25,10 @@ runs: name: (Windows) Platform config run: | echo "CABAL_PKGS_DIR=C:\\cabal\\packages" >> $GITHUB_ENV +<<<<<<< HEAD shell: bash +======= +>>>>>>> ce57b1dc (Extract out ci build setup) - if: ( inputs.os == 'Linux' ) || ( inputs.os == 'macOS' ) name: (Linux,macOS) Platform config run: | From b956c3b069d5cbcc29a222c6221d0797d7cda9f3 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 4 Jan 2022 21:57:16 +0100 Subject: [PATCH 02/41] Add required shell property --- .github/actions/setup-build/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/setup-build/action.yml b/.github/actions/setup-build/action.yml index 68616d3fa1..c3028fd3d6 100644 --- a/.github/actions/setup-build/action.yml +++ b/.github/actions/setup-build/action.yml @@ -25,10 +25,8 @@ runs: name: (Windows) Platform config run: | echo "CABAL_PKGS_DIR=C:\\cabal\\packages" >> $GITHUB_ENV -<<<<<<< HEAD shell: bash -======= ->>>>>>> ce57b1dc (Extract out ci build setup) + - if: ( inputs.os == 'Linux' ) || ( inputs.os == 'macOS' ) name: (Linux,macOS) Platform config run: | From 4caf4e1399cb87c2af6a7bc6eec837ba2da87772 Mon Sep 17 00:00:00 2001 From: jneira Date: Wed, 5 Jan 2022 16:11:12 +0100 Subject: [PATCH 03/41] Add support for ghc-9.0.2 --- .circleci/config.yml | 6 ++ .github/workflows/build.yml | 14 ++- .github/workflows/caching.yml | 3 +- .github/workflows/hackage.yml | 19 ++-- .github/workflows/test.yml | 9 +- .gitlab-ci.yml | 2 + cabal-ghc902.project | 77 +++++++++++++++ docs/supported-versions.md | 1 + ghcide/ghcide.cabal | 2 +- ghcide/test/exe/Main.hs | 2 +- haskell-language-server.cabal | 2 +- .../hls-hlint-plugin/hls-hlint-plugin.cabal | 2 +- stack-9.0.1.yaml | 7 +- stack-9.0.2.yaml | 97 +++++++++++++++++++ 14 files changed, 215 insertions(+), 28 deletions(-) create mode 100644 cabal-ghc902.project create mode 100644 stack-9.0.2.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml index 90b34287e1..faae427dbe 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -100,6 +100,11 @@ jobs: - STACK_FILE: "stack-9.0.1.yaml" <<: *defaults + ghc-9.0.2: + environment: + - STACK_FILE: "stack-9.0.2.yaml" + <<: *defaults + ghc-default: environment: - STACK_FILE: "stack.yaml" @@ -115,4 +120,5 @@ workflows: - ghc-8.10.6 - ghc-8.10.7 - ghc-9.0.1 + - ghc-9.0.2 - ghc-default diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ca67b53dc4..41e27bb203 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,8 @@ jobs: fail-fast: false matrix: ghc: - [ "9.0.1" + [ "9.0.2" + , "9.0.1" , '8.10.7' , "8.10.6" , "8.8.4" @@ -53,9 +54,14 @@ jobs: echo -e 'package blaze-textual\n flags: +integer-simple' >> cabal.project.local fi - - name: (GHC 9.0) Use modified cabal.project for GHC 9.0 - if: ${{ matrix.ghc == '9.0.1' }} - run: cp cabal-ghc901.project cabal.project + - name: Use modified cabal.project + env: + GHCVER: ${{ matrix.ghc }} + run: | + ALT_PROJECT_FILE=cabal-ghc${GHCVER//./}.project + if [[ -f "$ALT_PROJECT_FILE" ]]; then + rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE" cabal.project + fi - name: Shorten binary names run: | diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml index bb8dcb3583..4f0892f42c 100644 --- a/.github/workflows/caching.yml +++ b/.github/workflows/caching.yml @@ -76,7 +76,8 @@ jobs: strategy: fail-fast: false matrix: - ghc: [ "9.0.1" + ghc: [ "9.0.2" + , "9.0.1" , "8.10.7" , "8.10.6" , "8.8.4" diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index 56e2acb724..a0c1eba300 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -34,18 +34,19 @@ jobs: "hls-call-hierarchy-plugin", "hls-alternate-number-format-plugin", "hls-qualify-imported-names-plugin", "haskell-language-server"] - ghc: [ "9.0.1", - "8.10.7", - "8.8.4", - "8.6.5"] + ghc: [ "9.0.2" + , "8.10.7" + , "8.8.4" + , "8.6.5" + ] exclude: - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-brittany-plugin" - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-stylish-haskell-plugin" - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-class-plugin" - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-tactics-plugin" steps: @@ -111,7 +112,7 @@ jobs: echo "allow-newer: Chart-diagrams:diagrams-core, SVGFonts:diagrams-core," >> cabal.project - name: "Add temporary needed allow-newer for ghc-9.0" - if: steps.get-hackage-version.outputs.exists != 'true' && matrix.ghc == '9.0.1' + if: steps.get-hackage-version.outputs.exists != 'true' && (matrix.ghc == '9.0.1' || matrix.ghc == '9.0.2') run: | # TODO: remove when not needed cd $(ls -d ./incoming/${{ matrix.package }}-*) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa597e173b..5335cd3e11 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -56,7 +56,8 @@ jobs: strategy: fail-fast: true matrix: - ghc: [ "9.0.1" + ghc: [ "9.0.2" + , "9.0.1" , "8.10.7" , "8.10.6" , "8.8.4" @@ -144,7 +145,7 @@ jobs: run: cabal test wrapper-test --test-options="$TEST_OPTS --rerun-log-file .tasty-rerun-log-wrapper" || cabal test wrapper-test --test-options="$TEST_OPTS --rerun-log-file .tasty-rerun-log-wrapper" || cabal test wrapper-test --test-options="$TEST_OPTS --rerun-log-file .tasty-rerun-log-wrapper" - - if: matrix.test && matrix.ghc != '9.0.1' + - if: matrix.test && matrix.ghc != '9.0.1' && matrix.ghc != '9.0.2' name: Test hls-brittany-plugin run: cabal test hls-brittany-plugin --test-options="$TEST_OPTS" || cabal test hls-brittany-plugin --test-options="$TEST_OPTS" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-brittany-plugin --test-options="$TEST_OPTS" @@ -172,7 +173,7 @@ jobs: name: Test hls-splice-plugin run: cabal test hls-splice-plugin --test-options="$TEST_OPTS" || cabal test hls-splice-plugin --test-options="$TEST_OPTS" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-splice-plugin --test-options="$TEST_OPTS" - - if: matrix.test && matrix.ghc != '9.0.1' + - if: matrix.test && matrix.ghc != '9.0.1' && matrix.ghc != '9.0.2' name: Test hls-stylish-haskell-plugin run: cabal test hls-stylish-haskell-plugin --test-options="$TEST_OPTS" || cabal test hls-stylish-haskell-plugin --test-options="$TEST_OPTS" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-stylish-haskell-plugin --test-options="$TEST_OPTS" @@ -184,7 +185,7 @@ jobs: name: Test hls-fourmolu-plugin run: cabal test hls-fourmolu-plugin --test-options="$TEST_OPTS" || cabal test hls-fourmolu-plugin --test-options="$TEST_OPTS" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-fourmolu-plugin --test-options="$TEST_OPTS" - - if: matrix.test && matrix.ghc != '9.0.1' && !(matrix.os == 'ubuntu-latest' && matrix.ghc == '8.6.5') + - if: matrix.test && matrix.ghc != '9.0.1' && matrix.ghc != '9.0.2' && !(matrix.os == 'ubuntu-latest' && matrix.ghc == '8.6.5') name: Test hls-tactics-plugin test suite run: cabal test hls-tactics-plugin --test-options="$TEST_OPTS" || cabal test hls-tactics-plugin --test-options="$TEST_OPTS" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-tactics-plugin --test-options="$TEST_OPTS" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7036a699e..23899813c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,8 @@ variables: CABAL_PROJECT: cabal.project - GHC_VERSION: 9.0.1 CABAL_PROJECT: cabal-ghc901.project + - GHC_VERSION: 9.0.2 + CABAL_PROJECT: cabal-ghc902.project .m1_matrix: &m1_matrix matrix: diff --git a/cabal-ghc902.project b/cabal-ghc902.project new file mode 100644 index 0000000000..ec766dff72 --- /dev/null +++ b/cabal-ghc902.project @@ -0,0 +1,77 @@ +packages: + ./ + ./hie-compat + ./shake-bench + ./hls-graph + ./ghcide + ./hls-plugin-api + ./hls-test-utils + ./plugins/hls-tactics-plugin + ./plugins/hls-brittany-plugin + ./plugins/hls-stylish-haskell-plugin + ./plugins/hls-fourmolu-plugin + ./plugins/hls-class-plugin + ./plugins/hls-eval-plugin + ./plugins/hls-explicit-imports-plugin + ./plugins/hls-refine-imports-plugin + ./plugins/hls-hlint-plugin + ./plugins/hls-rename-plugin + ./plugins/hls-retrie-plugin + ./plugins/hls-haddock-comments-plugin + ./plugins/hls-splice-plugin + ./plugins/hls-qualify-imported-names-plugin + ./plugins/hls-floskell-plugin + ./plugins/hls-pragmas-plugin + ./plugins/hls-module-name-plugin + ./plugins/hls-ormolu-plugin + ./plugins/hls-call-hierarchy-plugin + ./plugins/hls-alternate-number-format-plugin + +source-repository-package + type: git + location: https://github.com/tfausak/unix-compat + tag: 154c3a63f154cb49c51d5f9d13488e8119631d8a + -- To fix windows build + -- https://github.com/jacobstanley/unix-compat/pull/47 + +with-compiler: ghc-9.0.2 + +tests: true + +package * + ghc-options: -haddock + test-show-details: direct + +write-ghc-environment-files: never + +index-state: 2021-12-29T12:30:08Z + +constraints: + -- These plugins don't work on GHC9 yet + haskell-language-server +ignore-plugins-ghc-bounds -brittany -stylishhaskell -tactic, + ghc-lib-parser ^>= 9.0 + +-- although we are not building all plugins cabal solver phase is run for all packages +-- this way we track explicitly all transitive dependencies which need support for ghc-9 +allow-newer: + brittany:base, + brittany:ghc, + brittany:ghc-boot-th, + -- for brittany + butcher:base, + multistate:base, + data-tree-print:base, + + stylish-haskell:Cabal, + stylish-haskell:ghc-lib-parser, + + floskell:base, + floskell:ghc-prim, + + -- for shake-bench + Chart-diagrams:diagrams-core, + SVGFonts:diagrams-core, + + -- ghc-9.0.2 specific + hashable:ghc-bignum, + ghc-typelits-natnormalise:ghc-bignum diff --git a/docs/supported-versions.md b/docs/supported-versions.md index 2485d94f4f..86b06e8723 100644 --- a/docs/supported-versions.md +++ b/docs/supported-versions.md @@ -7,6 +7,7 @@ The current support for different GHC versions is given in the following table. | GHC version | Last supporting HLS version | Deprecation status | | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | 9.2.0 | [not supported](https://github.com/haskell/haskell-language-server/issues/2179) yet | | +| 9.0.2 | [current](https://github.com/haskell/haskell-language-server/releases/latest) ([partial](https://github.com/haskell/haskell-language-server/issues/297)) | | | 9.0.1 | [current](https://github.com/haskell/haskell-language-server/releases/latest) ([partial](https://github.com/haskell/haskell-language-server/issues/297)) | | | 8.10.7 | [current](https://github.com/haskell/haskell-language-server/releases/latest) | | | 8.10.6 | [current](https://github.com/haskell/haskell-language-server/releases/latest) | will be deprecated after LTS and HLS full support for ghc-9.0 | diff --git a/ghcide/ghcide.cabal b/ghcide/ghcide.cabal index c10923c66f..d7908cdb5b 100644 --- a/ghcide/ghcide.cabal +++ b/ghcide/ghcide.cabal @@ -13,7 +13,7 @@ description: A library for building Haskell IDE's on top of the GHC API. homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme bug-reports: https://github.com/haskell/haskell-language-server/issues -tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 extra-source-files: README.md CHANGELOG.md test/data/**/*.project test/data/**/*.cabal diff --git a/ghcide/test/exe/Main.hs b/ghcide/test/exe/Main.hs index 9e221a8e08..d2c1344f3a 100644 --- a/ghcide/test/exe/Main.hs +++ b/ghcide/test/exe/Main.hs @@ -589,7 +589,7 @@ diagnosticTests = testGroup "diagnostics" ] _ <- createDoc "Foo.hs" "haskell" fooContent if ghcVersion >= GHC90 then - -- Haddock parse errors are ignored on ghc-9.0.1 + -- Haddock parse errors are ignored on ghc-9.0 pure () else expectDiagnostics diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index c35e8c0a37..b62cbde8f7 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -14,7 +14,7 @@ copyright: The Haskell IDE Team license: Apache-2.0 license-file: LICENSE build-type: Simple -tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 extra-source-files: README.md ChangeLog.md diff --git a/plugins/hls-hlint-plugin/hls-hlint-plugin.cabal b/plugins/hls-hlint-plugin/hls-hlint-plugin.cabal index 2b21de18e2..1c715cdd0a 100644 --- a/plugins/hls-hlint-plugin/hls-hlint-plugin.cabal +++ b/plugins/hls-hlint-plugin/hls-hlint-plugin.cabal @@ -36,7 +36,7 @@ flag hlint33 manual: False description: Hlint-3.3 doesn't support versions ghc-lib < 9.0.1 nor ghc <= 8.6, so we can use hlint-3.2 for backwards compat - This flag can be removed when all dependencies support ghc-lib-9.0.1 and we drop support for ghc-8.6 + This flag can be removed when all dependencies support ghc-lib-9.0.* and we drop support for ghc-8.6 library exposed-modules: Ide.Plugin.Hlint diff --git a/stack-9.0.1.yaml b/stack-9.0.1.yaml index c893993498..600b541d13 100644 --- a/stack-9.0.1.yaml +++ b/stack-9.0.1.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2021-12-14 +resolver: nightly-2022-01-04 packages: - . @@ -32,12 +32,10 @@ packages: extra-deps: - bytestring-encoding-0.1.1.0 - dependent-map-0.4.0.0 -- dependent-sum-0.7.1.0 - extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 - hspec-2.7.10 # for hls-test-utils - hspec-core-2.7.10 # for hls-test-utils - some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 -- dependent-sum-template-0.1.1.1 - floskell-0.10.6 - heapsize-0.3.0.1 - hiedb-0.4.1.0 @@ -45,9 +43,6 @@ extra-deps: - implicit-hie-cradle-0.3.0.5 - monad-dijkstra-0.1.1.3 - retrie-1.1.0.0 -- lsp-1.4.0.0 -- lsp-test-0.14.0.2 -- lsp-types-1.4.0.0 # shake-bench dependencies - Chart-1.9.3 diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml new file mode 100644 index 0000000000..560f9ac6cb --- /dev/null +++ b/stack-9.0.2.yaml @@ -0,0 +1,97 @@ +resolver: nightly-2022-01-04 +compiler: ghc-9.0.2 + +packages: +- . +- ./hie-compat +- ./hls-graph +- ./ghcide/ +- ./hls-plugin-api +- ./hls-test-utils +- ./shake-bench +- ./plugins/hls-call-hierarchy-plugin +- ./plugins/hls-class-plugin +- ./plugins/hls-haddock-comments-plugin +- ./plugins/hls-eval-plugin +- ./plugins/hls-explicit-imports-plugin +- ./plugins/hls-qualify-imported-names-plugin +- ./plugins/hls-refine-imports-plugin +- ./plugins/hls-hlint-plugin +- ./plugins/hls-rename-plugin +- ./plugins/hls-retrie-plugin +- ./plugins/hls-splice-plugin +# - ./plugins/hls-tactics-plugin +# - ./plugins/hls-brittany-plugin +# - ./plugins/hls-stylish-haskell-plugin +- ./plugins/hls-floskell-plugin +- ./plugins/hls-fourmolu-plugin +- ./plugins/hls-pragmas-plugin +- ./plugins/hls-module-name-plugin +- ./plugins/hls-ormolu-plugin +- ./plugins/hls-alternate-number-format-plugin + +extra-deps: +- bytestring-encoding-0.1.1.0 +- dependent-map-0.4.0.0 +- extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 +- hspec-2.7.10 # for hls-test-utils +- hspec-core-2.7.10 # for hls-test-utils +- some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 +- floskell-0.10.6 +- heapsize-0.3.0.1 +- hiedb-0.4.1.0 +- implicit-hie-0.1.2.6 +- implicit-hie-cradle-0.3.0.5 +- monad-dijkstra-0.1.1.3 +- retrie-1.1.0.0 + +# shake-bench dependencies +- Chart-1.9.3 +- Chart-diagrams-1.9.3 +- SVGFonts-1.7.0.1 # for Chart-diagrams, https://github.com/timbod7/haskell-chart/issues/232 +- diagrams-postscript-1.5 +- statestack-0.3 +- operational-0.2.4.1 + +# boot libraries +- Cabal-3.6.2.0 +- directory-1.3.7.0 +- ghc-boot-9.2.1 +- process-1.6.13.2 +- time-1.12.1 + +# currently needed for ghcide>extra, etc. +allow-newer: true + +ghc-options: + "$everything": -haddock + +configure-options: + ghcide: + - --disable-library-for-ghci + haskell-language-server: + - --disable-library-for-ghci + heapsize: + - --disable-library-for-ghci + +flags: + haskell-language-server: + pedantic: true + + ignore-plugins-ghc-bounds: true + tactic: false # Dependencies fail + stylishHaskell: false + brittany: false + + retrie: + BuildExecutable: false + # Stack doesn't support automatic flags. + hls-hlint-plugin: + hlint33: true + hyphenation: + embed: true + +nix: + packages: [ icu libcxx zlib ] + +concurrent-tests: false From bf280fafdc684144af096a7db861709164535366 Mon Sep 17 00:00:00 2001 From: jneira Date: Wed, 5 Jan 2022 17:06:15 +0100 Subject: [PATCH 04/41] Test ghc 9.0.2 --- .github/workflows/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5335cd3e11..7469c5adf2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,7 +69,7 @@ jobs: include: # only test supported ghc major versions - os: ubuntu-latest - ghc: '9.0.1' + ghc: '9.0.2' test: true - os: ubuntu-latest ghc: '8.10.7' @@ -81,7 +81,7 @@ jobs: ghc: '8.6.5' test: true - os: windows-latest - ghc: '9.0.1' + ghc: '9.0.2' test: true - os: windows-latest ghc: '8.10.7' @@ -90,6 +90,8 @@ jobs: ghc: '8.6.5' test: true # only build rest of supported ghc versions for windows + - os: windows-latest + ghc: '9.0.1' - os: windows-latest ghc: '8.10.6' - os: windows-latest From 77ffca76b6cdf31c0e6176c370f623a927d8b627 Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Mon, 10 Jan 2022 08:12:51 +0100 Subject: [PATCH 05/41] Add unix boot package --- stack-9.0.2.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 560f9ac6cb..6ed8ae36a6 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -59,6 +59,7 @@ extra-deps: - ghc-boot-9.2.1 - process-1.6.13.2 - time-1.12.1 +- unix-2.7.2.2 # currently needed for ghcide>extra, etc. allow-newer: true From 87a8c9d73c9af84c31fa75768c56e0fd82c78052 Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Mon, 10 Jan 2022 08:41:22 +0100 Subject: [PATCH 06/41] Use primitive-unlifted < 1.0 --- cabal-ghc902.project | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cabal-ghc902.project b/cabal-ghc902.project index ec766dff72..2865fe46ed 100644 --- a/cabal-ghc902.project +++ b/cabal-ghc902.project @@ -49,8 +49,11 @@ index-state: 2021-12-29T12:30:08Z constraints: -- These plugins don't work on GHC9 yet haskell-language-server +ignore-plugins-ghc-bounds -brittany -stylishhaskell -tactic, - ghc-lib-parser ^>= 9.0 - + ghc-lib-parser ^>= 9.0, + -- primitive-unlifted A= 1.0 is not buildable with ghc-9.0.2 + -- see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 + primitive-unlifted < 1.0 + -- although we are not building all plugins cabal solver phase is run for all packages -- this way we track explicitly all transitive dependencies which need support for ghc-9 allow-newer: From 81e8aaba3e2d523b545792e4c3ec216aa65223df Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Mon, 10 Jan 2022 08:42:47 +0100 Subject: [PATCH 07/41] Use primitive-unlifted < 1.0 for stack --- stack-9.0.2.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 6ed8ae36a6..44b5833724 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -61,6 +61,10 @@ extra-deps: - time-1.12.1 - unix-2.7.2.2 +# primitive-unlifted is not buildable with ghc-9.0.2 +# see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 +- primitive-unlifted-0.1.3.1 + # currently needed for ghcide>extra, etc. allow-newer: true From 857edb9d9617c2c3c95d514563e3eb741a7e4678 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 08:20:55 +0100 Subject: [PATCH 08/41] Ude 9.0.1 for hackage We cant use 9.0.2 until all deps do not need allow-newer --- .github/workflows/hackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index a0c1eba300..b67ed09898 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -34,7 +34,7 @@ jobs: "hls-call-hierarchy-plugin", "hls-alternate-number-format-plugin", "hls-qualify-imported-names-plugin", "haskell-language-server"] - ghc: [ "9.0.2" + ghc: [ "9.0.1" , "8.10.7" , "8.8.4" , "8.6.5" From 9421c639f99b1facf49255722951bf2b3e61df9b Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 08:59:32 +0100 Subject: [PATCH 09/41] Use a unified cabal-ghc90.project And bump up index state to get lastest hie-bios --- .github/actions/setup-build/action.yml | 10 +++- .gitlab-ci.yml | 5 +- cabal-ghc902.project => cabal-ghc90.project | 8 +-- cabal-ghc901.project | 66 --------------------- cabal.project | 2 +- 5 files changed, 13 insertions(+), 78 deletions(-) rename cabal-ghc902.project => cabal-ghc90.project (96%) delete mode 100644 cabal-ghc901.project diff --git a/.github/actions/setup-build/action.yml b/.github/actions/setup-build/action.yml index c3028fd3d6..c0e01ebe5e 100644 --- a/.github/actions/setup-build/action.yml +++ b/.github/actions/setup-build/action.yml @@ -44,9 +44,13 @@ runs: # (most probably sticky bit is set on $HOME) # `&&` insures `rm -f` return is positive. # Many platforms aslo have `alias cp='cp -i'`. - ALT_PROJECT_FILE=cabal-ghc${GHCVER//./}.project - if [[ -f "$ALT_PROJECT_FILE" ]]; then - rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE" cabal.project + GHCVER2=${GHCVER//./} + ALT_PROJECT_FILE_MINOR=cabal-ghc${GHCVER2}.project + ALT_PROJECT_FILE_MAJOR=cabal-ghc${GHCVER2:0:2}.project + if [[ -f "$ALT_PROJECT_FILE_MINOR" ]]; then + rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE_MINOR" cabal.project + elif [[ -f "$ALT_PROJECT_FILE_MAJOR" ]]; then + rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE_MAJOR" cabal.project fi shell: bash diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 23899813c1..28f4add394 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,9 +17,9 @@ variables: - GHC_VERSION: 8.10.7 CABAL_PROJECT: cabal.project - GHC_VERSION: 9.0.1 - CABAL_PROJECT: cabal-ghc901.project + CABAL_PROJECT: cabal-ghc90.project - GHC_VERSION: 9.0.2 - CABAL_PROJECT: cabal-ghc902.project + CABAL_PROJECT: cabal-ghc90.project .m1_matrix: &m1_matrix matrix: @@ -286,4 +286,3 @@ tar-x86_64-windows: variables: TARBALL_ARCHIVE_SUFFIX: x86_64-windows TARBALL_EXT: zip - diff --git a/cabal-ghc902.project b/cabal-ghc90.project similarity index 96% rename from cabal-ghc902.project rename to cabal-ghc90.project index 2865fe46ed..e418629712 100644 --- a/cabal-ghc902.project +++ b/cabal-ghc90.project @@ -31,11 +31,9 @@ source-repository-package type: git location: https://github.com/tfausak/unix-compat tag: 154c3a63f154cb49c51d5f9d13488e8119631d8a - -- To fix windows build + -- To fix windows build for ghc >= 9.0.2 -- https://github.com/jacobstanley/unix-compat/pull/47 -with-compiler: ghc-9.0.2 - tests: true package * @@ -44,7 +42,7 @@ package * write-ghc-environment-files: never -index-state: 2021-12-29T12:30:08Z +index-state: 2022-01-07T07:52:31Z constraints: -- These plugins don't work on GHC9 yet @@ -53,7 +51,7 @@ constraints: -- primitive-unlifted A= 1.0 is not buildable with ghc-9.0.2 -- see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 primitive-unlifted < 1.0 - + -- although we are not building all plugins cabal solver phase is run for all packages -- this way we track explicitly all transitive dependencies which need support for ghc-9 allow-newer: diff --git a/cabal-ghc901.project b/cabal-ghc901.project deleted file mode 100644 index f813020ae7..0000000000 --- a/cabal-ghc901.project +++ /dev/null @@ -1,66 +0,0 @@ -packages: - ./ - ./hie-compat - ./shake-bench - ./hls-graph - ./ghcide - ./hls-plugin-api - ./hls-test-utils - ./plugins/hls-tactics-plugin - ./plugins/hls-brittany-plugin - ./plugins/hls-stylish-haskell-plugin - ./plugins/hls-fourmolu-plugin - ./plugins/hls-class-plugin - ./plugins/hls-eval-plugin - ./plugins/hls-explicit-imports-plugin - ./plugins/hls-refine-imports-plugin - ./plugins/hls-hlint-plugin - ./plugins/hls-rename-plugin - ./plugins/hls-retrie-plugin - ./plugins/hls-haddock-comments-plugin - ./plugins/hls-splice-plugin - ./plugins/hls-qualify-imported-names-plugin - ./plugins/hls-floskell-plugin - ./plugins/hls-pragmas-plugin - ./plugins/hls-module-name-plugin - ./plugins/hls-ormolu-plugin - ./plugins/hls-call-hierarchy-plugin - ./plugins/hls-alternate-number-format-plugin - -with-compiler: ghc-9.0.1 - -tests: true - -package * - ghc-options: -haddock - test-show-details: direct - -write-ghc-environment-files: never - -index-state: 2021-12-29T12:30:08Z - -constraints: - -- These plugins don't work on GHC9 yet - haskell-language-server +ignore-plugins-ghc-bounds -brittany -stylishhaskell -tactic, - ghc-lib-parser ^>= 9.0 - --- although we are not building all plugins cabal solver phase is run for all packages --- this way we track explicitly all transitive dependencies which need support for ghc-9 -allow-newer: - brittany:base, - brittany:ghc, - brittany:ghc-boot-th, - -- for brittany - butcher:base, - multistate:base, - data-tree-print:base, - - stylish-haskell:Cabal, - stylish-haskell:ghc-lib-parser, - - floskell:base, - floskell:ghc-prim, - - -- for shake-bench - Chart-diagrams:diagrams-core, - SVGFonts:diagrams-core diff --git a/cabal.project b/cabal.project index 01730a4d87..8fe9f2aa0f 100644 --- a/cabal.project +++ b/cabal.project @@ -40,7 +40,7 @@ package * write-ghc-environment-files: never -index-state: 2021-12-29T12:30:08Z +index-state: 2022-01-07T07:52:31Z constraints: hyphenation +embed From 1d3acf3e33df01a0c8b000e9440f7f92ebf892e8 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 09:15:01 +0100 Subject: [PATCH 10/41] Use last snapshot with ghc-9.0.2 support --- stack-9.0.2.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 44b5833724..f383fd49a0 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -1,5 +1,4 @@ -resolver: nightly-2022-01-04 -compiler: ghc-9.0.2 +resolver: nightly-2022-01-10 packages: - . @@ -53,14 +52,6 @@ extra-deps: - statestack-0.3 - operational-0.2.4.1 -# boot libraries -- Cabal-3.6.2.0 -- directory-1.3.7.0 -- ghc-boot-9.2.1 -- process-1.6.13.2 -- time-1.12.1 -- unix-2.7.2.2 - # primitive-unlifted is not buildable with ghc-9.0.2 # see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 - primitive-unlifted-0.1.3.1 From 3acfcf4d19f2c522901e12cb7508027d5120f3b2 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 09:16:48 +0100 Subject: [PATCH 11/41] Use new cabal-ghc90.project in build --- .github/workflows/build.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 41e27bb203..3101e90bc5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,9 +58,13 @@ jobs: env: GHCVER: ${{ matrix.ghc }} run: | - ALT_PROJECT_FILE=cabal-ghc${GHCVER//./}.project - if [[ -f "$ALT_PROJECT_FILE" ]]; then - rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE" cabal.project + GHCVER2=${GHCVER//./} + ALT_PROJECT_FILE_MINOR=cabal-ghc${GHCVER2}.project + ALT_PROJECT_FILE_MAJOR=cabal-ghc${GHCVER2:0:2}.project + if [[ -f "$ALT_PROJECT_FILE_MINOR" ]]; then + rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE_MINOR" cabal.project + elif [[ -f "$ALT_PROJECT_FILE_MAJOR" ]]; then + rm -f -v cabal.project && cp -v "$ALT_PROJECT_FILE_MAJOR" cabal.project fi - name: Shorten binary names From ad03a950c975e6ed27517c89300b7f2a01df2ad0 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 09:28:13 +0100 Subject: [PATCH 12/41] Add stm-containers --- stack-9.0.2.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index f383fd49a0..5e69f51e5b 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -56,6 +56,9 @@ extra-deps: # see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 - primitive-unlifted-0.1.3.1 +# needed for hls-graph +- stm-containers-1.2 + # currently needed for ghcide>extra, etc. allow-newer: true From eaaafdbcc53a844ab0e7f0f8e4a78c87a187e748 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 09:49:38 +0100 Subject: [PATCH 13/41] Add specific tweaks for ghc-9.0.2 --- stack-9.0.2.yaml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 5e69f51e5b..1327c8c88b 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -52,12 +52,27 @@ extra-deps: - statestack-0.3 - operational-0.2.4.1 -# primitive-unlifted is not buildable with ghc-9.0.2 +# hls-graph dependencies +- stm-containers-1.2 +- stm-hamt-1.2.0.7 + +# primitive-unlifted-1.0.0 is not buildable with ghc-9.0.2 # see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 - primitive-unlifted-0.1.3.1 +- primitive-extras-0.10.1.4 -# needed for hls-graph -- stm-containers-1.2 +# To fix windows build for ghc >= 9.0.2 +# https://github.com/jacobstanley/unix-compat/pull/47 +- git: https://github.com/tfausak/unix-compat + commit: 154c3a63f154cb49c51d5f9d13488e8119631d8a + +# boot libraries +- Cabal-3.6.2.0 +- directory-1.3.7.0 +- ghc-boot-9.2.1 +- process-1.6.13.2 +- time-1.12.1 +- unix-2.7.2.2 # currently needed for ghcide>extra, etc. allow-newer: true From ec80d948159a16ac33bfa6807b9be35edf525a90 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 11 Jan 2022 12:03:37 +0100 Subject: [PATCH 14/41] Use the las ghc-boot-9.0 --- stack-9.0.2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 1327c8c88b..ea35b88832 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -69,7 +69,7 @@ extra-deps: # boot libraries - Cabal-3.6.2.0 - directory-1.3.7.0 -- ghc-boot-9.2.1 +- ghc-boot-9.0.1 - process-1.6.13.2 - time-1.12.1 - unix-2.7.2.2 From 9161fb8a4692b78b0f7bc373ab5013a12de702ae Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Wed, 12 Jan 2022 13:59:54 +0100 Subject: [PATCH 15/41] Fix test adding allow-newer Co-Authored-By: @michaelpj --- ghcide/test/data/plugin-knownnat/cabal.project | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ghcide/test/data/plugin-knownnat/cabal.project b/ghcide/test/data/plugin-knownnat/cabal.project index e6fdbadb43..95282e93e9 100644 --- a/ghcide/test/data/plugin-knownnat/cabal.project +++ b/ghcide/test/data/plugin-knownnat/cabal.project @@ -1 +1,4 @@ packages: . + +-- Needed for ghc >= 9.0.2 and ghc-typelits-natnormalise == 0.7.6 +allow-newer: ghc-typelits-natnormalise:ghc-bignum From d7c63f86d8b527bd01f45bf99add13fc131ba157 Mon Sep 17 00:00:00 2001 From: jneira Date: Wed, 12 Jan 2022 23:16:03 +0100 Subject: [PATCH 16/41] Use unix-compat from hackage --- cabal-ghc90.project | 9 +-------- cabal-ghc921.project | 2 +- cabal.project | 2 +- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/cabal-ghc90.project b/cabal-ghc90.project index e418629712..267dd56b8c 100644 --- a/cabal-ghc90.project +++ b/cabal-ghc90.project @@ -27,13 +27,6 @@ packages: ./plugins/hls-call-hierarchy-plugin ./plugins/hls-alternate-number-format-plugin -source-repository-package - type: git - location: https://github.com/tfausak/unix-compat - tag: 154c3a63f154cb49c51d5f9d13488e8119631d8a - -- To fix windows build for ghc >= 9.0.2 - -- https://github.com/jacobstanley/unix-compat/pull/47 - tests: true package * @@ -42,7 +35,7 @@ package * write-ghc-environment-files: never -index-state: 2022-01-07T07:52:31Z +index-state: 2022-01-11T22:05:45Z constraints: -- These plugins don't work on GHC9 yet diff --git a/cabal-ghc921.project b/cabal-ghc921.project index fe534c783c..8912f49709 100644 --- a/cabal-ghc921.project +++ b/cabal-ghc921.project @@ -36,7 +36,7 @@ package * write-ghc-environment-files: never -index-state: 2021-12-29T12:30:08Z +index-state: 2022-01-11T22:05:45Z constraints: -- These plugins doesn't work on GHC92 yet diff --git a/cabal.project b/cabal.project index 8fe9f2aa0f..66b4e41302 100644 --- a/cabal.project +++ b/cabal.project @@ -40,7 +40,7 @@ package * write-ghc-environment-files: never -index-state: 2022-01-07T07:52:31Z +index-state: 2022-01-11T22:05:45Z constraints: hyphenation +embed From e377956ad72ce9ac129eb936f619698d6e9518a9 Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 08:06:58 +0100 Subject: [PATCH 17/41] Use unix-compat from hackage --- stack-9.0.2.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index ea35b88832..88a8066127 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -43,7 +43,7 @@ extra-deps: - implicit-hie-cradle-0.3.0.5 - monad-dijkstra-0.1.1.3 - retrie-1.1.0.0 - +- unix-compat-0.5.4 # shake-bench dependencies - Chart-1.9.3 - Chart-diagrams-1.9.3 @@ -61,11 +61,6 @@ extra-deps: - primitive-unlifted-0.1.3.1 - primitive-extras-0.10.1.4 -# To fix windows build for ghc >= 9.0.2 -# https://github.com/jacobstanley/unix-compat/pull/47 -- git: https://github.com/tfausak/unix-compat - commit: 154c3a63f154cb49c51d5f9d13488e8119631d8a - # boot libraries - Cabal-3.6.2.0 - directory-1.3.7.0 From 52a6a4daf40ef216c9dec5f7be3e0f2e4424a260 Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 08:20:21 +0100 Subject: [PATCH 18/41] Make consistent lastest stack.yamls --- stack-9.0.2.yaml | 3 ++- stack-9.2.1.yaml | 37 ++++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 88a8066127..f5579777f4 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -40,10 +40,11 @@ extra-deps: - heapsize-0.3.0.1 - hiedb-0.4.1.0 - implicit-hie-0.1.2.6 -- implicit-hie-cradle-0.3.0.5 +- implicit-hie-cradle-0.5.0.0 - monad-dijkstra-0.1.1.3 - retrie-1.1.0.0 - unix-compat-0.5.4 + # shake-bench dependencies - Chart-1.9.3 - Chart-diagrams-1.9.3 diff --git a/stack-9.2.1.yaml b/stack-9.2.1.yaml index 690e8a1a03..2e2a265fbc 100644 --- a/stack-9.2.1.yaml +++ b/stack-9.2.1.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2021-12-22 +resolver: nightly-2022-01-10 compiler: ghc-9.2.1 packages: @@ -15,7 +15,7 @@ packages: # - ./plugins/hls-eval-plugin - ./plugins/hls-explicit-imports-plugin - ./plugins/hls-qualify-imported-names-plugin -- ./plugins/hls-refine-imports-plugin +# - ./plugins/hls-refine-imports-plugin # - ./plugins/hls-hlint-plugin # - ./plugins/hls-rename-plugin # - ./plugins/hls-retrie-plugin @@ -32,33 +32,24 @@ packages: extra-deps: -# ghc-9.2 specific -# boot packages -- Cabal-3.6.2.0 -- directory-1.3.7.0 -- ghc-boot-9.2.1 -- process-1.6.13.2 -- time-1.12.1 - - - bytestring-encoding-0.1.1.0 - dependent-map-0.4.0.0 -- dependent-sum-0.7.1.0 - extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 - hspec-2.7.10 # for hls-test-utils - hspec-core-2.7.10 # for hls-test-utils - some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 -- dependent-sum-template-0.1.1.1 - floskell-0.10.6 - heapsize-0.3.0.1 - hiedb-0.4.1.0 - implicit-hie-0.1.2.6 -- implicit-hie-cradle-0.3.0.5 +- implicit-hie-cradle-0.5.0.0 - monad-dijkstra-0.1.1.3 - retrie-1.1.0.0 -- lsp-1.2.0.1 -- lsp-types-1.3.0.1 -- lsp-test-0.14.0.1 +- unix-compat-0.5.4 + +# hls-graph dependencies +- stm-containers-1.2 +- stm-hamt-1.2.0.7 # shake-bench dependencies - Chart-1.9.3 @@ -68,6 +59,18 @@ extra-deps: - statestack-0.3 - operational-0.2.4.1 +# primitive-unlifted-1.0.0 is not buildable with ghc-9.0.2 +# see https://gitlab.haskell.org/ghc/ghc/-/issues/20908 +- primitive-unlifted-0.1.3.1 +- primitive-extras-0.10.1.4 + +# boot libraries +- Cabal-3.6.2.0 +- directory-1.3.7.0 +- ghc-boot-9.2.1 +- process-1.6.13.2 +- time-1.12.1 + # currently needed for ghcide>extra, etc. allow-newer: true From c3b8a5448e5ec285fa3929654bb6643e7ee2ea6e Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 09:30:09 +0100 Subject: [PATCH 19/41] Clean up cabal.project --- cabal-ghc90.project | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/cabal-ghc90.project b/cabal-ghc90.project index 0dee79f0c0..577b662556 100644 --- a/cabal-ghc90.project +++ b/cabal-ghc90.project @@ -47,25 +47,21 @@ constraints: -- this way we track explicitly all transitive dependencies which need support for ghc-9 allow-newer: - -- brittany: update ghc bounds in hls.cabal when those are removed - -- https://github.com/lspitzner/multistate/pull/8 - multistate:base, - -- https://github.com/lspitzner/data-tree-print/pull/3 - data-tree-print:base, - -- https://github.com/lspitzner/butcher/pull/8 - butcher:base, + -- brittany: update ghc bounds in hls.cabal when those are removed + -- https://github.com/lspitzner/multistate/pull/8 + multistate:base, + -- https://github.com/lspitzner/data-tree-print/pull/3 + data-tree-print:base, + -- https://github.com/lspitzner/butcher/pull/8 + butcher:base, - stylish-haskell:Cabal, - stylish-haskell:ghc-lib-parser, - stylish-haskell:aeson, + stylish-haskell:Cabal, + stylish-haskell:ghc-lib-parser, + stylish-haskell:aeson, - floskell:base, - floskell:ghc-prim, + floskell:base, + floskell:ghc-prim, - -- for shake-bench - Chart-diagrams:diagrams-core, - SVGFonts:diagrams-core, - - -- ghc-9.0.2 specific - hashable:ghc-bignum, - ghc-typelits-natnormalise:ghc-bignum + -- ghc-9.0.2 specific + -- for ghcide:test via ghc-typelits-knownnat + ghc-typelits-natnormalise:ghc-bignum From 75e234a5df8bcee65803decc4667269f236b5e6c Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 09:32:43 +0100 Subject: [PATCH 20/41] more cleanups --- cabal-ghc90.project | 3 --- 1 file changed, 3 deletions(-) diff --git a/cabal-ghc90.project b/cabal-ghc90.project index 577b662556..b4c2490712 100644 --- a/cabal-ghc90.project +++ b/cabal-ghc90.project @@ -59,9 +59,6 @@ allow-newer: stylish-haskell:ghc-lib-parser, stylish-haskell:aeson, - floskell:base, - floskell:ghc-prim, - -- ghc-9.0.2 specific -- for ghcide:test via ghc-typelits-knownnat ghc-typelits-natnormalise:ghc-bignum From d549a262a8d0fe36c3a974848f40753638cf1144 Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 09:35:28 +0100 Subject: [PATCH 21/41] Update tweaks in hackage ci --- .github/workflows/hackage.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index b67ed09898..68a8e99dea 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -104,22 +104,15 @@ jobs: cd $(ls -d ./incoming/${{ matrix.package }}-*) echo "packages: . ../../* ../../plugins/*" > cabal.project - - name: "Add temporary needed allow-newer" - if: steps.get-hackage-version.outputs.exists != 'true' - run: | - # TODO: remove when not needed - cd $(ls -d ./incoming/${{ matrix.package }}-*) - echo "allow-newer: Chart-diagrams:diagrams-core, SVGFonts:diagrams-core," >> cabal.project - - name: "Add temporary needed allow-newer for ghc-9.0" if: steps.get-hackage-version.outputs.exists != 'true' && (matrix.ghc == '9.0.1' || matrix.ghc == '9.0.2') run: | # TODO: remove when not needed cd $(ls -d ./incoming/${{ matrix.package }}-*) # For brittany - echo " brittany:base, brittany:ghc, brittany:ghc-boot-th, butcher:base, multistate:base, data-tree-print:base," >> cabal.project + echo " butcher:base, multistate:base, data-tree-print:base," >> cabal.project # For floskell and stylish-haskell - echo " floskell:base, floskell:ghc-prim, stylish-haskell:Cabal,stylish-haskell:ghc-lib-parser," >> cabal.project + echo " stylish-haskell:Cabal,stylish-haskell:ghc-lib-parser,stylish-haskell:aeson" >> cabal.project - name: "Build main package components in isolation" if: steps.get-hackage-version.outputs.exists != 'true' From e3c41d9d1c9f83652ca5d9acf59b338130028dfb Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 11:58:39 +0100 Subject: [PATCH 22/41] Correct comment --- .github/workflows/hackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index 68a8e99dea..e75a17ff3f 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -111,7 +111,7 @@ jobs: cd $(ls -d ./incoming/${{ matrix.package }}-*) # For brittany echo " butcher:base, multistate:base, data-tree-print:base," >> cabal.project - # For floskell and stylish-haskell + # For stylish-haskell echo " stylish-haskell:Cabal,stylish-haskell:ghc-lib-parser,stylish-haskell:aeson" >> cabal.project - name: "Build main package components in isolation" From 51db99477fd4a0f1b76d2513f3e44959d1bda88b Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 13:07:52 +0100 Subject: [PATCH 23/41] Correct fourmolu condition --- haskell-language-server.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index 9bde4a5e87..dfcc7bf41b 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -288,7 +288,7 @@ common floskell cpp-options: -Dfloskell common fourmolu - if flag(fourmolu) && flag(ignore-plugins-ghc-bounds) + if flag(fourmolu) build-depends: hls-fourmolu-plugin ^>=1.0.0.0 cpp-options: -Dfourmolu From eeb343d4accc8b9128b470f379f96856dfe9f5c0 Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 13:10:32 +0100 Subject: [PATCH 24/41] Correct fourmolu condition in tests --- haskell-language-server.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index dfcc7bf41b..7d0202ef4b 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -475,7 +475,7 @@ test-suite func-test -- formatters if flag(floskell) && (impl(ghc < 9.2.1) || flag(ignore-plugins-ghc-bounds)) cpp-options: -Dfloskell - if flag(fourmolu) && flag(ignore-plugins-ghc-bounds) + if flag(fourmolu) cpp-options: -Dfourmolu if flag(ormolu) cpp-options: -Dormolu From 6a770646ae9ae3d31989e84cf4969e09323e0090 Mon Sep 17 00:00:00 2001 From: jneira Date: Thu, 13 Jan 2022 14:29:09 +0100 Subject: [PATCH 25/41] Removing the all target from caching It builds all project packages even if we they are not buildables (and are not included in hls due to flags) Its goal was build all tests and benchmarks but --enable-tests ans --enable-benchmarks should work Last one does not: https://github.com/haskell/cabal/issues/6259 --- .github/workflows/caching.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml index c3d9bb69e5..104cdeac1a 100644 --- a/.github/workflows/caching.yml +++ b/.github/workflows/caching.yml @@ -45,7 +45,7 @@ on: - cron: "25 2/8 * * *" env: - cabalBuild: "v2-build all --keep-going" + cabalBuild: "v2-build --keep-going" jobs: From fba33f52551ea3339da4b2945717e102d9692923 Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Thu, 13 Jan 2022 15:25:53 +0100 Subject: [PATCH 26/41] exclude Brittany 0.14.0.1 --- plugins/hls-brittany-plugin/hls-brittany-plugin.cabal | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal b/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal index ff7f302985..026ef6f2bd 100644 --- a/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal +++ b/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal @@ -21,7 +21,8 @@ library hs-source-dirs: src build-depends: , base >=4.12 && <5 - , brittany >=0.13.1.0 + -- see https://github.com/lspitzner/brittany/issues/364 + , brittany >=0.13.1.0 && < 0.14.0.1 || > 0.14.0.1 , filepath , ghc-boot-th , ghcide >=1.2 && <1.6 From 5dcec895b4b52af6b94093181dfa496605b0fef2 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 21:54:41 +0100 Subject: [PATCH 27/41] Update snapshot to get new lsp --- stack-9.0.2.yaml | 2 +- stack-9.2.1.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 2485b587c8..654ec8d61b 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2022-01-10 +resolver: nightly-2022-01-14 packages: - . diff --git a/stack-9.2.1.yaml b/stack-9.2.1.yaml index 2e2a265fbc..5d1f8ee656 100644 --- a/stack-9.2.1.yaml +++ b/stack-9.2.1.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2022-01-10 +resolver: nightly-2022-01-14 compiler: ghc-9.2.1 packages: From b44f58be52c9d5fcacf5e31a8c0306c73ba2f475 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 22:26:08 +0100 Subject: [PATCH 28/41] document flag --- haskell-language-server.cabal | 3 +++ 1 file changed, 3 insertions(+) diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index 91c42dd3f1..04a383dd61 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -93,6 +93,9 @@ library -- - Bulk flags should be default:False -- - Individual flags should be default:True +-- The intent of this flag is being able to keep the ghc condition for hackage +-- but skip it via flags in cabal.project as plugins for new ghcs usually +-- are buildable using cabal.project tweaks flag ignore-plugins-ghc-bounds description: Force the inclusion of plugins even if they are not buildable by default with a specific ghc version default: False From bfedf97e097b1bd441f86ee8356b6783e162b3f4 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 22:27:00 +0100 Subject: [PATCH 29/41] Document and build ghcide benchmark --- .github/workflows/caching.yml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml index 104cdeac1a..8ccea7234b 100644 --- a/.github/workflows/caching.yml +++ b/.github/workflows/caching.yml @@ -44,6 +44,8 @@ on: # & so it gets shared across all PRs. - cron: "25 2/8 * * *" +# We build the main haskell-language-server which make build the rest of +# subpackages *libs* (but shake-bench) env: cabalBuild: "v2-build --keep-going" @@ -97,24 +99,26 @@ jobs: ghc: ${{ matrix.ghc }} os: ${{ runner.os }} + # Download sources for feed build sources cache + # Fetching from github cache is faster than do it from hackage + # Sources does not change per ghc and ghc version son only doing it + # for one matrix job (it is arbitrary) - if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '8.10.7' - name: Download sources for bench - # Downloaded separately, to match the tested work/PR workflow guarantees + name: Download sources run: | - cabal $cabalBuild --only-download --enable-benchmarks + cabal $cabalBuild --only-download --enable-benchmarks --enable-tests + # This build agenda in not to have successful code but cache as much as possible - if: steps.compiled-deps.outputs.cache-hit != 'true' - name: Download the rest of the sources - # Downloaded separately, to match the tested work/PR workflow guarantees + name: Build haskell-language-server run: | - cabal $cabalBuild --only-download --enable-tests + # repeating builds to workaround segfaults in windows and ghc-8.8.4 + cabal $cabalBuild || cabal $cabalBuild || cabal $cabalBuild - # repeating builds to workaround segfaults in windows and ghc-8.8.4 - # This build agenda in not to have successful code, - # but to cache what can be cached, so step is fault tolerant & would always succseed. - # 2021-12-11: NOTE: Building all targets, since - # current Cabal does not allow `all --enable-tests --enable-benchmarks --only-dependencies` - - if: steps.compiled-deps.outputs.cache-hit != 'true' - name: Build all targets; try 3 times + # We build ghcide with benchs and test enabled to include its dependencies in cache + # (including shake-bench) + # Only for the same ghc and os used in the bench workflow, so we save cache space + - if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '8.10.7' + name: Build ghcide benchmark run: | - cabal $cabalBuild || cabal $cabalBuild || cabal $cabalBuild + cabal $cabalBuild ghcide --enable-benchmarks --enable-tests From 4e535c7a5f845a7977153ca5e9c0326075709182 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 23:15:57 +0100 Subject: [PATCH 30/41] Doc and use ghc-9.0.2 in hackage --- .github/workflows/hackage.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index e75a17ff3f..0d6957aa12 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -34,18 +34,14 @@ jobs: "hls-call-hierarchy-plugin", "hls-alternate-number-format-plugin", "hls-qualify-imported-names-plugin", "haskell-language-server"] - ghc: [ "9.0.1" + ghc: [ "9.0.2" , "8.10.7" , "8.8.4" , "8.6.5" ] exclude: - - ghc: "9.0.2" - package: "hls-brittany-plugin" - ghc: "9.0.2" package: "hls-stylish-haskell-plugin" - - ghc: "9.0.2" - package: "hls-class-plugin" - ghc: "9.0.2" package: "hls-tactics-plugin" @@ -104,10 +100,13 @@ jobs: cd $(ls -d ./incoming/${{ matrix.package }}-*) echo "packages: . ../../* ../../plugins/*" > cabal.project + # These tweaks are already in cabal-901.project but we dont want to use the entire file, + # Only the tricks needed by the solver which we know will not make the hackage build fail. + # The solver takes in account all project packages, even if they are not gonna be effectively built + # (like brittany or stylish-haskell for ghc-9.0) - name: "Add temporary needed allow-newer for ghc-9.0" - if: steps.get-hackage-version.outputs.exists != 'true' && (matrix.ghc == '9.0.1' || matrix.ghc == '9.0.2') + if: steps.get-hackage-version.outputs.exists != 'true' && matrix.ghc == '9.0.2' run: | - # TODO: remove when not needed cd $(ls -d ./incoming/${{ matrix.package }}-*) # For brittany echo " butcher:base, multistate:base, data-tree-print:base," >> cabal.project @@ -124,8 +123,7 @@ jobs: if: steps.get-hackage-version.outputs.exists != 'true' run: | cd $(ls -d ./incoming/${{ matrix.package }}-*) - # cabal-3.4.0.0 run out of backjumps with tests and benchs enabled - cabal build --enable-tests --enable-benchmarks --max-backjumps 8000 + cabal build --enable-tests --enable-benchmarks - name: "Generate haddock for hackage" if: steps.get-hackage-version.outputs.exists != 'true' From 2c7ac639fa59e8d8485e4f7b4f135a9976b9d50f Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 23:37:36 +0100 Subject: [PATCH 31/41] Add ghc-9.2.1 to tested-with --- ghcide/ghcide.cabal | 2 +- haskell-language-server.cabal | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ghcide/ghcide.cabal b/ghcide/ghcide.cabal index 254c1d7cfa..57976ef2d4 100644 --- a/ghcide/ghcide.cabal +++ b/ghcide/ghcide.cabal @@ -13,7 +13,7 @@ description: A library for building Haskell IDE's on top of the GHC API. homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme bug-reports: https://github.com/haskell/haskell-language-server/issues -tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 || == 9.2.1 extra-source-files: README.md CHANGELOG.md test/data/**/*.project test/data/**/*.cabal diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index 04a383dd61..986b642a17 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -14,7 +14,7 @@ copyright: The Haskell IDE Team license: Apache-2.0 license-file: LICENSE build-type: Simple -tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.6 || == 8.10.7 || == 9.0.1 || == 9.0.2 || == 9.2.1 extra-source-files: README.md ChangeLog.md From d2f0216aedbc762134270cd3f84a92880bc0af2b Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 14 Jan 2022 23:38:19 +0100 Subject: [PATCH 32/41] Use 9.0.2 in gitlab --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28f4add394..29fece07f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,8 +16,6 @@ variables: CABAL_PROJECT: cabal.project - GHC_VERSION: 8.10.7 CABAL_PROJECT: cabal.project - - GHC_VERSION: 9.0.1 - CABAL_PROJECT: cabal-ghc90.project - GHC_VERSION: 9.0.2 CABAL_PROJECT: cabal-ghc90.project From d210d994ee754c98267adb45951908559d910880 Mon Sep 17 00:00:00 2001 From: jneira Date: Sat, 15 Jan 2022 23:19:20 +0100 Subject: [PATCH 33/41] Use last *molus --- stack-9.0.2.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 654ec8d61b..f94d36af2c 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -33,6 +33,7 @@ extra-deps: - bytestring-encoding-0.1.1.0 - dependent-map-0.4.0.0 - extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 +- fourmolu-0.5.0.0 - hspec-2.7.10 # for hls-test-utils - hspec-core-2.7.10 # for hls-test-utils - some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 @@ -42,6 +43,7 @@ extra-deps: - implicit-hie-0.1.2.6 - implicit-hie-cradle-0.5.0.0 - monad-dijkstra-0.1.1.3 +- ormolu-0.4.0.0 - retrie-1.1.0.0 - unix-compat-0.5.4 From dd335b67fa4c3cb117fc170edf37ecc4f3a37c5d Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 16 Jan 2022 11:30:11 +0100 Subject: [PATCH 34/41] Use same versions as cabal build --- stack-9.0.2.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index f94d36af2c..c83b485e0e 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -33,7 +33,7 @@ extra-deps: - bytestring-encoding-0.1.1.0 - dependent-map-0.4.0.0 - extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 -- fourmolu-0.5.0.0 +- fourmolu-0.4.0.0 - hspec-2.7.10 # for hls-test-utils - hspec-core-2.7.10 # for hls-test-utils - some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 @@ -43,7 +43,7 @@ extra-deps: - implicit-hie-0.1.2.6 - implicit-hie-cradle-0.5.0.0 - monad-dijkstra-0.1.1.3 -- ormolu-0.4.0.0 +- ormolu-0.3.1.0 - retrie-1.1.0.0 - unix-compat-0.5.4 From e27f56df82321b1826e23cb528b18e323aad9f94 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 16 Jan 2022 16:05:19 +0100 Subject: [PATCH 35/41] Use cabal freeze versions --- stack-9.0.1.yaml | 2 +- stack-9.0.2.yaml | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/stack-9.0.1.yaml b/stack-9.0.1.yaml index 935ced00af..6d23c2ffb9 100644 --- a/stack-9.0.1.yaml +++ b/stack-9.0.1.yaml @@ -30,7 +30,7 @@ packages: - ./plugins/hls-alternate-number-format-plugin extra-deps: -- aeson-2.0.2.0 +- aeson-2.0.3.0 - brittany-0.14.0.0 - butcher-1.3.3.2 - bytestring-encoding-0.1.1.0 diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index c83b485e0e..aab6900451 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -30,10 +30,14 @@ packages: - ./plugins/hls-alternate-number-format-plugin extra-deps: +- aeson-2.0.3.0 +- brittany-0.14.0.0 +- butcher-1.3.3.2 - bytestring-encoding-0.1.1.0 +- data-tree-print-0.1.0.2 - dependent-map-0.4.0.0 -- extra-1.7.9 # for ghcide, https://github.com/haskell/haskell-language-server/pull/2131 -- fourmolu-0.4.0.0 +- dependent-sum-0.7.1.0 +- extra-1.7.10 - hspec-2.7.10 # for hls-test-utils - hspec-core-2.7.10 # for hls-test-utils - some-1.0.2 # for dependent-sum, https://github.com/obsidiansystems/dependent-sum/issues/66 @@ -41,9 +45,9 @@ extra-deps: - heapsize-0.3.0.1 - hiedb-0.4.1.0 - implicit-hie-0.1.2.6 -- implicit-hie-cradle-0.5.0.0 +- implicit-hie-cradle-0.3.0.5 - monad-dijkstra-0.1.1.3 -- ormolu-0.3.1.0 +- multistate-0.8.0.3 - retrie-1.1.0.0 - unix-compat-0.5.4 @@ -65,11 +69,10 @@ extra-deps: - primitive-extras-0.10.1.4 # boot libraries -- Cabal-3.6.2.0 -- directory-1.3.7.0 -- ghc-boot-9.0.1 +- Cabal-3.4.1.0 +- directory-1.3.6.2 - process-1.6.13.2 -- time-1.12.1 +- time-1.9.3 - unix-2.7.2.2 - Win32-2.12.0.1 @@ -101,6 +104,7 @@ flags: # Stack doesn't support automatic flags. hls-hlint-plugin: hlint33: true + ghc-lib: false hyphenation: embed: true From e694ebbc907896c8b1415df0d275f88da31141db Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Sun, 16 Jan 2022 17:02:59 +0100 Subject: [PATCH 36/41] Add dep for ghcide tests --- stack-9.0.2.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index aab6900451..802dbdd46a 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -76,6 +76,9 @@ extra-deps: - unix-2.7.2.2 - Win32-2.12.0.1 +# for ghcide test suite +- ghc-typelits-knownnat-0.7.6 + # currently needed for ghcide>extra, etc. allow-newer: true From 47e213c8151159cb3aaaba4ad545ea73379826a1 Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Sun, 16 Jan 2022 17:28:14 +0100 Subject: [PATCH 37/41] one by one --- stack-9.0.2.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 802dbdd46a..44eb33e5c5 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -78,6 +78,7 @@ extra-deps: # for ghcide test suite - ghc-typelits-knownnat-0.7.6 +- ghc-typelits-natnormalise-0.7.6 # currently needed for ghcide>extra, etc. allow-newer: true From f965d3cdf8d9ed19484581be5852abbdf0828326 Mon Sep 17 00:00:00 2001 From: Javier Neira Date: Sun, 16 Jan 2022 20:27:03 +0100 Subject: [PATCH 38/41] Unnecessary change --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b139f0e59a..bbbff326c0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: [ "9.2.1" , "9.0.2" , "9.0.1" - , '8.10.7' + , "8.10.7" , "8.10.6" , "8.8.4" , "8.6.5" From 3e7586771e0590f1a46686bcaa4d437594fa45a3 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 16 Jan 2022 22:13:02 +0100 Subject: [PATCH 39/41] Remove unnecessary flag --- stack-9.0.2.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index 44eb33e5c5..a4497d1df4 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -108,7 +108,6 @@ flags: # Stack doesn't support automatic flags. hls-hlint-plugin: hlint33: true - ghc-lib: false hyphenation: embed: true From 3a8e61e0fb78663314ccc79799b662526d7dc2f4 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 16 Jan 2022 22:14:17 +0100 Subject: [PATCH 40/41] Corrections --- .github/workflows/caching.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml index 8ccea7234b..fc9b319de0 100644 --- a/.github/workflows/caching.yml +++ b/.github/workflows/caching.yml @@ -44,8 +44,8 @@ on: # & so it gets shared across all PRs. - cron: "25 2/8 * * *" -# We build the main haskell-language-server which make build the rest of -# subpackages *libs* (but shake-bench) +# Not using a explicit target to build the top level haskell-language-server package +# which make build the rest of subpackages *libs* (but shake-bench) env: cabalBuild: "v2-build --keep-going" @@ -99,8 +99,8 @@ jobs: ghc: ${{ matrix.ghc }} os: ${{ runner.os }} - # Download sources for feed build sources cache - # Fetching from github cache is faster than do it from hackage + # Download sources for feeding build sources cache + # Fetching from github cache is faster than doing it from hackage # Sources does not change per ghc and ghc version son only doing it # for one matrix job (it is arbitrary) - if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '8.10.7' @@ -108,14 +108,14 @@ jobs: run: | cabal $cabalBuild --only-download --enable-benchmarks --enable-tests - # This build agenda in not to have successful code but cache as much as possible + # This build agenda is not to have successful code but produce cache as much as possible - if: steps.compiled-deps.outputs.cache-hit != 'true' name: Build haskell-language-server run: | # repeating builds to workaround segfaults in windows and ghc-8.8.4 cabal $cabalBuild || cabal $cabalBuild || cabal $cabalBuild - # We build ghcide with benchs and test enabled to include its dependencies in cache + # We build ghcide with benchs and test enabled to include its dependencies in the cache # (including shake-bench) # Only for the same ghc and os used in the bench workflow, so we save cache space - if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '8.10.7' From 3980b6d2d78d635f6c8c51dd06f3e5442b4e1444 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 16 Jan 2022 22:15:14 +0100 Subject: [PATCH 41/41] Move blocks --- stack-9.0.2.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stack-9.0.2.yaml b/stack-9.0.2.yaml index a4497d1df4..8a6fc004b3 100644 --- a/stack-9.0.2.yaml +++ b/stack-9.0.2.yaml @@ -68,6 +68,10 @@ extra-deps: - primitive-unlifted-0.1.3.1 - primitive-extras-0.10.1.4 +# for ghcide test suite +- ghc-typelits-knownnat-0.7.6 +- ghc-typelits-natnormalise-0.7.6 + # boot libraries - Cabal-3.4.1.0 - directory-1.3.6.2 @@ -76,10 +80,6 @@ extra-deps: - unix-2.7.2.2 - Win32-2.12.0.1 -# for ghcide test suite -- ghc-typelits-knownnat-0.7.6 -- ghc-typelits-natnormalise-0.7.6 - # currently needed for ghcide>extra, etc. allow-newer: true