Over time I've developed a messy system level Haskell installation that I'm not sure how to completely clean up. But for the most part this isn't of much concern as I simply use stack to manage per-project Haskell configurations. However as my project requirements diverge from my system Haskell setup, I wonder what the best way is to build and upload packages for Hackage.
Specifically (1) should I be using
stack exec -- cabal sdist
stack exec -- cabal upload
instead of simply
cabal sdist
cabal upload
and (2) should is there any reason to install a project version of cabal (with stack build cabal
?)
Or is there some better stack-based approach to building and distributing to Hackage that doesn't involve invoking cabal
directly?
Adding an answer based on my earlier comment.
stack
offers equivalent functionality via itsstack sdist
stack upload
commands, which don't require interfacing with
cabal
directly in stack-based projects.A full list of commands supported by stack can be obtained via:
and the official documentation.
Individual commands also support
--help
to see what command line flags they support.