mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-08-20 19:14:38 +02:00
Delete README.md
This commit is contained in:
parent
eae2f15c6b
commit
50cb48b689
142
README.md
142
README.md
@ -1,142 +0,0 @@
|
|||||||
stackage
|
|
||||||
========
|
|
||||||
[](https://github.com/commercialhaskell/stackage/actions/workflows/check.yml)
|
|
||||||
|
|
||||||
Stable sets of Haskell 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/](https://www.stackage.org).
|
|
||||||
|
|
||||||
We strongly recommend using the Haskell [stack](https://github.com/commercialhaskell/stack) tool for doing builds, which
|
|
||||||
includes built-in Stackage support.
|
|
||||||
|
|
||||||
Add your package
|
|
||||||
----------------
|
|
||||||
|
|
||||||
We welcome all packages, provided:
|
|
||||||
|
|
||||||
* The package author/maintainer agrees to the [maintainers agreement](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md).
|
|
||||||
* The package is buildable and testable from Hackage. We recommend [the Stack Travis script](https://docs.haskellstack.org/en/stable/travis_ci/), which ensures a package is not accidentally incomplete.
|
|
||||||
* The package is compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
|
|
||||||
* The package is compatible with the versions of libraries that ship with GHC ([more information on lenient lower bounds](https://tech.fpcomplete.com/blog/2014/05/lenient-lower-bounds)).
|
|
||||||
|
|
||||||
Full details on how to add and test a package can be found in the [maintainers agreement](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package).
|
|
||||||
|
|
||||||
__NOTE__: There is an approximate 30 minute delay between a package uploading
|
|
||||||
to Hackage and being available to the Github workflow action to check upper
|
|
||||||
bounds. If a pull request is marked as failed due to using an older version,
|
|
||||||
please close and reopen the PR to retrigger a Travis build.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
* [stackage-server](https://github.com/fpco/stackage-server) [](https://github.com/fpco/stackage-server/actions/workflows/base.yml)
|
|
||||||
* [curator](https://github.com/commercialhaskell/curator) 
|
|
||||||
* [lts-haskell](https://github.com/commercialhaskell/lts-haskell)
|
|
||||||
* [stackage-snapshots](https://github.com/commercialhaskell/stackage-snapshots/)
|
|
||||||
|
|
||||||
Curious how it all fits together? See the [Stackage data
|
|
||||||
flow](https://github.com/commercialhaskell/stackage/blob/master/DATA-FLOW.md).
|
|
||||||
|
|
||||||
Build the package set
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Generally only the stackage build server run by the stackage curator
|
|
||||||
team and people interested in incorporating stackage snapshots into an
|
|
||||||
OS distribution need to build the entire package set. If you're
|
|
||||||
interested in trying this yourself, please check out
|
|
||||||
[the curator guide](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md),
|
|
||||||
though be aware that this is not a recommended practice and there
|
|
||||||
likely will be problems you will need to debug yourself.
|
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
Frequently Asked Questions
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
__Why is Stackage LTS still on an older version of GHC?__
|
|
||||||
|
|
||||||
Typically it takes some months from a new major ghc release before
|
|
||||||
the Haskell ecosystem supports it fully enough that we can push it
|
|
||||||
to a new stable Stackage major version release. There can also be
|
|
||||||
ghc regressions that hold up a LTS major release.
|
|
||||||
|
|
||||||
The lag for minor ghc releases should be less
|
|
||||||
but it still requires extra work and there is usually some delay - this also
|
|
||||||
allows for some community testing before updating LTS.
|
|
||||||
|
|
||||||
__Why does Stackage have an older version of a package than Hackage?__
|
|
||||||
|
|
||||||
There are a number of answers to this question:
|
|
||||||
|
|
||||||
* Simplest reason: how old of a Stackage snapshot are you using? Once a
|
|
||||||
snapshot is created, it's frozen for all time. So if you use
|
|
||||||
nightly-2016-01-01, by the time you get to 2018, it will be pretty dated.
|
|
||||||
* If you're using an LTS snapshot: we lock down major versions when
|
|
||||||
first creating an LTS run, so subsequent minor versions will not get
|
|
||||||
new versions necessary. For example, if LTS 6.0 has `foo` version
|
|
||||||
1.2.3, and the author immediately thereafter releases a version
|
|
||||||
1.3.0 and never releases another 1.2.\* version, you'll never get
|
|
||||||
another update in the LTS 6 line
|
|
||||||
* Sometimes we have upper bounds in place because other packages have
|
|
||||||
problems with newer versions of dependencies. Open up the
|
|
||||||
[build-constraints file](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml)
|
|
||||||
and search for "Stackage upper bounds"
|
|
||||||
* Wired-in packages - those that ship with GHC and cannot be upgraded,
|
|
||||||
and packages depending on them - are fixed to GHC versions. Common
|
|
||||||
examples of this are containers and transformers. There's a lot more
|
|
||||||
information on this in
|
|
||||||
[an FP Complete blog post](https://tech.fpcomplete.com/blog/2014/05/lenient-lower-bounds)
|
|
||||||
|
|
||||||
__How long do you maintain an LTS build?__
|
|
||||||
|
|
||||||
We only guarantee that we will maintain a single LTS major version at
|
|
||||||
a time, and that it will be maintained for at least three months. This
|
|
||||||
is the
|
|
||||||
[originally proposed support window](https://tech.fpcomplete.com/blog/2014/12/backporting-bug-fixes),
|
|
||||||
and hasn't changed since then.
|
|
||||||
|
|
||||||
That said, we do maintain the capability to keep multiple LTS runs
|
|
||||||
operational in parallel, and with LTS 6 and 7 in fact did so. We
|
|
||||||
aren't changing our guarantees yet on longevity of a release, but are
|
|
||||||
trying to push out the bounds a bit farther.
|
|
||||||
|
|
||||||
__What time are Stackage snapshots published?__
|
|
||||||
|
|
||||||
Stackage Nightly and LTS are not released at a fixed time of day, they get
|
|
||||||
pushed to stackage.org (and the metadata to the stackage-nightly and
|
|
||||||
stackage-lts github repos) when their builds finish on the Stackage build
|
|
||||||
server and the latest built haddocks have been synced over. This time varies
|
|
||||||
greatly depending on build times for package updates, bounds breakage,
|
|
||||||
problems with new packages being added and other build issues, etc. There are
|
|
||||||
days when a release does not happen. LTS releases tend to happen over the
|
|
||||||
weekend or early in the week.
|
|
||||||
|
|
||||||
__Where to get help regarding uploading packages?__
|
|
||||||
|
|
||||||
Please ask on the #stackage channel on the
|
|
||||||
[Haskell Foundation Slack](https://join.slack.com/t/haskell-foundation/shared_invite/zt-mjh76fw0-CEjg2NbyVE8rVQDvR~0F4A)
|
|
||||||
or open an issue or comment on the PR which uploads the package.
|
|
||||||
Loading…
Reference in New Issue
Block a user