Functional Programming

Functional Programming

Functional Programming

Jan 4, 2015

Announcing LTS Haskell 1.0

Announcing LTS Haskell 1.0

Announcing LTS Haskell 1.0

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:

wget https://www.stackage.org/lts/1.0/cabal.config

In the future, when you want to upgrade to a new point release,

just delete your old cabal.config and download the latest point

release, e.g.:


wget https://www.stackage.org/lts/1/cabal.config

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

package.)


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.


Experimental Hoogle support

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

community.


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.


Dive in!

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!