Open Source Maintainers


  • 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 conflict on your own terms and 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 dhall definition of the package set, some details of which are in the 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. To keep up with these updates, please follow locallycompact and horizonhaskell on twitter.

If you need any assistance, feel free to sign up for the discourse.