The Stackage team is happy to announce the first official LTS
Haskell release, LTS
Haskell 1.0. The LTS Haskell Github
repository has a good overview of the project, and our initial blog post
provides quite a bit more detail. To quote:
LTS Haskell: Version your Ecosystem
LTS Haskell is a curated set of packages which includes
non-breaking point releases. It is a companion to Stackage Nightly:
whereas Stackage Nightly releases include potentially breaking
changes with each new release, LTS Haskell maintains major version
stability for a longer period of time.
The plan for LTS 1 is:
- Run weekly point releases. The first point release, LTS Haskell
1.1, will be run on Sunday, January 11.
- Continue running these releases until LTS 2 is released,
scheduled for April 1.
- Like all Stackage snapshots, each release will be available for
usage in perpetuity going forward. The only timeline is how far
into the future we will continue generating patch releases.
As discussed previously, we are aware that three months is not
really "long term support." The reason for the short terms here is
so that we can shake out the process well for this first release.
If things go exceptionally well and there is community desire to
change the planned dates, we will certainly discuss it.
If you want the incredibly short guide to using this release,
just run the following in your project:
In the future, when you want to upgrade to a new point release,
just delete your old cabal.config and download the latest point
Your code should continue compiling against the new snapshot
without any code changes, barring typical caveats of the PVP
(unqualified import lists, mistakes by authors, etc).
Together with this release, we're also announcing some
improvements to Stackage Server around hosted documentation to make
LTS Haskell more useful.
Full module listing
The main page for LTS
Haskell 1.0 contains a listing of all packages, their version
numbers, and- where available- a link to documentation.
(Documentation may not be available if the package only contains
executables, or if there is a bug in the Haddock markup in the
We've now added one more feature: a full module listing.
This allows you to view all available modules and easily determine
which package provides a module.
If you are using LTS Haskell for your projects, I strongly
encourage you to use the stackage.org hosted documentation when
looking things up, for one simple reason: you're guaranteed that
links to other packages will include versions that are also
part of the LTS Haskell release set. (The same logic applies to
Stackage Nightly releases.)
All of this adds up to a hopefully more pleasant way of thinking
about the Haskell library ecosystem: instead of a huge number of
individual packages whose individual modules and changesets you
need to keep in your head, relying on an LTS Haskell release
reduces it all to a single version number for "my Haskell
ecosystem," with a massive number of modules at your disposal to
write your applications.
FP Complete has hosted a
Hoogle service for a few years now. This Hoogle provides access
to the full FP Haskell Center library set. I personally use this
service on an almost daily basis, as I know many others do as well.
However, the FP Haskell Center package sets are not completely in
sync (yet) with LTS Haskell releases, and therefore the
documentation can be slightly out of date.
So to address that, we've added Hoogle search support to
stackage.org as well. You can go to any snapshot page- including
LTS Haskell 1.0- and perform a Hoogle search. This search will
encompass the entirety of the package set. As usual, a big thank
you goes to Neil for providing such an awesome tool to the
And since I brought it up: FP Complete does intend to
synchronize the FP Haskell Center library set with LTS Haskell
releases. That will take a little bit longer, but we'll make an
announcement when it's ready.
LTS Haskell is out. I'm already using it, and given the minor
delta from how Stackage Nightlies work, I believe it should present
no hurdles for greater adoption. The community process of dealing
with patch releases will be an interesting adventure that I'm
looking forward to. Please give this a spin, provide feedback, and
let's make a solid, stable basis for doing Haskell development!
Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.