Skip to content

Note which GHC versions contributors can use for installing fourmolu #10472

Closed
@philderbeast

Description

@philderbeast

After installing Fourmolu 0.12, there are some makefile targets to help formatting the code base.
SOURCE: CONTRIBUTING.md, code style section.

I've been able to install fourmolu-0.12.0.0 with cabal-install-3.12.1.0 with GHC versions; ghc-9.6.6, ghc-9.4.8 and ghc-9.2.8 but have had failures with other GHC versions (trying the latest in ghc-x.y.* series).

Could we add a note about installation with cabal, particularly about which version of GHC can be used for this?

Whether an installation will succeed (pass the constraint solving step) can be checked quickly by varying the GHC version and running:

$ cabal install fourmolu-0.12.0.0 --overwrite-policy=always --ignore-project --dry-run

Failures for ghc-x.y.* series

  • ghc-9.10.1
$ cabal install fourmolu-0.12.0.0 --overwrite-policy=always --ignore-project --dry-run
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] next goal: fourmolu (user goal)
[__0] rejecting: fourmolu; 0.16.2.0, 0.16.1.0, 0.16.0.0, 0.15.0.0, 0.14.1.0, 0.14.0.0, 0.13.1.0, 0.13.0.0 (constraint from user target requires ==0.12.0.0)
[__0] trying: fourmolu-0.12.0.0
[__1] trying: th-env-0.1.1 (dependency of fourmolu)
[__2] trying: template-haskell-2.22.0.0/installed-0c48 (dependency of th-env)
[__3] next goal: pretty (dependency of template-haskell)
[__3] rejecting: pretty-1.1.3.6/installed-b010 (conflict: fourmolu => deepseq>=1.4 && <1.5, pretty => deepseq==1.5.0.0/installed-2bd9)
[__3] rejecting: pretty; 1.1.3.6, 1.1.3.5, 1.1.3.4, 1.1.3.3, 1.1.3.2, 1.1.3.1, 1.1.2.1, 1.1.2.0, 1.1.1.3, 1.1.1.2, 1.1.1.1, 1.1.1.0, 1.1.0.0, 1.0.1.2, 1.0.1.1, 1.0.1.0, 1.0.0.0 (conflict: template-haskell => pretty==1.1.3.6/installed-b010)
[__3] fail (backjumping, conflict set: fourmolu, pretty, template-haskell)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: template-haskell, fourmolu, pretty, th-env
Try running with --minimize-conflict-set to improve the error message.
  • ghc-9.8.2
$ cabal install fourmolu-0.12.0.0 --overwrite-policy=always --ignore-project --dry-run
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] next goal: fourmolu (user goal)
[__0] rejecting: fourmolu; 0.16.2.0, 0.16.1.0, 0.16.0.0, 0.15.0.0, 0.14.1.0, 0.14.0.0, 0.13.1.0, 0.13.0.0 (constraint from user target requires ==0.12.0.0)
[__0] trying: fourmolu-0.12.0.0
[__1] trying: th-env-0.1.1 (dependency of fourmolu)
[__2] trying: template-haskell-2.21.0.0/installed-f842 (dependency of th-env)
[__3] next goal: pretty (dependency of template-haskell)
[__3] rejecting: pretty-1.1.3.6/installed-c96a (conflict: fourmolu => deepseq>=1.4 && <1.5, pretty => deepseq==1.5.0.0/installed-adea)
[__3] rejecting: pretty; 1.1.3.6, 1.1.3.5, 1.1.3.4, 1.1.3.3, 1.1.3.2, 1.1.3.1, 1.1.2.1, 1.1.2.0, 1.1.1.3, 1.1.1.2, 1.1.1.1, 1.1.1.0, 1.1.0.0, 1.0.1.2, 1.0.1.1, 1.0.1.0, 1.0.0.0 (conflict: template-haskell => pretty==1.1.3.6/installed-c96a)
[__3] fail (backjumping, conflict set: fourmolu, pretty, template-haskell)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: template-haskell, fourmolu, pretty, th-env
Try running with --minimize-conflict-set to improve the error message.
  • ghc-9.0.2
$ cabal install fourmolu-0.12.0.0 --overwrite-policy=always --ignore-project --dry-run
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] next goal: fourmolu (user goal)
[__0] rejecting: fourmolu; 0.16.2.0, 0.16.1.0, 0.16.0.0, 0.15.0.0, 0.14.1.0, 0.14.0.0, 0.13.1.0, 0.13.0.0 (constraint from user target requires ==0.12.0.0)
[__0] rejecting: fourmolu-0.12.0.0 (conflict: requires GHC2021 which is not supported)
[__0] rejecting: fourmolu; 0.11.0.0, 0.10.1.0, 0.10.0.0, 0.9.0.0, 0.8.2.0, 0.8.1.0, 0.8.0.0, 0.7.0.1, 0.7.0.0, 0.6.0.0, 0.5.0.1, 0.5.0.0, 0.4.0.0, 0.3.0.0, 0.2.0.0, 0.1.0.0, 0.0.6.0 (constraint from user target requires ==0.12.0.0)
[__0] fail (backjumping, conflict set: fourmolu)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: fourmolu
  • ghc-8.10.7
$ 
cabal install fourmolu-0.12.0.0 --overwrite-policy=always --ignore-project --dry-run
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] next goal: fourmolu (user goal)
[__0] rejecting: fourmolu; 0.16.2.0, 0.16.1.0, 0.16.0.0, 0.15.0.0, 0.14.1.0, 0.14.0.0, 0.13.1.0, 0.13.0.0 (constraint from user target requires ==0.12.0.0)
[__0] rejecting: fourmolu-0.12.0.0 (conflict: requires GHC2021 which is not supported)
[__0] rejecting: fourmolu; 0.11.0.0, 0.10.1.0, 0.10.0.0, 0.9.0.0, 0.8.2.0, 0.8.1.0, 0.8.0.0, 0.7.0.1, 0.7.0.0, 0.6.0.0, 0.5.0.1, 0.5.0.0, 0.4.0.0, 0.3.0.0, 0.2.0.0, 0.1.0.0, 0.0.6.0 (constraint from user target requires ==0.12.0.0)
[__0] fail (backjumping, conflict set: fourmolu)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: fourmolu

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions