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/actions/setup-build/action.yml b/.github/actions/setup-build/action.yml index 5a697555cc..c0e01ebe5e 100644 --- a/.github/actions/setup-build/action.yml +++ b/.github/actions/setup-build/action.yml @@ -26,6 +26,7 @@ runs: run: | echo "CABAL_PKGS_DIR=C:\\cabal\\packages" >> $GITHUB_ENV shell: bash + - if: ( inputs.os == 'Linux' ) || ( inputs.os == 'macOS' ) name: (Linux,macOS) Platform config run: | @@ -43,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/.github/workflows/build.yml b/.github/workflows/build.yml index d7f4399130..bbbff326c0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,6 +20,7 @@ jobs: matrix: ghc: [ "9.2.1" + , "9.0.2" , "9.0.1" , "8.10.7" , "8.10.6" @@ -54,12 +55,18 @@ 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 for ghc9.2 - if: ${{ matrix.ghc == '9.2.1' }} - run: cp cabal-ghc921.project cabal.project + - name: Use modified cabal.project + env: + GHCVER: ${{ matrix.ghc }} + run: | + 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 run: | diff --git a/.github/workflows/caching.yml b/.github/workflows/caching.yml index 0620b12e11..fc9b319de0 100644 --- a/.github/workflows/caching.yml +++ b/.github/workflows/caching.yml @@ -44,8 +44,10 @@ on: # & so it gets shared across all PRs. - cron: "25 2/8 * * *" +# 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 all --keep-going" + cabalBuild: "v2-build --keep-going" jobs: @@ -77,6 +79,7 @@ jobs: fail-fast: false matrix: ghc: [ "9.2.1" + , "9.0.2" , "9.0.1" , "8.10.7" , "8.10.6" @@ -96,24 +99,26 @@ jobs: ghc: ${{ matrix.ghc }} os: ${{ runner.os }} + # 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' - 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 is not to have successful code but produce 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 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' + name: Build ghcide benchmark run: | - cabal $cabalBuild || cabal $cabalBuild || cabal $cabalBuild + cabal $cabalBuild ghcide --enable-benchmarks --enable-tests diff --git a/.github/workflows/hackage.yml b/.github/workflows/hackage.yml index 56e2acb724..0d6957aa12 100644 --- a/.github/workflows/hackage.yml +++ b/.github/workflows/hackage.yml @@ -34,18 +34,15 @@ 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" - package: "hls-brittany-plugin" - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-stylish-haskell-plugin" - - ghc: "9.0.1" - package: "hls-class-plugin" - - ghc: "9.0.1" + - ghc: "9.0.2" package: "hls-tactics-plugin" steps: @@ -103,22 +100,18 @@ 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 - + # 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' + 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 " brittany:base, brittany:ghc, brittany:ghc-boot-th, 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 " butcher:base, multistate:base, data-tree-print:base," >> cabal.project + # For stylish-haskell + 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' @@ -130,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' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e56b36b6ee..c2e821e198 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -57,6 +57,7 @@ jobs: fail-fast: true matrix: ghc: [ "9.2.1" + , "9.0.2" , "9.0.1" , "8.10.7" , "8.10.6" @@ -72,7 +73,7 @@ jobs: ghc: '9.2.1' test: true - os: ubuntu-latest - ghc: '9.0.1' + ghc: '9.0.2' test: true - os: ubuntu-latest ghc: '8.10.7' @@ -87,7 +88,7 @@ jobs: ghc: '9.2.1' test: true - os: windows-latest - ghc: '9.0.1' + ghc: '9.0.2' test: true - os: windows-latest ghc: '8.10.7' @@ -95,6 +96,13 @@ jobs: - os: windows-latest 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 + ghc: '8.8.4' steps: - uses: actions/checkout@v2 @@ -174,7 +182,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' && matrix.ghc != '9.2.1' + - if: matrix.test && matrix.ghc != '9.0.1' && matrix.ghc != '9.0.2' && matrix.ghc != '9.2.1' 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" @@ -186,7 +194,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.ghc != '9.2.1' && !(matrix.os == 'ubuntu-latest' && matrix.ghc == '8.6.5') + - if: matrix.test && matrix.ghc != '9.0.1' && matrix.ghc != '9.0.2' && matrix.ghc != '9.2.1' && !(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..29fece07f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,8 +16,8 @@ variables: CABAL_PROJECT: cabal.project - GHC_VERSION: 8.10.7 CABAL_PROJECT: cabal.project - - GHC_VERSION: 9.0.1 - CABAL_PROJECT: cabal-ghc901.project + - GHC_VERSION: 9.0.2 + CABAL_PROJECT: cabal-ghc90.project .m1_matrix: &m1_matrix matrix: @@ -284,4 +284,3 @@ tar-x86_64-windows: variables: TARBALL_ARCHIVE_SUFFIX: x86_64-windows TARBALL_EXT: zip - diff --git a/cabal-ghc901.project b/cabal-ghc90.project similarity index 74% rename from cabal-ghc901.project rename to cabal-ghc90.project index fce2492f87..b4c2490712 100644 --- a/cabal-ghc901.project +++ b/cabal-ghc90.project @@ -27,8 +27,6 @@ packages: ./plugins/hls-call-hierarchy-plugin ./plugins/hls-alternate-number-format-plugin -with-compiler: ghc-9.0.1 - tests: true package * @@ -37,7 +35,7 @@ package * write-ghc-environment-files: never -index-state: 2022-01-10T17:57:05Z +index-state: 2022-01-11T22:05:45Z constraints: -- These plugins don't work on GHC9 yet @@ -49,17 +47,18 @@ 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, + -- ghc-9.0.2 specific + -- for ghcide:test via ghc-typelits-knownnat + ghc-typelits-natnormalise:ghc-bignum diff --git a/cabal.project b/cabal.project index ab23e1f453..66b4e41302 100644 --- a/cabal.project +++ b/cabal.project @@ -40,7 +40,7 @@ package * write-ghc-environment-files: never -index-state: 2022-01-10T17:57:05Z +index-state: 2022-01-11T22:05:45Z constraints: hyphenation +embed diff --git a/docs/supported-versions.md b/docs/supported-versions.md index 303a3d330f..3df86121f3 100644 --- a/docs/supported-versions.md +++ b/docs/supported-versions.md @@ -6,7 +6,8 @@ The current support for different GHC versions is given in the following table. | GHC version | Last supporting HLS version | Deprecation status | | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | -| 9.2.0 | incoming [partial](https://github.com/haskell/haskell-language-server/issues/2179) | | +| 9.2.0 | incoming [partial](https://github.com/haskell/haskell-language-server/issues/2179) | | +| 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 2bf1a6eb12..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 +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/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 diff --git a/ghcide/test/exe/Main.hs b/ghcide/test/exe/Main.hs index e328133576..3c4f870aa6 100644 --- a/ghcide/test/exe/Main.hs +++ b/ghcide/test/exe/Main.hs @@ -590,7 +590,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 9d7e342670..2e2203263a 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 || == 9.2.1 extra-source-files: README.md ChangeLog.md @@ -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 @@ -475,7 +478,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 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 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 755bfae10d..6d23c2ffb9 100644 --- a/stack-9.0.1.yaml +++ b/stack-9.0.1.yaml @@ -1,4 +1,4 @@ -resolver: nightly-2021-12-26 +resolver: nightly-2022-01-04 packages: - . @@ -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 @@ -41,7 +41,6 @@ extra-deps: - 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 @@ -50,9 +49,6 @@ extra-deps: - monad-dijkstra-0.1.1.3 - multistate-0.8.0.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..8a6fc004b3 --- /dev/null +++ b/stack-9.0.2.yaml @@ -0,0 +1,117 @@ +resolver: nightly-2022-01-14 + +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: +- 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 +- 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 +- 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 +- multistate-0.8.0.3 +- retrie-1.1.0.0 +- unix-compat-0.5.4 + +# 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 + +# 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 + +# 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 +- process-1.6.13.2 +- time-1.9.3 +- unix-2.7.2.2 +- Win32-2.12.0.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 diff --git a/stack-9.2.1.yaml b/stack-9.2.1.yaml index b8d8ade80c..2ed26369d5 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-14 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