Status of Haskell Platform 2014.2.0.0

The status is: *Good-to-Go!* The new-build branch of Haskell Platform is in pretty great shape: - One consistent build system using Shake - Builds source tarball - Builds linux distribution tarball - Builds Mac installer - Builds in one command line from a GHC bindist to end-user installer! - We have a running travis-ci instance https://travis-ci.org/haskell/haskell-platform* (currently red as we await a 7.8.3 bindist)* As soon as GHC 7.8.3 is out, I'll be running an alpha (or is this rc1?) or Haskell Platform (well, after I build the bindists for GHC for Mac... so it'll be a few hours on my puny MacBook Air...) *Shout out to: Yitzchak Gale, Bob Ipoloito, and Randy Polen for lots of help with the new build; Carter Schonwald for Mac and GHC build issues; Robert Lefkowitz for wiki and issue converstion (now on github!); Neil Mitchell for consultations on Shake.* The platform is now in a place that we'll be able to turn it much more quickly. This means we can track GHC release more closely, handle important library fixes when needed. And more importantly, spend time improving the platform itself, rather than sapping our energies build it! What you need to do now: - Check the version list in Release2014.hs https://github.com/haskell/haskell-platform/blob/new-build/hptool/src/Releas... - If you see a problem with the version of your library, let us know - If you are a packager for one of the linux distros - please try out the build and see how it works, and how it meshes with your packaging process for the distro. Come talk to me if you need help or brainstorming w.r.t. to the new-build. - If you have a Mac, you can try building the platform. *Build note: The repo is in sync with head of GHC 7.8 and we've been working with bindists we build ourselves off of head. If you want to try out the HP build with a 7.8.2 bindist, you'll need to change the version of base back to 4.7.0.0.* What you can do to help There are few aspects in progress, but none of these are show stoppers: - Windows installer using the new build being written by Randy Polen. (Existing windows build from the source tarball is still possible) - contact him if you'd like to help. - Platform website is being revamped by Erin Depew in concert with the general Haskell redesign by Chris Done - Platform website is template generated... but the pages haven't been templated much. if you're interested, e-mail and I can supply more details and hook up interested parties and Erin. - The travis-ci instance is enabled for Mac builds, but isn't configured to do them right. - There is a TO DO small task list in BUILD-NEW https://github.com/haskell/haskell-platform/blob/new-build/notes/BUILD-NEW#L... in the repo - I'd like to see the As and Bs done. If you want to tackle one just do it and send me a merge request. - Many people have asked for a "server edition" of the platform w/o packages that don't make sense on a server (such as the OpenGL stuff). The new-build could easily be extended to do this now. - I'd love to see a version of Simon Hengel's Haskell Platform Versions Comparison Chart http://sol.github.io/haskell-platform-versions-comparison-chart/ as part of the platform website. Now that it is templatized and the raw data is in Haskell, it should be possible. (I have prior year's data in the right format, just not checked in, ask me...) - It would be wonderful if we could get tests incorporated: Both running the tests that are part of the included libraries, and perhaps some "big integration tests" (is compiling Pandoc enough?). It would be great if these tests can be run "in-place" after the platform is built (for travis-ci), and if they could be run on the target machine (post-installation). — Mark "is it July already?" Lentczner

Thanks Mark! Notes on my packages: * hashable can be bumped to 1.2.2.0. * network can be bumped to 2.4.2.3 * unordered-containers can be bumped to 0.2.4.0

Well done!
On Wednesday, 9 July 2014, Mark Lentczner
The status is: *Good-to-Go!*
The new-build branch of Haskell Platform is in pretty great shape:
- One consistent build system using Shake - Builds source tarball - Builds linux distribution tarball - Builds Mac installer - Builds in one command line from a GHC bindist to end-user installer! - We have a running travis-ci instance https://travis-ci.org/haskell/haskell-platform* (currently red as we await a 7.8.3 bindist)*
As soon as GHC 7.8.3 is out, I'll be running an alpha (or is this rc1?) or Haskell Platform (well, after I build the bindists for GHC for Mac... so it'll be a few hours on my puny MacBook Air...)
*Shout out to: Yitzchak Gale, Bob Ipoloito, and Randy Polen for lots of help with the new build; Carter Schonwald for Mac and GHC build issues; Robert Lefkowitz for wiki and issue converstion (now on github!); Neil Mitchell for consultations on Shake.*
The platform is now in a place that we'll be able to turn it much more quickly. This means we can track GHC release more closely, handle important library fixes when needed. And more importantly, spend time improving the platform itself, rather than sapping our energies build it!
What you need to do now:
- Check the version list in Release2014.hs https://github.com/haskell/haskell-platform/blob/new-build/hptool/src/Releas... - If you see a problem with the version of your library, let us know - If you are a packager for one of the linux distros - please try out the build and see how it works, and how it meshes with your packaging process for the distro. Come talk to me if you need help or brainstorming w.r.t. to the new-build. - If you have a Mac, you can try building the platform.
*Build note: The repo is in sync with head of GHC 7.8 and we've been working with bindists we build ourselves off of head. If you want to try out the HP build with a 7.8.2 bindist, you'll need to change the version of base back to 4.7.0.0.*
What you can do to help There are few aspects in progress, but none of these are show stoppers:
- Windows installer using the new build being written by Randy Polen. (Existing windows build from the source tarball is still possible) - contact him if you'd like to help. - Platform website is being revamped by Erin Depew in concert with the general Haskell redesign by Chris Done - Platform website is template generated... but the pages haven't been templated much. if you're interested, e-mail and I can supply more details and hook up interested parties and Erin. - The travis-ci instance is enabled for Mac builds, but isn't configured to do them right. - There is a TO DO small task list in BUILD-NEW https://github.com/haskell/haskell-platform/blob/new-build/notes/BUILD-NEW#L... in the repo - I'd like to see the As and Bs done. If you want to tackle one just do it and send me a merge request. - Many people have asked for a "server edition" of the platform w/o packages that don't make sense on a server (such as the OpenGL stuff). The new-build could easily be extended to do this now. - I'd love to see a version of Simon Hengel's Haskell Platform Versions Comparison Chart http://sol.github.io/haskell-platform-versions-comparison-chart/ as part of the platform website. Now that it is templatized and the raw data is in Haskell, it should be possible. (I have prior year's data in the right format, just not checked in, ask me...) - It would be wonderful if we could get tests incorporated: Both running the tests that are part of the included libraries, and perhaps some "big integration tests" (is compiling Pandoc enough?). It would be great if these tests can be run "in-place" after the platform is built (for travis-ci), and if they could be run on the target machine (post-installation).
— Mark "is it July already?" Lentczner

Why not directly to 1.20.x?
On Jul 15, 2014 7:59 AM, "Andres Löh"
Hi.
Check the version list in Release2014.hs
Would it still be possible to bump cabal-install to 1.18.0.5?
Cheers, Andres _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries

This was discussed earlier. We need to stick with the Cabal that ships with
the GHC version we're using and thus we need to stick with
cabal-install-1.18.
On Tue, Jul 15, 2014 at 9:33 AM, Alois Cochard
Why not directly to 1.20.x? On Jul 15, 2014 7:59 AM, "Andres Löh"
wrote: Hi.
Check the version list in Release2014.hs
Would it still be possible to bump cabal-install to 1.18.0.5?
Cheers, Andres _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries

As per comments: Done: - hashable can be bumped to 1.2.2.0. - network can be bumped to 2.4.2.3 - unordered-containers can be bumped to 0.2.4.0 - happy bumped to 1.19.4 - bump cabal-install to 1.18.0.5 Unsure: - Not sure if you want QuickCheck 2.7.5 rather than 2.6 -- cc'ing QuickCheck devs: Would they like to weigh in? Not Changed: - attoparsec will remain at version 0.10.4.0, as newer attoparsec depends on the new package scientific - cabal-install will stay at the 1.18 level (not bump to 1.20.*) because it needs to remain in sync with 7.8.3's Cabal package, Johan has been great about back-porting fixes to 1.18 for this reason.

On Tue, Jul 15, 2014 at 6:44 AM, Mark Lentczner
Unsure:
- Not sure if you want QuickCheck 2.7.5 rather than 2.6 -- cc'ing QuickCheck devs: Would they like to weigh in?
I would really like to see 2.7.5 go in, as it has a number of both improvements and backwards incompatible API changes that make it impossible to interoperate with 2.6.
Not Changed:
- attoparsec will remain at version 0.10.4.0, as newer attoparsec depends on the new package scientific
attoparsec has some security fixes in recent releases that depend on the
scientific package. It would be a very bad idea to continue with 0.10.4.0.

Hi, On Tue, Jul 15, 2014 at 10:56:24AM -0700, Bryan O'Sullivan wrote:
Not Changed:
- attoparsec will remain at version 0.10.4.0, as newer attoparsec depends on the new package scientific
attoparsec has some security fixes in recent releases that depend on the scientific package. It would be a very bad idea to continue with 0.10.4.0.
Apart from this, i guess future versions of attoparsec (and other libraries included in the HP) will probably depend on more libraries not yet in the HP. So what's the correct way to deal with this? - Use newer versions for libraries like attoparsec and add additional libraries they depend on? - Or reduce the number of libraries included in the HP? Ciao, Kili

On Tue, Jul 15, 2014 at 12:25 PM, Matthias Kilian
Apart from this, i guess future versions of attoparsec (and other libraries included in the HP) will probably depend on more libraries not yet in the HP. So what's the correct way to deal with this?
- Use newer versions for libraries like attoparsec and add additional libraries they depend on?
- Or reduce the number of libraries included in the HP?
This a fundamental tension with having a set of packages like the platform: The point of a library being in the platform is that it forms part of the stable base for all other development work. But then a library in it has become a stable base. If stable library pulls in a new dependency on a library that isn't stable... then the depending library is no longer stable. [Stable here refers to API and expectation stability... not code quality.] Libraries in the platform should, ideally, be very conservative with adding new dependencies. In the past, we have set the bar that a package will not move forward in version in the platform if it requires a dependency that is not in the platform. If we relax this, you can see where it leads: A is admitted into the platform. Later it depends on B, not in the platform... so we bundle B into the platform as well (as A needs it). Now, people start to come to expect that B is "there"... and depend on it... but it hasn't ever signed up to the stability commitment, and so if it changes radically... the platform, as practically seen by users is no longer stable. We are a very fast moving bunch here in the Haskell world. In part because both our language and ecosystem of tools have enabled us to build on their safety. For example: In it's short 9 month life (introduced in Oct 2013), scientific has had 7 major API revisions in 16 releases. That is pretty unprecedented for packages that make up other stable library sets other ecosystems. It would be hard to include a package with that much API motion in a set of stable packages whose API you could code against... and expect it to be relatively unchanged in a year. Imagine if Data.Map's API changed that often.... I certainly don't want to have to constantly fiddle with my project over a year to keep it working with Data.Map. And even if I update my platform once every six months (I know... I know... but *most *years...) then it is *still* wasted time if I need to fiddle with my project to be sure it still works with Data.Map. Of course, Data.Map is stable... and this doesn't happen. We should have this discussion again after the release. We should re-evaluate what we expect from the libraries that are in the platform, and we should set more clear stability metrics. Looking forward to lively discussions on this over beer in Gothenburg! - Mark

On Tue, Jul 15, 2014 at 10:56 AM, Bryan O'Sullivan
attoparsec has some security fixes in recent releases that depend on the scientific package. It would be a very bad idea to continue with 0.10.4.0.
This is rather late to hear this... given that I plan to Alpha this weekend or sooner. Can you quantify the security fixes? Do they only revolve around floats?

On Tue, Jul 15, 2014 at 1:43 PM, Mark Lentczner
This is rather late to hear this... given that I plan to Alpha this weekend or sooner.
Can you quantify the security fixes? Do they only revolve around floats?
Well, it was rather late to hear that you weren't going to upgrade attoparsec, too ;-) In brief, an attacker can DoS a user of attoparsec by handing them a floating point number with a sufficiently large exponent (e.g. 1e1000000000). This will cause it to try to create an Integer with the given number of digits, thus possibly OOMing a machine or crashing a process.

People writing important public facing web services don't need the Haskell Platform. They're already getting by just fine downloading GHC directly and building the right versions of things and are aware of the recent improvements to "aeson". Every day the HP is stalled for one of its components' impending updates is another bit of irrelevance that the HP accumulates. HP has been unusable for new users on the current version of OS X for something like 8 months now. (just counting on my fingers). It's not uncommon to see comments on Reddit and IRC telling new users to ignore the HP. Maybe we can just get something released so that the new users coming to Haskell who need a some-what up-to-date starting point with minimal prior knowledge can get started. The HP will never be done otherwise.

On Tue, Jul 15, 2014 at 1:59 PM, Bryan O'Sullivan
Well, it was rather late to hear that you weren't going to upgrade attoparsec, too ;-)
On Sun, Mar 30, 2014 at 1:06 PM, Mark Lentczner
SO, In anticipation of releasing a HP shortly (1 month?) after GHC 7.8... I'd like to get going on nailing down package versions.
, incLib "attoparsec" "0.10.4.0"
In brief, an attacker can DoS a user of attoparsec by handing them a floating point number with a sufficiently large exponent (e.g. 1e1000000000). This will cause it to try to create an Integer with the given number of digits, thus possibly OOMing a machine or crashing a process.
But only if you use the Data.Atooparsec.Text parsers double, number, and rational parser, right? - Mark

Hi Mark, On Tuesday 15 July, 2014 at 06:44 am, Mark Lentczner wrote:
Unsure:
- Not sure if you want QuickCheck 2.7.5 rather than 2.6 -- cc'ing QuickCheck devs: Would they like to weigh in?
I've uploaded version 2.7.6 which fixes a bug in 2.7.5, BTW. But, as I recall, the problem with QC 2.7 and HP was that we now depend on the tf-random package for random number generation. If I understand correctly this was a showstopper from your point of view, because of tf-random's newness and potential instability. The stability of tf-random doesn't bother me because it's a purely internal dependency of QuickCheck - unless you really dig into the guts of QC you won't find any trace of tf-random, and you certainly don't need to use its API. However, I totally understand that if tf-random got added to the HP, people might start using it outside of QC, and then it would be a problem! I think this change was something we had to do - we've known about the bug in StdGen for almost five years now and at some point we have to give up on it being fixed and switch away. So I'm quite philosophical if we can't get the latest QC in the Platform this time around. However, there should be a plan for getting it into the next release at least. Here are some possibilities: 1. We make sure that tf-random becomes stable and hope it can be included in the next version of the platform. 2. We add a simple TFGen-inspired generator directly to QuickCheck. 3. We fix StdGen by replacing it with a TFGen-inspired implementation. Number 3 would be best for everyone, but if it doesn't happen maybe option 2 is the most pragmatic one. Nick

On Mon, Jul 21, 2014 at 1:30 AM, Nick Smallbone
1. We make sure that tf-random becomes stable and hope it can be included in the next version of the platform.
2. We add a simple TFGen-inspired generator directly to QuickCheck.
3. We fix StdGen by replacing it with a TFGen-inspired implementation.
Number 3 would be best for everyone, but if it doesn't happen maybe option 2 is the most pragmatic one.
I agree that (2) looks like the most pragmatic one.
participants (10)
-
Alois Cochard
-
Andres Löh
-
Bryan O'Sullivan
-
Don Stewart
-
Eric Mertens
-
Gregory Collins
-
Johan Tibell
-
Mark Lentczner
-
Matthias Kilian
-
Nick Smallbone