Code Monkey home page Code Monkey logo

stackage's Introduction

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:

Build the package set

Generally, building the package set should be done only by the Jenkins machine or by the official maintainers, as the process does require quite a bit of setup on the local machine. That said, you'll likely be able to get a stable build by running:

cabal update
cabal install stackage
stackage nightly

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

stackage's People

Contributors

agrafix avatar aloiscochard avatar athanclark avatar aycanirican avatar bergmark avatar borsboom avatar brendanhay avatar chrisdone avatar christiaanb avatar danburton avatar daniel-diaz avatar gabriella439 avatar joeyeremondi avatar juhp avatar k-bx avatar massysett avatar meteficha avatar ndmitchell avatar nomeata avatar peti avatar phaazon avatar phadej avatar rvion avatar simonmichael avatar sinelaw avatar snoyberg avatar solatis avatar srijs avatar twinside avatar yogsototh avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.