on d7cf341 help sign in
stackage/Stackage/Config.hs
797 lines 30 kB history raw
1{-# LANGUAGE CPP #-}
2module Stackage.Config where
4import Control.Monad (when, unless)
5import Control.Monad.Trans.Writer (Writer, execWriter, tell)
6import Data.Char (toLower)
7import qualified Data.Map as Map
8import Data.Maybe (fromMaybe)
9import Data.Set (fromList, singleton)
10import Distribution.Text (simpleParse)
11import Stackage.Types
13-- | Packages which are shipped with GHC but are not included in the
14-- Haskell Platform list of core packages.
15defaultExtraCore :: GhcMajorVersion -> Set PackageName
16defaultExtraCore _ = fromList $ map PackageName $ words
17 "binary Win32 ghc-prim integer-gmp"
19-- | Test suites which are expected to fail for some reason. The test suite
20-- will still be run and logs kept, but a failure will not indicate an
21-- error in our package combination.
22defaultExpectedFailures :: GhcMajorVersion
23 -> Bool -- ^ haskell platform
24 -> Set PackageName
25defaultExpectedFailures ghcVer requireHP = execWriter $ do
26 -- Requires an old version of WAI and Warp for tests
27 add "HTTP"
29 -- text and setenv have recursive dependencies in their tests, which
30 -- cabal can't (yet) handle
31 add "text"
32 add "setenv"
34 -- The version of GLUT included with the HP does not generate
35 -- documentation correctly.
36 add "GLUT"
38 -- https://github.com/bos/statistics/issues/42
39 add "statistics"
41 -- https://github.com/kazu-yamamoto/simple-sendfile/pull/10
42 add "simple-sendfile"
44 -- http://hackage.haskell.org/trac/hackage/ticket/954
45 add "diagrams"
47 -- https://github.com/fpco/stackage/issues/24
48 add "unix-time"
50 -- With transformers 0.3, it doesn't provide any modules
51 add "transformers-compat"
53 -- Tests require shell script and are incompatible with sandboxed package
54 -- databases
55 add "HTF"
57 -- https://github.com/simonmar/monad-par/issues/28
58 add "monad-par"
60 -- Unfortunately network failures seem to happen haphazardly
61 add "network"
63 -- https://github.com/ekmett/hyphenation/issues/1
64 add "hyphenation"
66 -- Test suite takes too long to run on some systems
67 add "punycode"
69 -- http://hub.darcs.net/stepcut/happstack/issue/1
70 add "happstack-server"
72 -- Requires a Facebook app.
73 add "fb"
75 -- https://github.com/tibbe/hashable/issues/64
76 add "hashable"
78 -- https://github.com/vincenthz/language-java/issues/10
79 add "language-java"
81 add "threads"
82 add "crypto-conduit"
83 add "pandoc"
84 add "language-ecmascript"
85 add "hspec"
86 add "alex"
88 -- https://github.com/basvandijk/concurrent-extra/issues/
89 add "concurrent-extra"
91 -- https://github.com/skogsbaer/xmlgen/issues/2
92 add "xmlgen"
94 -- Something very strange going on with the test suite, I can't figure
95 -- out how to fix it
96 add "bson"
98 -- Requires a locally running PostgreSQL server with appropriate users
99 add "postgresql-simple"
101 -- Missing files
102 add "websockets"
104 -- Some kind of Cabal bug when trying to run tests
105 add "thyme"
107 add "shake"
109 -- https://github.com/jgm/pandoc-citeproc/issues/5
110 add "pandoc-citeproc"
112 -- Problems with doctest and sandboxing
113 add "warp"
114 add "wai-logger"
116 -- https://github.com/fpco/stackage/issues/163
117 add "hTalos"
118 add "seqloc"
120 -- https://github.com/bos/math-functions/issues/25
121 add "math-functions"
123 -- FIXME the test suite fails fairly regularly in builds, though I haven't
124 -- discovered why yet
125 add "crypto-numbers"
127 -- Test suite is currently failing regularly, needs to be worked out still.
128 add "lens"
130 -- Requires too old a version of test-framework
131 add "time"
133 -- No code included any more, therefore Haddock fails
134 mapM_ add $ words =<<
135 [ "comonad-transformers comonads-fd groupoids"
136 , "profunctor-extras semigroupoid-extras"
137 , "hamlet shakespeare-css shakespeare-i18n"
138 , "shakespeare-js shakespeare-text"
139 , "attoparsec-conduit blaze-builder-conduit http-client-conduit"
140 , "network-conduit zlib-conduit http-client-multipart"
141 , "wai-eventsource wai-test"
142 , "hspec-discover"
143 ]
145 -- Cloud Haskell tests seem to be unreliable
146 mapM_ add $ words =<<
147 [ "distributed-process lockfree-queue network-transport-tcp"
148 ]
150 -- Pulls in monad-peel which does not compile
151 when (ghcVer >= GhcMajorVersion 7 8) $ add "monad-control"
153 -- https://github.com/fpco/stackage/issues/226
154 add "options"
156 -- https://github.com/gtk2hs/gtk2hs/issues/36
157 add "glib"
158 add "pango"
160 -- https://github.com/acw/bytestring-progress/issues/3
161 add "bytestring-progress"
163 -- Seems to require 32-bit functions
164 add "nettle"
166 -- Depends on a missing graphviz executable
167 add "graphviz"
169 -- https://github.com/silkapp/json-schema/issues/8
170 when (ghcVer <= GhcMajorVersion 7 6) $
171 add "json-schema"
173 -- No AWS creds available
174 add "aws"
176 -- Not sure why...
177 add "singletons"
179 add "hspec2"
180 add "hspec-wai"
182 -- Requires too new a version of time
183 when (ghcVer < GhcMajorVersion 7 8) $ add "cookie"
185 -- https://github.com/fpco/stackage/issues/285
186 add "diagrams-haddock"
187 add "scientific"
188 add "json-schema"
190 -- https://github.com/BioHaskell/octree/issues/4
191 add "Octree"
193 -- No code until we upgrade to network 2.6
194 add "network-uri"
196 -- https://github.com/goldfirere/th-desugar/issues/12
197 add "th-desugar"
199 -- https://github.com/haskell/c2hs/issues/108
200 add "c2hs"
202 -- https://github.com/jmillikin/haskell-filesystem/issues/3
203 add "system-filepath"
205 -- For some unknown reason, doctest has trouble on GHC 7.6. This only
206 -- happens during a Stackage test.
207 --
208 -- See: http://www.reddit.com/r/haskell/comments/2go92u/beginner_error_messages_in_c_vs_haskell/cklaspk
209 when (ghcVer == GhcMajorVersion 7 6) $ add "http-types"
211 -- Requires a running webdriver server
212 add "webdriver"
213 add "webdriver-snoy"
215 -- Weird conflicts with sandboxing
216 add "ghc-mod"
217 add "ghcid"
219 -- Requires locally running server
220 add "bloodhound"
222 -- Requires PostgreSQL running
223 add "postgresql-binary"
224 add "hasql"
225 add "hasql-postgres"
227 -- https://github.com/gtk2hs/gtk2hs/issues/79
228 add "gio"
229 add "gtk"
231 -- Requires SAT solver and old QuickCheck
232 add "ersatz"
234 -- https://github.com/ekmett/gl/issues/3
235 add "gl"
237 -- Failing doctests
238 add "bits"
240 when (ghcVer == GhcMajorVersion 7 8 && requireHP) $ do
241 -- https://github.com/vincenthz/hs-asn1/issues/11
242 add "asn1-encoding"
244 -- https://github.com/vincenthz/hs-tls/issues/84
245 add "tls"
247 add "x509"
248 where
249 add = tell . singleton . PackageName
251-- | List of packages for our stable Hackage. All dependencies will be
252-- included as well. Please indicate who will be maintaining the package
253-- via comments.
254defaultStablePackages :: GhcMajorVersion
255 -> Bool -- ^ using haskell platform?
256 -> Map PackageName (VersionRange, Maintainer)
257defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do
258 when (ghcVer == GhcMajorVersion 7 8 && requireHP) haskellPlatform78
259 mapM_ (add "michael@snoyman.com") $ words =<<
260 [ "yesod yesod-newsfeed yesod-sitemap yesod-static yesod-test yesod-bin"
261 , "markdown mime-mail-ses"
262 , "persistent persistent-template persistent-sqlite persistent-postgresql persistent-mysql"
263 , "network-conduit-tls yackage warp-tls keter"
264 , "process-conduit stm-conduit"
265 , "classy-prelude-yesod yesod-fay yesod-eventsource wai-websockets"
266 , "random-shuffle hebrew-time"
267 , "bzlib-conduit case-insensitive"
268 , "conduit-extra conduit-combinators yesod-websockets"
269 , "cabal-src"
270 , "yesod-auth-deskcom monadcryptorandom sphinx"
271 , "yesod-gitrepo"
272 ]
274 -- https://github.com/fpco/stackage/issues/261
275 addRange "Michael Snoyman" "cabal-install" $
276 case () of
277 ()
278 | ghcVer <= GhcMajorVersion 7 6 -> "< 1.17"
279 | ghcVer <= GhcMajorVersion 7 8 -> "< 1.19"
280 | otherwise -> "-any"
282 mapM_ (add "FP Complete <michael@fpcomplete.com>") $ words =<<
283 [ "web-fpco th-expand-syns configurator smtLib"
284 , "fixed-list indents language-c pretty-class"
285 , "csv-conduit cassava"
286 , "async shelly thyme"
287 , "hxt hxt-relaxng dimensional"
288 , "cairo diagrams-cairo gtk2hs-buildtools"
289 , "base16-bytestring convertible"
290 , "compdata hybrid-vectors"
291 , "executable-path formatting quandl-api"
292 , "fgl hmatrix hmatrix-gsl"
293 , "alex happy c2hs"
294 , "fpco-api aws persistent-mongoDB"
295 , "random-fu lhs2tex"
296 , "Chart Chart-diagrams histogram-fill random-source"
297 , "webdriver"
298 , "foreign-store"
299 , "statistics-linreg"
300 -- https://github.com/Soostone/retry/issues/18
301 -- , "retry"
302 ]
303 when (ghcVer < GhcMajorVersion 7 8) $ do -- No GHC 7.8 support
304 mapM_ (add "FP Complete <michael@fpcomplete.com>") $ words =<<
305 [ "" -- too unreliable for the moment "distributed-process distributed-process-simplelocalnet"
306 -- https://github.com/fpco/stackage/issues/295
307 --, "threepenny-gui unification-fd"
308 ]
309 addRange "FP Complete <michael@fpcomplete.com>" "compdata" "< 0.8"
310 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
311 mapM_ (add "FP Complete <michael@fpcomplete.com>") $ words =<<
312 [ "criterion"
313 , "th-lift singletons th-desugar quickcheck-assertions"
314 ]
316 addRange "FP Complete <michael@fpcomplete.com>" "kure" "<= 2.4.10"
318 mapM_ (add "Omari Norman <omari@smileystation.com>") $ words
319 "barecheck rainbow rainbow-tests"
320 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
321 mapM_ (add "Omari Norman <omari@smileystation.com>") $ words
322 "quickpull"
324 mapM_ (add "Neil Mitchell") $ words
325 "hlint hoogle shake derive tagsoup cmdargs safe uniplate nsis js-jquery js-flot extra bake ghcid"
327 mapM_ (add "Alan Zimmerman") $ words
328 "hjsmin language-javascript"
330 {-
332 https://github.com/fpco/stackage/issues/320
334 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
335 mapM_ (add "Alfredo Di Napoli <alfredo.dinapoli@gmail.com>") $ words
336 "mandrill"
337 -}
339 mapM_ (add "Jasper Van der Jeugt") $ words
340 "blaze-html blaze-markup stylish-haskell"
342 mapM_ (add "Antoine Latter") $ words
343 "uuid byteorder"
345 mapM_ (add "Philipp Middendorf <pmidden@secure.mailbox.org>") $ words
346 "clock"
348 mapM_ (add "Stefan Wehr <wehr@factisresearch.com>") $ words
349 "HTF xmlgen stm-stats"
350 when (ghcVer < GhcMajorVersion 7 8) $ add "Stefan Wehr <wehr@factisresearch.com>" "hscurses"
352 mapM_ (add "Bart Massey <bart.massey+stackage@gmail.com>") $ words
353 "parseargs"
355 mapM_ (add "Vincent Hanquez") $ words =<<
356 [ "bytedump certificate cipher-aes cipher-rc4 connection"
357 , "cprng-aes cpu crypto-pubkey-types crypto-random-api cryptocipher"
358 , "cryptohash hit language-java libgit pem siphash socks tls"
359 , "tls-debug vhd language-java"
360 ]
362 mapM_ (add "Chris Done") $ words =<<
363 [ "ace check-email freenect gd"
364 , "hostname-validate ini lucid osdkeys pdfinfo"
365 , "pure-io sourcemap frisby"
366 -- https://github.com/nominolo/atto-lisp/issues/15
367 -- , "present"
368 ]
370 -- Requires older haddock currently
371 when (ghcVer == GhcMajorVersion 7 8 && requireHP) $
372 mapM_ (add "Chris Done") $ words =<<
373 [ "haskell-docs"
374 ]
376 -- https://github.com/jgoerzen/testpack/issues/10
377 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
378 mapM_ (add "Chris Done") $ words =<<
379 [ "scrobble"
380 ]
382 -- Requires too new a process for GHC 7.6
383 when (ghcVer >= GhcMajorVersion 7 8) $
384 mapM_ (add "Chris Done") $ words =<<
385 [ "shell-conduit"
386 ]
388 -- TODO: Add hindent and structured-haskell-mode once they've been ported to HSE 1.16.
390#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)
391 -- Does not compile on Windows
392 mapM_ (add "Vincent Hanquez") $ words "udbus xenstore"
393#endif
395 when (ghcVer < GhcMajorVersion 7 8) $
396 mapM_ (add "Alberto G. Corona <agocorona@gmail.com>") $ words
397 "RefSerialize TCache Workflow MFlow"
399 mapM_ (add "Edward Kmett <ekmett@gmail.com>") $ words =<<
400 [ "ad adjunctions bifunctors bound charset comonad comonad-transformers"
401 , "comonads-fd compressed concurrent-supply constraints contravariant"
402 , "distributive either eq free groupoids heaps hyphenation"
403 , "integration intervals kan-extensions lca lens linear monadic-arrays machines"
404 , "mtl profunctors profunctor-extras reducers reflection"
405 , "semigroups semigroupoids semigroupoid-extras speculation tagged void"
406 , "graphs monad-products monad-st wl-pprint-extras wl-pprint-terminfo"
407 , "numeric-extras parsers pointed prelude-extras reducers"
408 , "streams vector-instances"
409 , "approximate bits bytes compensated exceptions fixed gl"
410 , "half linear-accelerate log-domain"
411 , "monad-products monad-st nats"
412 , "ersatz"
413 -- hyperloglog
414 ]
415 when (ghcVer < GhcMajorVersion 7 8) $
416 mapM_ (add "Edward Kmett <ekmett@gmail.com>") $ words =<<
417 [ "categories comonad-extras recursion-schemes syb-extras"
418 ]
419 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
420 mapM_ (add "Edward Kmett <ekmett@gmail.com>") $ words =<<
421 [ "lens-aeson quickpull zlib-lens"
422 ]
423 -- Temporary upper bound for some of the above packages
424 addRange "Edward Kmett <ekmett@gmail.com>" "generic-deriving" "< 1.7"
426 mapM_ (add "Andrew Farmer <afarmer@ittc.ku.edu>") $ words
427 "scotty wai-middleware-static"
429 mapM_ (add "Simon Hengel <sol@typeful.net>") $ words
430 "hspec hspec-wai hspec-wai-json aeson-qq interpolate doctest base-compat"
432 mapM_ (add "Mario Blazevic <blamario@yahoo.com>") $ words
433 "monad-parallel monad-coroutine incremental-parser monoid-subclasses"
435 mapM_ (add "Brent Yorgey <byorgey@gmail.com>") $ words =<<
436 [ "monoid-extras dual-tree vector-space-points active force-layout"
437 , "diagrams diagrams-contrib diagrams-core diagrams-lib diagrams-svg"
438 , "diagrams-postscript haxr"
439 , "BlogLiterately"
440 , "MonadRandom"
441 , "diagrams-builder diagrams-haddock BlogLiterately-diagrams"
442 ]
443 mapM_ (add "Vincent Berthoux <vincent.berthoux@gmail.com>") $ words
444 "JuicyPixels"
446 mapM_ (add "Patrick Brisbin") $ words "gravatar"
448 -- https://github.com/fpco/stackage/issues/299
449 -- mapM_ (add "Paul Harper <benekastah@gmail.com>") $ words "yesod-auth-oauth2"
451 mapM_ (add "Felipe Lessa <felipe.lessa@gmail.com>") $ words
452 "esqueleto fb fb-persistent yesod-fb yesod-auth-fb"
454 mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
455 "base-unicode-symbols containers-unicode-symbols"
457 if ghcVer >= GhcMajorVersion 7 8
458 then add "Ryan Newton <ryan.newton@alum.mit.edu>" "accelerate"
459 else addRange "Ryan Newton <ryan.newton@alum.mit.edu>" "accelerate" "< 0.15"
461 mapM_ (add "Dan Burton <danburton.email@gmail.com>") $ words =<<
462 [ "basic-prelude composition io-memoize numbers rev-state runmemo"
463 , "tardis lens-family-th"
464 ]
466 mapM_ (add "Daniel Díaz <dhelta.diaz@gmail.com>") $ words
467 "HaTeX matrix"
468 when (ghcVer >= GhcMajorVersion 7 8) $
469 mapM_ (add "Daniel Díaz <dhelta.diaz@gmail.com>") $ words
470 "binary-list"
472 mapM_ (add "Gabriel Gonzalez <Gabriel439@gmail.com>")
473 ["pipes", "pipes-parse", "pipes-concurrency"]
475 when (ghcVer >= GhcMajorVersion 7 8) $
476 mapM_ (add "Chris Allen <cma@bitemyapp.com>")
477 ["bloodhound"]
479 mapM_ (add "Adam Bergmark <adam@bergmark.nl>") $ words
480 "fay fay-base fay-dom fay-jquery fay-text fay-uri snaplet-fay"
482 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $
483 mapM_ (add "Rodrigo Setti <rodrigosetti@gmail.com>") $ words
484 "messagepack messagepack-rpc"
486 mapM_ (add "Boris Lykah <lykahb@gmail.com>") $ words
487 "groundhog groundhog-th groundhog-sqlite groundhog-postgresql groundhog-mysql"
489 mapM_ (add "Janne Hellsten <jjhellst@gmail.com>") $ words
490 "sqlite-simple"
492 mapM_ (add "Michal J. Gajda") $ words
493 "iterable Octree FenwickTree"
494 -- https://github.com/BioHaskell/hPDB/issues/2
495 when (ghcVer >= GhcMajorVersion 7 8) $ do
496 mapM_ (add "Michal J. Gajda") $ words
497 "hPDB hPDB-examples"
499 mapM_ (add "Roman Cheplyaka <roma@ro-che.info>") $ words =<<
500 [ "smallcheck tasty tasty-smallcheck tasty-quickcheck tasty-hunit tasty-golden"
501 , "traverse-with-class regex-applicative time-lens"
502 , "haskell-names haskell-packages hse-cpp"
503 , "action-permutations amqp curl generics-sop heredoc immortal timezone-olson timezone-series"
504 ]
506 mapM_ (add "George Giorgidze <giorgidze@gmail.com>") $ words
507 "HCodecs YampaSynth"
509 mapM_ (add "Phil Hargett <phil@haphazardhouse.net>") $ words
510 "courier"
512#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)
513 mapM_ (add "Aycan iRiCAN <iricanaycan@gmail.com>") $ words
514 "hdaemonize hsyslog hweblib"
515#else
516 mapM_ (add "Aycan iRiCAN <iricanaycan@gmail.com>") $ words
517 "hweblib"
518#endif
520 mapM_ (add "Joachim Breitner <mail@joachim-breitner.de>") $ words
521 "circle-packing arbtt"
522 when (ghcVer >= GhcMajorVersion 7 8) $
523 mapM_ (add "Joachim Breitner <mail@joachim-breitner.de>") $ words
524 "ghc-heap-view"
526 when (ghcVer < GhcMajorVersion 7 8) $
527 mapM_ (add "John Wiegley") $ words =<<
528 [ "bindings-DSL github monad-extras numbers"
529 ]
531 mapM_ (add "Aditya Bhargava <adit@adit.io") $ words
532 "HandsomeSoup"
534 mapM_ (add "Clint Adams <clint@debian.org>") $ words
535 "hOpenPGP openpgp-asciiarmor MusicBrainz DAV hopenpgp-tools"
537 -- https://github.com/fpco/stackage/issues/160
538 mapM_ (add "Ketil Malde") $ words =<<
539 [ "biocore biofasta biofastq biosff"
540 , "blastxml bioace biophd"
541 , "biopsl" -- https://github.com/ingolia/SamTools/issues/3 samtools
542 , "seqloc bioalign BlastHTTP"
543 -- The following have out-of-date dependencies currently
544 -- biostockholm memexml RNAwolf
545 -- , "Biobase BiobaseDotP BiobaseFR3D BiobaseInfernal BiobaseMAF"
546 -- , "BiobaseTrainingData BiobaseTurner BiobaseXNA BiobaseVienna"
547 -- , "BiobaseTypes BiobaseFasta"
548 -- MC-Fold-DP
549 ]
550 -- https://github.com/fpco/stackage/issues/163
551 addRange "Michael Snoyman" "biophd" "< 0.0.6 || > 0.0.6"
553 mapM_ (add "Silk <code@silk.co>") $ words =<<
554 [ "arrow-list attoparsec-expr bumper code-builder fay-builder"
555 , "hxt-pickle-utils multipart regular-xmlpickler"
556 , "tostring uri-encode imagesize-conduit"
557 ]
558 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $ do
559 mapM_ (add "Silk <code@silk.co>") $ words =<<
560 [ "aeson-utils generic-aeson json-schema"
561 , "rest-client rest-core rest-gen rest-happstack rest-snap rest-stringmap"
562 , "rest-types rest-wai tostring uri-encode imagesize-conduit"
563 ]
565 mapM_ (add "Simon Michael <simon@joyful.com>") $ words
566 "hledger"
568 mapM_ (add "Mihai Maruseac <mihai.maruseac@gmail.com>") $ words
569 "io-manager"
571 mapM_ (add "Dimitri Sabadie <dimitri.sabadie@gmail.com") $ words
572 "monad-journal"
574 mapM_ (add "Thomas Schilling <nominolo@googlemail.com>") $ words
575 "ghc-syb-utils"
577 mapM_ (add "Boris Buliga <d12frosted@icloud.com>") $ words
578 "ghc-mod io-choice"
579 when (ghcVer >= GhcMajorVersion 7 8) $
580 mapM_ (add "Boris Buliga <d12frosted@icloud.com>") $ words
581 "system-canonicalpath"
583 when (ghcVer >= GhcMajorVersion 7 8) $
584 mapM_ (add "Yann Esposito <yann.esposito@gmail.com>") $ words
585 "holy-project"
586 when requireHP $ addRange "Yann Esposito <yann.esposito@gmail.com>" "holy-project" "< 0.1.1.1"
588 mapM_ (add "Paul Rouse <pgr@doynton.org>") $ words
589 "yesod-auth-hashdb"
591 add "Toralf Wittner <tw@dtex.org>" "zeromq4-haskell"
593 mapM_ (add "trupill@gmail.com") $ words
594 "djinn-lib djinn-ghc"
596 mapM_ (add "Arash Rouhani <miffoljud@gmail.com>") $ words
597 "yesod-text-markdown"
599 mapM_ (add "Matvey Aksenov <matvey.aksenov@gmail.com") $ words
600 "terminal-size"
602 mapM_ (add "Luis G. Torres <lgtorres42@gmail.com") $ words
603 "kdt"
604 {- https://github.com/fpco/stackage/pull/331
605 mapM_ (add "Jyotirmoy Bhattacharya <jyotirmoy@jyotirmoy.net") $ words
606 "hakyll"
607 -}
609 mapM_ (add "Emanuel Borsobom <manny@fpcomplete.com>") $ words
610 "text-binary"
611 when (ghcVer >= GhcMajorVersion 7 8) $
612 mapM_ (add "Emanuel Borsobom <manny@fpcomplete.com>") $ words
613 "haddock-api"
615 mapM_ (add "Michael Sloan <mgsloan@gmail.com") $ words
616 "th-orphans th-reify-many"
618 when (ghcVer == GhcMajorVersion 7 8 && not requireHP) $
619 mapM_ (add "Michael Snoyman") $ words =<<
620 [ "repa repa-io repa-algorithms repa-devil JuicyPixels-repa"
621 ]
623 when (ghcVer >= GhcMajorVersion 7 8 && not requireHP) $ do
624 mapM_ (add "Nikita Volkov <nikita.y.volkov@mail.ru>") $
625 words "hasql hasql-postgres hasql-backend postgresql-binary" ++
626 words "stm-containers focus list-t slave-thread partial-handler" ++
627 words "neat-interpolation cases" ++
628 words "base-prelude mtl-prelude"
629 addRange "Nikita Volkov <nikita.y.volkov@mail.ru>" "mtl-prelude" "< 2"
631 mapM_ (add "Iustin Pop <iustin@k1024.org>") $ words
632 "prefix-units"
634 -- https://github.com/fpco/stackage/issues/217
635 addRange "Michael Snoyman" "transformers" "< 0.4"
636 addRange "Michael Snoyman" "mtl" "< 2.2"
637 addRange "Michael Snoyman" "lifted-base" "< 0.2.2.2"
639 -- https://github.com/fpco/stackage/issues/224
640 when (ghcVer <= GhcMajorVersion 7 6) $ do
641 addRange "Michael Snoyman" "zip-archive" "== 0.2.2.1"
642 addRange "Michael Snoyman" "pandoc" "== 1.12.4.2"
643 addRange "Michael Snoyman" "texmath" "<= 0.6.6.3"
644 addRange "Michael Snoyman" "attoparsec" "== 0.11.3.1"
645 addRange "Michael Snoyman" "parsers" "< 0.11"
646 addRange "Michael Snoyman" "scientific" "< 0.3"
647 addRange "Michael Snoyman" "aeson" "< 0.7.0.5"
648 addRange "Michael Snoyman" "aeson-utils" "< 0.2.2"
649 addRange "Michael Snoyman" "formatting" "< 5"
650 addRange "Michael Snoyman" "aws" "< 0.10"
651 addRange "Michael Snoyman" "network" "< 2.6"
652 addRange "Michael Snoyman" "network-uri" "< 2.6"
654 -- 0.16.2 fixes dependency issues with different version of GHC
655 -- and Haskell Platform. Now builds on GHC 7.4-7.8. Version 1.0 is
656 -- guaranteed to break the API. See
657 -- https://travis-ci.org/jswebtools/language-ecmascript for
658 -- current build status.
659 addRange "Andrey Chudnov <oss@chudnov.com>" "language-ecmascript" ">= 0.16.2 && < 1.0"
661 -- https://github.com/fpco/stackage/issues/271
662 when (ghcVer < GhcMajorVersion 7 8) $
663 addRange "Michael Snoyman" "aeson" "< 0.8"
665 -- https://github.com/fpco/stackage/issues/279
666 addRange "Michael Snoyman" "MonadRandom" "< 0.2"
668 -- https://github.com/fpco/stackage/issues/288
669 addRange "Michael Snoyman" "text" "< 1.2"
671 -- Force a specific version that's compatible with transformers 0.3
672 addRange "Michael Snoyman" "transformers-compat" "== 0.3.3.3"
674 -- https://github.com/fpco/stackage/issues/291
675 addRange "Michael Snoyman" "random" "< 1.0.1.3"
677 -- https://github.com/fpco/stackage/issues/314
678 addRange "Michael Snoyman" "hxt" "< 9.3.1.9"
680 -- https://github.com/fpco/stackage/issues/318
681 addRange "Michael Snoyman" "HaXml" "< 1.25"
683 -- https://github.com/fpco/stackage/issues/319
684 addRange "Michael Snoyman" "polyparse" "< 1.10"
686 -- https://github.com/fpco/stackage/issues/341
687 addRange "Michael Snoyman" "haskell-names" "< 0.5"
689 when (ghcVer == GhcMajorVersion 7 8 && requireHP) $ do
690 -- Yay workarounds for unnecessarily old versions
691 let peg x y = addRange "Haskell Platform" x y
692 peg "aeson" "== 0.7.0.4"
693 peg "scientific" "== 0.2.0.2"
694 peg "criterion" "<= 0.8.1.0"
695 peg "tasty-quickcheck" "< 0.8.0.3"
696 peg "formatting" "< 5.0"
697 peg "parsers" "< 0.11"
698 peg "lens" "< 4.2"
699 peg "contravariant" "< 1"
700 peg "adjunctions" "< 4.2"
701 peg "kan-extensions" "< 4.1"
702 peg "semigroupoids" "< 4.1"
703 peg "aws" "< 0.10"
704 peg "pandoc" "< 1.13"
705 peg "texmath" "<= 0.6.6.3"
706 peg "checkers" "== 0.3.2"
707 peg "HandsomeSoup" "< 0.3.3"
708 peg "network-uri" "< 2.6"
710add :: String -> String -> Writer PackageMap ()
711add maintainer package = addRange maintainer package "-any"
713addRange :: String -> String -> String -> Writer PackageMap ()
714addRange maintainer package range =
715 case simpleParse range of
716 Nothing -> error $ "Invalid range " ++ show range ++ " for " ++ package
717 Just range' -> tell $ PackageMap $ Map.singleton (PackageName package) (range', Maintainer maintainer)
719-- | Hard coded Haskell Platform versions
720haskellPlatform78 :: Writer PackageMap ()
721haskellPlatform78 = do
722 addRange "Haskell Platform" "ghc" "== 7.8.3"
723 addRange "Haskell Platform" "haddock" "== 2.14.3"
724 addRange "Haskell Platform" "array" "== 0.5.0.0"
725 addRange "Haskell Platform" "base" "== 4.7.0.1"
726 addRange "Haskell Platform" "bytestring" "== 0.10.4.0"
727 addRange "Haskell Platform" "Cabal" "== 1.18.1.3"
728 addRange "Haskell Platform" "containers" "== 0.5.5.1"
729 addRange "Haskell Platform" "deepseq" "== 1.3.0.2"
730 addRange "Haskell Platform" "directory" "== 1.2.1.0"
731 addRange "Haskell Platform" "filepath" "== 1.3.0.2"
732 addRange "Haskell Platform" "haskell2010" "== 1.1.2.0"
733 addRange "Haskell Platform" "haskell98" "== 2.0.0.3"
734 addRange "Haskell Platform" "hpc" "== 0.6.0.1"
735 addRange "Haskell Platform" "old-locale" "== 1.0.0.6"
736 addRange "Haskell Platform" "old-time" "== 1.1.0.2"
737 addRange "Haskell Platform" "pretty" "== 1.1.1.1"
738 addRange "Haskell Platform" "process" "== 1.2.0.0"
739 addRange "Haskell Platform" "template-haskell" "== 2.9.0.0"
740 addRange "Haskell Platform" "time" "== 1.4.2"
741 addRange "Haskell Platform" "transformers" "== 0.3.0.0"
742 addRange "Haskell Platform" "unix" "== 2.7.0.1"
743 addRange "Haskell Platform" "xhtml" "== 3000.2.1"
744 addRange "Haskell Platform" "async" "== 2.0.1.5"
745 addRange "Haskell Platform" "attoparsec" "== 0.10.4.0"
746 addRange "Haskell Platform" "case-insensitive" "== 1.1.0.3"
747 addRange "Haskell Platform" "fgl" "== 5.5.0.1"
748 addRange "Haskell Platform" "GLURaw" "== 1.4.0.1"
749 addRange "Haskell Platform" "GLUT" "== 2.5.1.1"
750 addRange "Haskell Platform" "hashable" "== 1.2.2.0"
751 addRange "Haskell Platform" "haskell-src" "== 1.0.1.6"
752 addRange "Haskell Platform" "html" "== 1.0.1.2"
753 addRange "Haskell Platform" "HTTP" "== 4000.2.10"
754 addRange "Haskell Platform" "HUnit" "== 1.2.5.2"
755 addRange "Haskell Platform" "mtl" "== 2.1.3.1"
756 addRange "Haskell Platform" "network" "== 2.4.2.3"
757 addRange "Haskell Platform" "OpenGL" "== 2.9.2.0"
758 addRange "Haskell Platform" "OpenGLRaw" "== 1.5.0.0"
759 addRange "Haskell Platform" "parallel" "== 3.2.0.4"
760 addRange "Haskell Platform" "parsec" "== 3.1.5"
761 addRange "Haskell Platform" "primitive" "== 0.5.2.1"
762 addRange "Haskell Platform" "QuickCheck" "== 2.6"
763 addRange "Haskell Platform" "random" "== 1.0.1.1"
764 addRange "Haskell Platform" "regex-base" "== 0.93.2"
765 addRange "Haskell Platform" "regex-compat" "== 0.95.1"
766 addRange "Haskell Platform" "regex-posix" "== 0.95.2"
767 addRange "Haskell Platform" "split" "== 0.2.2"
768 addRange "Haskell Platform" "stm" "== 2.4.2"
769 addRange "Haskell Platform" "syb" "== 0.4.1"
770 addRange "Haskell Platform" "text" "== 1.1.0.0"
771 addRange "Haskell Platform" "transformers" "== 0.3.0.0"
772 addRange "Haskell Platform" "unordered-containers" "== 0.2.4.0"
773 addRange "Haskell Platform" "vector" "== 0.10.9.1"
774 addRange "Haskell Platform" "xhtml" "== 3000.2.1"
775 addRange "Haskell Platform" "zlib" "== 0.5.4.1"
776 addRange "Haskell Platform" "alex" "== 3.1.3"
777 addRange "Haskell Platform" "cabal-install" "== 1.18.0.5"
778 addRange "Haskell Platform" "happy" "== 1.19.4"
779 addRange "Haskell Platform" "hscolour" "== 1.20.3"
781-- | Replacement Github users. This is useful when a project is owned by an
782-- organization. It also lets you ping multiple users.
783--
784-- Note that cross organization team mentions aren't allowed by Github.
785convertGithubUser :: String -> [String]
786convertGithubUser x =
787 fromMaybe [x] $ Map.lookup (map toLower x) pairs
788 where
789 pairs = Map.fromList
790 [ ("diagrams", ["byorgey", "fryguybob", "jeffreyrosenbluth", "bergey"])
791 , ("yesodweb", ["snoyberg"])
792 , ("fpco", ["snoyberg"])
793 , ("faylang", ["bergmark"])
794 , ("silkapp", ["bergmark", "hesselink"])
795 , ("snapframework",["mightybyte"])
796 , ("haskell-ro", ["mihaimaruseac"])
797 ]