Haskell Package Publishing



  • You’re an open source maintainer with dozens of Haskell libraries to maintain.
  • You want to detect breakages in your portfolio automatically.
  • You want your build plan to stay relatively consistent across all your projects.

Adopting a Horizon Stable Package Set will let you tackle compiler upgrades and dependency conflicts on your own terms, and then make the results of those changes reusable using the new Stable Package Set as an input everywhere.

We recommmend to start by forking horizon-platform and start adding your packages to horizon.dhall. You’ll be able to collect all your open source releases in one place and see if they all build together.

When developing your project locally, use the SPS as a flake input and then override it liberally. Use whatever versions you need to get your project to build and run.

When you’re ready to release, try to update the SPS with the new release and see what goes wrong, then decide what to do about it. It can guide you to what needs your attention next.

Always put the needs of your projects first and the SPS second.

We are currently experimenting with programmatic upgrades to the package set, some details of which are in the README.md in horizon-platform. We aim to provide a range of tools to allow SPS managment to be machine assisted, but retain the option to edit the package set manually with a text editor. For more information, please contact us on matrix.