Stable Haskell package sets: vetted consistent packages from Hackage
Go to file
Jens Petersen 2c455eaf9a take 2 at Ubuntu 16.04 Xenial (#1439)
- not sure if ppa:zoogie/sdl2-snapshots was ever really needed (#444):
  there seem to be newer sdl packages in 14.04 Trusty already.
- not sure what the ppa:openstack-ubuntu-testing/icehouse was needed for:
  that ppa is not available for 16.04, commenting it out for now.
- libsystemd-dev is needed to build libsystemd-journal (#696)
- 16.04 has openjdk-8 rather than 7 (#1388)
- libphash does not seem to be in Xenial, disabling phash for now (#618)
- use nettle-dev from ubuntu (hopefully 3.2 is compatible enough with 3.1)
- don't need to install git first
- python-software-properties is a dependency of software-properties-common
- this should allow the gi-gtk stack to build since it needs newer gtk stack
- switch from texlive-full to texlive to save time and space (not sure
  what requires texlive?)

this builds for me locally
2016-05-13 18:31:28 +09:00
automated Initial check-cabal.sh 2016-04-24 16:23:25 +00:00
stackage Add lib-enabled versions of the plugins 2015-05-06 15:57:00 -07:00
Stackage Separate out stackage-curator 2015-03-22 13:25:31 +02:00
.dir-locals.el Add .dir-locals.el for emacs style conformance 2014-12-31 19:36:32 +01:00
.dockerignore Add .git to dockerignore 2015-02-06 00:07:17 +02:00
.gitignore Ignore check-plan.yaml 2015-12-30 09:11:31 +02:00
.gitmodules Add blank .gitmodules 2013-06-30 09:17:45 +03:00
.project-settings.yml Converted to FP Complete Haskell Center 2014-01-31 09:38:04 +00:00
.travis.yml Update .travis.yml (use stack update) 2016-01-21 09:42:13 -08:00
build-constraints.yaml take 2 at Ubuntu 16.04 Xenial (#1439) 2016-05-13 18:31:28 +09:00
check Add check convenience script 2015-12-30 09:11:07 +02:00
CURATORS.md CURATORS: Update timing section with how the build script builds even if there's already a nightly 2016-05-03 09:51:48 +02:00
DATA-FLOW.md Add Stackage data flow 2016-04-13 14:23:43 +03:00
debian-bootstrap.sh take 2 at Ubuntu 16.04 Xenial (#1439) 2016-05-13 18:31:28 +09:00
Dockerfile take 2 at Ubuntu 16.04 Xenial (#1439) 2016-05-13 18:31:28 +09:00
LICENSE Minor cleanups 2012-11-29 18:41:59 +02:00
MAINTAINERS.md MAINTAINERS.md: Clarify the third requirement 2016-05-02 19:09:25 +09:00
README.md Add Stackage data flow 2016-04-13 14:23:43 +03:00

stackage

Build Status

"Stable Hackage": creating a vetted set of packages from Hackage. This repository is for package authors and maintainers to get their packages into Stackage. If you simply want to use Stackage as an end user, please follow the instructions on https://www.stackage.org/.

We strongly recommend using the Haskell tool stack for doing builds, which includes built-in Stackage support: stack Build Status.

Add your package

We welcome all packages, provided:

Full details on how to add a package can be found in the maintainers agreement.

Other repos

The Stackage project consists of multiple repositories. This repository contains the metadata on packages to be included in future builds and some project information. In addition, we have the following repositories:

We also support some add-on tools to cabal-install to make its usage with Stackage both easier and more secure:

Curious how it all fits together? See the Stackage data flow.

Build the package set

Generally, building the package set should be done only by the Stackage build machine by the Stackage curation team. If you're interested in trying this yourself, please check out the curator guide, though be aware that this is not a recommended practice and there likely will be problems you will need to debug yourself.

Docker

Note: This method has been disabled for now, but may be enabled again in the future.

If you'd like to check a build plan, or perform an entire build, without specially configuring your system, Docker may be a good approach. To check if some modifications to build-constraints.yaml are valid, try the following:

  1. Create a local clone of the stackage repo

  2. Make modifications to your local build-constraints.yaml

  3. Inside the stackage working directory, run the following:

    $ docker run -it --rm -v $(pwd):/stackage -w /stackage snoyberg/stackage /bin/bash -c 'cabal update && stackage check'
    

Similarly, if you'd like to perform an entire build, you can replace the last step with:

$ docker run -it --rm -v $(pwd):/stackage -w /stackage snoyberg/stackage /bin/bash -c 'cabal update && stackage nightly --skip-upload'

Processing

The following describes at a high level the series of steps for processing

Nightlies

  1. Get list of core packages
  2. Get build constraints from list of maintained packages
  3. Load up package index
  4. Calculate build plan using newest versions of packages
  5. Write out a YAML file with complete build plan
  6. Verify that the build plan can be compiled
  7. Perform the build

LTS

  1. Load up most recent build plan
  2. Convert build plan into constraints for next build
  3. Continue from step (3) above