This switches everything over form Stack to Cabal, removing the dependency on Stack and improving compatibility with hls. For consistency's sake I also modified the Nix build and the Semaphore prologue to match the more modern overlay setup used by other projects. Lastly I also added missing changelog entries for Hoff 29.1 and up since I noticed those were missing.
The one thing that is now go after this change ne is the license check in the CI. Stack had a ls dependencies option that could list every (transitive) dependency's license. cabal-plan seems reasonably popular and it also has a similar option, but after spending a bit too much time getting that to build with Nix I gave up for now. I now know how to get this to build, but it requires packaging a different version of the cabal-install-parsers package than the version packaged on nixpkgs. So instead of getting stuck in the sunk costs fallacy I decided to forego it for now. If having automated license checks is important important enough I can package the older cabal-install-parsers version in our Haskell overlay and configure cabal-plan with the license report feature so we can add this back in.
This switches everything over form Stack to Cabal, removing the dependency on Stack and improving compatibility with hls. For consistency's sake I also modified the Nix build and the Semaphore prologue to match the more modern overlay setup used by other projects. Lastly I also added missing changelog entries for Hoff 29.1 and up since I noticed those were missing.
The one thing that is now go after this change ne is the license check in the CI. Stack had a
ls dependencies
option that could list every (transitive) dependency's license.cabal-plan
seems reasonably popular and it also has a similar option, but after spending a bit too much time getting that to build with Nix I gave up for now. I now know how to get this to build, but it requires packaging a different version of thecabal-install-parsers
package than the version packaged on nixpkgs. So instead of getting stuck in the sunk costs fallacy I decided to forego it for now. If having automated license checks is important important enough I can package the oldercabal-install-parsers
version in our Haskell overlay and configurecabal-plan
with the license report feature so we can add this back in.