4"Stable Hackage," tools for creating a vetted set of packages from Hackage.
6__NOTE__ This repository is for package authors to get their code into
7Stackage. If you simply want to use Stackage as an end user, please follow the
8instructions on http://www.stackage.org/.
10A note about the codebase: the goal is to minimize dependencies and have
11the maximum range of supported compiler versions. Therefore, we avoid
12anything "complicated." For example, instead of using the text package,
13we use Strings everywhere.
15Get your package included
16-------------------------
18In order to get your package included in the set of stable packages, you should
19send a pull request against this repository. In the `Stackage.Config` module,
20there's a function called `defaultStablePackages`. In general, to add a set of
21packages, you would add:
23 mapM_ (add "your-email-address") $ words
24 "package1 package2 package3"
26You can follow the examples of the other sets of packages in that function.
27Once you've done this, you can confirm that your newly added packages are
28compatible with the rest of stackage by building the package set following the
31__NOTE__: In order to ease the process of adding new packages, we no longer
32require new submissions to be tested on your own system before sending a pull
33request. If you believe your package works with the newest versions of all
34dependencies, you may send a pull request without testing first. If you do so,
35please be sure to state this in the pull request so that the Stackage
36maintainers (e.g., Michael) will know to do basic sanity checking before
39You should also read the [maintainers
40agreement](https://github.com/fpco/stackage/wiki/Maintainers-Agreement).
45As this project is just starting, we don't really have a solid set of steps. In
46general, the following set of commands should be good for getting started:
49 git clone https://github.com/fpco/stackage
51 cabal sandbox init # requires cabal-install 1.18
52 cabal install --only-dependencies
55 ./patching/scripts/create-tarballs.sh
56 ./dist/build/stackage/stackage select
57 ./dist/build/stackage/stackage check
58 ./dist/build/stackage/stackage build # takes a *long* time
59 ./dist/build/stackage/stackage test # also takes a *long* time
64Make sure to have Cabal-1.16 installed in either your global or user database,
65regardless of any sandboxing, as custom build types require it to be present.
66You must build with cabal-install 1.16, due to several important bug fixes.
68Using a non-Haskell Platform versions of GHC
69--------------------------------------------
71By default, Stackage bases itself off of the Haskell Platform for determining
72which packages are core packages, and locks down package versions to match the
73Haskell Platform selections. This works fine when you are compiling with the
74same version of GHC as the Haskell Platform was built on. If you're using a
75different version of GHC, you'll probably need to use the following options for
78 --no-platform --use-global-db
80The former says to disregard Haskell Platform package versions, and the latter
81says to determine which packages are core packages based on their presence in
82the global package database.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list