cabal2nix VS stackage

Compare cabal2nix vs stackage and see what are their differences.


Stable Haskell package sets: vetted consistent packages from Hackage (by commercialhaskell)
Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • SaaSHub - Software Alternatives and Reviews
cabal2nix stackage
1 12
337 516
0.9% 0.2%
0.0 9.6
29 days ago 2 days ago
Haskell Dockerfile
BSD 3-clause "New" or "Revised" License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of cabal2nix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-07.


Posts with mentions or reviews of stackage. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-24.
  • Leaving Haskell Behind
    7 projects | | 24 Aug 2023
    > That is fine, as far as it goes, but obviously this will, at some point, be at odds with the interests of programmers looking to use Haskell as a practical, stable tool.

    That's what Stackage is.

    Stackage provides consistent sets of Haskell packages, known to build together and pass their tests before becoming Stackage Nightly snapshots and LTS (Long Term Support) releases. [1]

    Java will never get this.


  • Haskell IDE setup
    3 projects | /r/haskell | 24 Feb 2023
    makefile_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) export PATH := $(makefile_dir):$(PATH) project_name ?= project_main ?= src/.hs retag_file ?= $(project_main) stack.yaml: @test -f stack.yaml || (echo -e "This makefile requires a 'stack.yaml' for your project.\nYou don't need to use 'stack' to build your project.\nYou just need a 'stack.yaml' specifying a resolver compatible with your GHC version.\nSee" && exit 1) stack: stack.yaml @which stack || (echo -e "This makefile requires 'stack' to be on your path. Use GHCup to install it.\nSee" && exit 1) .PHONY: stack warning.txt: -@uname -a | grep -q Darwin && echo "WARNING: On Mac, you must alias 'make' to 'gmake' in your shell config file (e.g. ~/.bashrc or ~/.zshrc). Symbolic links will not work." | tee warning.txt @echo "Add 'warning.txt' to your .gitignore file if you never want to see this message again." hasktags: warning.txt stack @echo 'stack exec -- hasktags' > hasktags @chmod +x hasktags @echo "You might like to add 'hasktags' to your .gitignore file." format: stack @stack exec -- fourmolu --stdin-input-file $(project_main) .PHONY: format retag: warning.txt stack @stack exec -- haskdogs -i $(retag_file) --hasktags-args "-x -c -a" | sort -u -o tags tags .PHONY: retag tags: warning.txt hasktags stack @stack exec -- haskdogs .PHONY: tags ghcid: stack @stack exec -- ghcid \ --command 'stack repl --ghc-options "-fno-code -fno-break-on-exception -fno-break-on-error -v1 -ferror-spans -j"' \ --restart stack.yaml \ --restart $(project_name).cabal \ --warnings \ --outputfile ./ghcid.txt .PHONY: ghcid
  • stack
    7 projects | /r/haskell | 17 Jul 2022
  • Most current materials for learning Haskell
    2 projects | /r/haskell | 10 May 2022
    (why lts-18.28? it's the latest 8.10 release on )
  • Monthly Hask Anything (March 2022)
    5 projects | /r/haskell | 2 Mar 2022
    I don't see way community maintenance can change the GHC for nightly.
  • Is it possible to install C libraries before building on Hackage?
    3 projects | /r/haskell | 12 Aug 2021
    It makes total sense that it fails since at no point I requested that the library be installed, which makes me wonder: Is there any way to request Hackage to install SDL and GLEW before attempting the build? I see Stackage has Does something similar exist for Hackage?
  • [GHC Proposals] GHC Maintainer preview
    4 projects | /r/haskell | 3 Apr 2021
    On the contrary, I think this is standard practice for packages which are part of stackage. When stackage nightly switches to a new version of ghc, all the packages which are incompatible with the new ghc are dropped from nightly. My understanding is that maintainers are then expected to fix their packages, at which point more and more packages are included in the nightly snapshot. The next lts to include that version of ghc is only released later, once most packages have been added back, so unlike ghc users who diligently upgrade to the latest ghc, stackage users who diligently upgrade the latest lts snapshot shouldn't see a big drop in the number of compatible packages.
  • Setup dev container with language server out of the box
    3 projects | /r/haskellquestions | 3 Apr 2021
    I found the latest stack lts version, and it's associated ghc version here:
  • Maybe We Can Have Nice Things
    5 projects | /r/rust | 18 Feb 2021
    This is a common misconception, the packages in Stackage are only required to build together and pass their own test suite (if present, and this is also not a hard requirement), and also anyone can add packages. Quality assurance/selecting "blessed" packages is not part of the design of Stackage.
  • Haskell as a first timer - Am I missing something ?
    6 projects | /r/haskell | 3 Feb 2021
    I will say that perhaps upper-bounds shouldn't (or rarely) exist? Smarter people than me have probably discussed it to death. But upper-bounds aside, different packages working together is a property of those packages, not of whatever tool happens to build them, so package inconsistency or "cabal hell" should naturally arise from any tool that actually checks if two packages have declared themselves as mutually incompatible...

What are some alternatives?

When comparing cabal2nix and stackage you can also consider the following projects:

cblrepo - Tool to simplify managing a consistent set of Haskell packages for distributions.

ekg-json - JSON encoding of ekg metrics

Cabal - Official upstream development repository for Cabal and cabal-install

cargo-crev - A cryptographically verifiable code review system for the cargo (Rust) package manager.

jailbreak-cabal - Strip version restrictions from build dependencies in Cabal files.



stackage-metadata - Tool for extracting metadata on all packages

stackage-build-plan - Calculate and print (in different formats) Stackage build plans

stackage-upload - A more secure version of cabal upload which uses HTTPS