on master help sign in
Cleanup in prep of release to Hackage
commit0e1a160477c36bcafa12f89951421585329e7f39 authorMichael Snoyman <michael@snoyman.com> dateMon 15 Dec 2014, 08:10 (12 years ago) parent9f6ede2
23 files changed+107−112
ChangeLog.md+5 README.md+2−2 Stackage2/BuildConstraints.hs → Stackage/BuildConstraints.hs+3−3 Stackage2/BuildPlan.hs → Stackage/BuildPlan.hs+6−6 Stackage2/CheckBuildPlan.hs → Stackage/CheckBuildPlan.hs+5−5 Stackage2/CompleteBuild.hs → Stackage/CompleteBuild.hs+9−9 Stackage2/CorePackages.hs → Stackage/CorePackages.hs+2−2 Stackage2/GithubPings.hs → Stackage/GithubPings.hs+3−3 Stackage2/PackageDescription.hs → Stackage/PackageDescription.hs+2−2 Stackage2/PackageIndex.hs → Stackage/PackageIndex.hs+2−2 Stackage2/PerformBuild.hs → Stackage/PerformBuild.hs+5−5 Stackage2/Prelude.hs → Stackage/Prelude.hs+2−2 Stackage2/ServerBundle.hs → Stackage/ServerBundle.hs+4−4 Stackage2/UpdateBuildPlan.hs → Stackage/UpdateBuildPlan.hs+4−4 Stackage2/Upload.hs → Stackage/Upload.hs+4−4 app/lts-major-bump.hs−4 app/lts-minor-bump.hs−4 app/stackage-nightly.hs−4 app/stackage.hs+15 stackage.cabal+22−35 test/Stackage2/BuildPlanSpec.hs → test/Stackage/BuildPlanSpec.hs+6−6 test/Stackage2/CorePackagesSpec.hs → test/Stackage/CorePackagesSpec.hs+3−3 test/Stackage2/PackageIndexSpec.hs → test/Stackage/PackageIndexSpec.hs+3−3
ChangeLog.mdnew file+5
@@ -0,0 +1,5 @@
1+## 0.1.0.0
2+
3+First version of Stackage which is made available as its own package. The
4+codebase has been completely rewritten at this point, to be ready for generated
5+both Stackage Nightly and LTS Haskell distributions.
README.md+2−2
@@ -5,7 +5,7 @@ stackage
55
66__NOTE__ This repository is for package authors to get their code into
77Stackage. If you simply want to use Stackage as an end user, please follow the
8−instructions on http://www.stackage.org/.
8+instructions on [http://www.stackage.org/](http://www.stackage.org).
99
1010A note about the codebase: the goal is to minimize dependencies and have
1111the maximum range of supported compiler versions. Therefore, we avoid
@@ -16,7 +16,7 @@ Get your package included
1616-------------------------
1717
1818In order to get your package included in the set of stable packages, you should
19−send a pull request against this repository. In the `Stackage.Config` module,
19+send a pull request against this repository. In the `build-constraints.yaml` file,
2020there's a function called `defaultStablePackages`. In general, to add a set of
2121packages, you would add:
2222
Stackage2/BuildConstraints.hs → Stackage/BuildConstraints.hsrenamed+3−3
@@ -3,7 +3,7 @@
33{-# LANGUAGE RecordWildCards #-}
44{-# LANGUAGE TupleSections #-}
55-- | The constraints on package selection for a new build plan.
6−module Stackage2.BuildConstraints
6+module Stackage.BuildConstraints
77 ( BuildConstraints (..)
88 , PackageConstraints (..)
99 , TestState (..)
@@ -23,8 +23,8 @@ import Distribution.Version (anyVersion)
2323import Distribution.Version (anyVersion)
2424import Filesystem (isFile)
2525import Network.HTTP.Client (Manager, httpLbs, responseBody)
26−import Stackage2.CorePackages
27−import Stackage2.Prelude
26+import Stackage.CorePackages
27+import Stackage.Prelude
2828
2929data TestState = ExpectSuccess
3030 | ExpectFailure
Stackage2/BuildPlan.hs → Stackage/BuildPlan.hsrenamed+6−6
@@ -9,7 +9,7 @@
99{-# LANGUAGE TypeFamilies #-}
1010-- | Representation of a concrete build plan, and how to generate a new one
1111-- based on constraints.
12−module Stackage2.BuildPlan
12+module Stackage.BuildPlan
1313 ( BuildPlan (..)
1414 , PackagePlan (..)
1515 , newBuildPlan
@@ -22,11 +22,11 @@ import qualified Data.Map as Map
2222import qualified Data.Set as Set
2323import qualified Distribution.Compiler
2424import Distribution.PackageDescription
25−import Stackage2.BuildConstraints
26−import Stackage2.GithubPings
27−import Stackage2.PackageDescription
28−import Stackage2.PackageIndex
29−import Stackage2.Prelude
25+import Stackage.BuildConstraints
26+import Stackage.GithubPings
27+import Stackage.PackageDescription
28+import Stackage.PackageIndex
29+import Stackage.Prelude
3030
3131data BuildPlan = BuildPlan
3232 { bpSystemInfo :: SystemInfo
Stackage2/CheckBuildPlan.hs → Stackage/CheckBuildPlan.hsrenamed+5−5
@@ -5,15 +5,15 @@
55{-# LANGUAGE RecordWildCards #-}
66{-# LANGUAGE ViewPatterns #-}
77-- | Confirm that a build plan has a consistent set of dependencies.
8−module Stackage2.CheckBuildPlan
8+module Stackage.CheckBuildPlan
99 ( checkBuildPlan
1010 ) where
1111
1212import Control.Monad.Writer.Strict (Writer, execWriter, tell)
13−import Stackage2.BuildConstraints
14−import Stackage2.BuildPlan
15−import Stackage2.PackageDescription
16−import Stackage2.Prelude
13+import Stackage.BuildConstraints
14+import Stackage.BuildPlan
15+import Stackage.PackageDescription
16+import Stackage.Prelude
1717
1818-- FIXME check cycles in dependencies, only looking at libraries and
1919-- executables
Stackage2/CompleteBuild.hs → Stackage/CompleteBuild.hsrenamed+9−9
@@ -1,7 +1,7 @@
11{-# LANGUAGE NoImplicitPrelude #-}
22{-# LANGUAGE OverloadedStrings #-}
33{-# LANGUAGE RecordWildCards #-}
4−module Stackage2.CompleteBuild
4+module Stackage.CompleteBuild
55 ( BuildType (..)
66 , BumpType (..)
77 , completeBuild
@@ -12,14 +12,14 @@ import Data.Text.Read (decimal)
1212import Data.Time
1313import Data.Yaml (decodeFileEither, encodeFile)
1414import Network.HTTP.Client
15−import Stackage2.BuildConstraints
16−import Stackage2.BuildPlan
17−import Stackage2.CheckBuildPlan
18−import Stackage2.PerformBuild
19−import Stackage2.Prelude
20−import Stackage2.ServerBundle
21−import Stackage2.UpdateBuildPlan
22−import Stackage2.Upload
15+import Stackage.BuildConstraints
16+import Stackage.BuildPlan
17+import Stackage.CheckBuildPlan
18+import Stackage.PerformBuild
19+import Stackage.Prelude
20+import Stackage.ServerBundle
21+import Stackage.UpdateBuildPlan
22+import Stackage.Upload
2323import System.IO (BufferMode (LineBuffering), hSetBuffering)
2424
2525data BuildType = Nightly | LTS BumpType
Stackage2/CorePackages.hs → Stackage/CorePackages.hsrenamed+2−2
@@ -1,6 +1,6 @@
11{-# LANGUAGE NoImplicitPrelude #-}
22{-# LANGUAGE OverloadedStrings #-}
3−module Stackage2.CorePackages
3+module Stackage.CorePackages
44 ( getCorePackages
55 , getCoreExecutables
66 , getGhcVersion
@@ -8,7 +8,7 @@ module Stackage2.CorePackages
88
99import qualified Data.Text as T
1010import Filesystem (listDirectory)
11−import Stackage2.Prelude
11+import Stackage.Prelude
1212import System.Directory (findExecutable)
1313
1414-- | Get a @Map@ of all of the core packages. Core packages are defined as
Stackage2/GithubPings.hs → Stackage/GithubPings.hsrenamed+3−3
@@ -1,13 +1,13 @@
11{-# LANGUAGE NoImplicitPrelude #-}
22{-# LANGUAGE OverloadedStrings #-}
33{-# LANGUAGE ViewPatterns #-}
4−module Stackage2.GithubPings
4+module Stackage.GithubPings
55 ( getGithubPings
66 ) where
77
88import Distribution.PackageDescription
9−import Stackage2.BuildConstraints
10−import Stackage2.Prelude
9+import Stackage.BuildConstraints
10+import Stackage.Prelude
1111
1212-- | Determine accounts to be pinged on Github based on various metadata in the
1313-- package description.
Stackage2/PackageDescription.hs → Stackage/PackageDescription.hsrenamed+2−2
@@ -9,7 +9,7 @@
99{-# LANGUAGE TypeFamilies #-}
1010-- | Manipulate @GenericPackageDescription@ from Cabal into something more
1111-- useful for us.
12−module Stackage2.PackageDescription
12+module Stackage.PackageDescription
1313 ( SimpleDesc (..)
1414 , toSimpleDesc
1515 , CheckCond (..)
@@ -25,7 +25,7 @@ import Distribution.Compiler (CompilerFlavor)
2525import Distribution.Package (Dependency (..))
2626import Distribution.PackageDescription
2727import Distribution.System (Arch, OS)
28−import Stackage2.Prelude
28+import Stackage.Prelude
2929
3030data Component = CompLibrary
3131 | CompExecutable
Stackage2/PackageIndex.hs → Stackage/PackageIndex.hsrenamed+2−2
@@ -5,7 +5,7 @@
55{-# LANGUAGE RankNTypes #-}
66{-# LANGUAGE ViewPatterns #-}
77-- | Dealing with the 00-index file and all its cabal files.
8−module Stackage2.PackageIndex
8+module Stackage.PackageIndex
99 ( sourcePackageIndex
1010 , UnparsedCabalFile (..)
1111 , getLatestDescriptions
@@ -20,7 +20,7 @@ import Distribution.PackageDescription (package,
2020import Distribution.PackageDescription.Parse (ParseResult (..),
2121 parsePackageDescription)
2222import Distribution.ParseUtils (PError)
23−import Stackage2.Prelude
23+import Stackage.Prelude
2424import System.Directory (getAppUserDataDirectory)
2525
2626-- | Name of the 00-index.tar downloaded from Hackage.
Stackage2/PerformBuild.hs → Stackage/PerformBuild.hsrenamed+5−5
@@ -5,17 +5,17 @@
55{-# LANGUAGE RecordWildCards #-}
66{-# LANGUAGE NoImplicitPrelude #-}
77{-# LANGUAGE OverloadedStrings #-}
8−module Stackage2.PerformBuild
8+module Stackage.PerformBuild
99 ( performBuild
1010 , PerformBuild (..)
1111 , BuildException (..)
1212 , pbDocDir
1313 ) where
1414
15−import Stackage2.BuildConstraints
16−import Stackage2.PackageDescription
17−import Stackage2.BuildPlan
18−import Stackage2.Prelude hiding (pi)
15+import Stackage.BuildConstraints
16+import Stackage.PackageDescription
17+import Stackage.BuildPlan
18+import Stackage.Prelude hiding (pi)
1919import qualified Data.Map as Map
2020import Control.Concurrent.STM.TSem
2121import Data.NonNull (fromNullable)
Stackage2/Prelude.hs → Stackage/Prelude.hsrenamed+2−2
@@ -3,9 +3,9 @@
33{-# LANGUAGE NoImplicitPrelude #-}
44{-# LANGUAGE OverloadedStrings #-}
55{-# LANGUAGE TypeFamilies #-}
6−module Stackage2.Prelude
6+module Stackage.Prelude
77 ( module X
8− , module Stackage2.Prelude
8+ , module Stackage.Prelude
99 ) where
1010
1111import ClassyPrelude.Conduit as X
Stackage2/ServerBundle.hs → Stackage/ServerBundle.hsrenamed+4−4
@@ -2,7 +2,7 @@
22{-# LANGUAGE NoImplicitPrelude #-}
33{-# LANGUAGE OverloadedStrings #-}
44{-# LANGUAGE RecordWildCards #-}
5−module Stackage2.ServerBundle
5+module Stackage.ServerBundle
66 ( serverBundle
77 , epochTime
88 , bpAllPackages
@@ -14,9 +14,9 @@ import qualified Codec.Archive.Tar.Entry as Tar
1414import qualified Codec.Compression.GZip as GZip
1515import qualified Data.Yaml as Y
1616import Foreign.C.Types (CTime (CTime))
17−import Stackage2.BuildConstraints
18−import Stackage2.BuildPlan
19−import Stackage2.Prelude
17+import Stackage.BuildConstraints
18+import Stackage.BuildPlan
19+import Stackage.Prelude
2020import qualified System.PosixCompat.Time as PC
2121import qualified Text.XML as X
2222import Text.XML.Cursor
Stackage2/UpdateBuildPlan.hs → Stackage/UpdateBuildPlan.hsrenamed+4−4
@@ -3,7 +3,7 @@
33{-# LANGUAGE RecordWildCards #-}
44-- | Take an existing build plan and bump all packages to the newest version in
55-- the same major version number.
6−module Stackage2.UpdateBuildPlan
6+module Stackage.UpdateBuildPlan
77 ( updateBuildConstraints
88 , updateBuildPlan
99 ) where
@@ -11,9 +11,9 @@ module Stackage2.UpdateBuildPlan
1111import qualified Data.Map as Map
1212import Distribution.Version (anyVersion, earlierVersion,
1313 orLaterVersion)
14−import Stackage2.BuildConstraints
15−import Stackage2.BuildPlan
16−import Stackage2.Prelude
14+import Stackage.BuildConstraints
15+import Stackage.BuildPlan
16+import Stackage.Prelude
1717
1818updateBuildPlan :: BuildPlan -> IO BuildPlan
1919updateBuildPlan = newBuildPlan . updateBuildConstraints
Stackage2/Upload.hs → Stackage/Upload.hsrenamed+4−4
@@ -4,7 +4,7 @@
44{-# LANGUAGE OverloadedStrings #-}
55{-# LANGUAGE RecordWildCards #-}
66{-# LANGUAGE TupleSections #-}
7−module Stackage2.Upload
7+module Stackage.Upload
88 ( UploadBundle (..)
99 , SnapshotIdent (..)
1010 , uploadBundle
@@ -20,9 +20,9 @@ import Data.Default.Class (Default (..))
2020import Filesystem (isDirectory, isFile)
2121import Network.HTTP.Client
2222import Network.HTTP.Client.MultipartFormData
23−import Stackage2.BuildPlan (BuildPlan)
24−import Stackage2.Prelude
25−import Stackage2.ServerBundle (bpAllPackages, docsListing)
23+import Stackage.BuildPlan (BuildPlan)
24+import Stackage.Prelude
25+import Stackage.ServerBundle (bpAllPackages, docsListing)
2626import System.IO.Temp (withSystemTempFile)
2727
2828newtype StackageServer = StackageServer { unStackageServer :: Text }
app/lts-major-bump.hsdeleted−4
@@ -1,4 +0,0 @@
1−import Stackage2.CompleteBuild
2−
3−main :: IO ()
4−main = completeBuild (LTS Major)
app/lts-minor-bump.hsdeleted−4
@@ -1,4 +0,0 @@
1−import Stackage2.CompleteBuild
2−
3−main :: IO ()
4−main = completeBuild (LTS Minor)
app/stackage-nightly.hsdeleted−4
@@ -1,4 +0,0 @@
1−import Stackage2.CompleteBuild
2−
3−main :: IO ()
4−main = completeBuild Nightly
app/stackage.hsnew file+15
@@ -0,0 +1,15 @@
1+import Stackage.CompleteBuild
2+import System.Environment (getArgs)
3+
4+main :: IO ()
5+main = do
6+ args <- getArgs
7+ case args of
8+ [x] | Just y <- lookup x m -> completeBuild y
9+ _ -> error $ "Expected one argument, one of: " ++ unwords (map fst m)
10+ where
11+ m =
12+ [ ("nightly", Nightly)
13+ , ("lts-major", LTS Major)
14+ , ("lts-minor", LTS Minor)
15+ ]
stackage.cabal+22−35
@@ -1,7 +1,7 @@
11name: stackage
22version: 0.1.0.0
33synopsis: "Stable Hackage," tools for creating a vetted set of packages from Hackage.
4−-- description:
4+description: Please see <http://www.stackage.org/package/stackage> for a description and documentation.
55homepage: https://github.com/fpco/stackage
66license: MIT
77license-file: LICENSE
@@ -10,22 +10,25 @@ maintainer: michael@fpcomplete.com
1010category: Distribution
1111build-type: Simple
1212cabal-version: >=1.10
13+extra-source-files: README.md
14+ ChangeLog.md
15+ build-constraints.yaml
1316
1417library
1518 default-language: Haskell2010
16− exposed-modules: Stackage2.Prelude
17− Stackage2.BuildConstraints
18− Stackage2.CorePackages
19− Stackage2.PackageIndex
20− Stackage2.BuildPlan
21− Stackage2.CheckBuildPlan
22− Stackage2.UpdateBuildPlan
23− Stackage2.GithubPings
24− Stackage2.PackageDescription
25− Stackage2.ServerBundle
26− Stackage2.Upload
27− Stackage2.PerformBuild
28− Stackage2.CompleteBuild
19+ exposed-modules: Stackage.Prelude
20+ Stackage.BuildConstraints
21+ Stackage.CorePackages
22+ Stackage.PackageIndex
23+ Stackage.BuildPlan
24+ Stackage.CheckBuildPlan
25+ Stackage.UpdateBuildPlan
26+ Stackage.GithubPings
27+ Stackage.PackageDescription
28+ Stackage.ServerBundle
29+ Stackage.Upload
30+ Stackage.PerformBuild
31+ Stackage.CompleteBuild
2932 build-depends: base >= 4 && < 5
3033 , containers
3134 , Cabal >= 1.14
@@ -59,26 +62,10 @@ library
5962 , semigroups
6063 , xml-conduit
6164
62−executable stackage-nightly
65+executable stackage
6366 default-language: Haskell2010
6467 hs-source-dirs: app
65− main-is: stackage-nightly.hs
66− build-depends: base
67− , stackage
68− ghc-options: -rtsopts -threaded -with-rtsopts=-N
69−
70−executable lts-minor-bump
71− default-language: Haskell2010
72− hs-source-dirs: app
73− main-is: lts-minor-bump.hs
74− build-depends: base
75− , stackage
76− ghc-options: -rtsopts -threaded -with-rtsopts=-N
77−
78−executable lts-major-bump
79− default-language: Haskell2010
80− hs-source-dirs: app
81− main-is: lts-major-bump.hs
68+ main-is: stackage.hs
8269 build-depends: base
8370 , stackage
8471 ghc-options: -rtsopts -threaded -with-rtsopts=-N
@@ -88,9 +75,9 @@ test-suite spec
8875 default-language: Haskell2010
8976 hs-source-dirs: test
9077 main-is: Spec.hs
91− other-modules: Stackage2.CorePackagesSpec
92− Stackage2.PackageIndexSpec
93− Stackage2.BuildPlanSpec
78+ other-modules: Stackage.CorePackagesSpec
79+ Stackage.PackageIndexSpec
80+ Stackage.BuildPlanSpec
9481 build-depends: base
9582 , stackage
9683 , hspec
test/Stackage2/BuildPlanSpec.hs → test/Stackage/BuildPlanSpec.hsrenamed+6−6
@@ -1,10 +1,10 @@
11{-# LANGUAGE OverloadedStrings, NoImplicitPrelude #-}
2−module Stackage2.BuildPlanSpec (spec) where
2+module Stackage.BuildPlanSpec (spec) where
33
4−import Stackage2.BuildPlan
5−import Stackage2.Prelude
6−import Stackage2.BuildConstraints
7−import Stackage2.UpdateBuildPlan
4+import Stackage.BuildPlan
5+import Stackage.Prelude
6+import Stackage.BuildConstraints
7+import Stackage.UpdateBuildPlan
88import Test.Hspec
99import qualified Data.Yaml as Y
1010import Distribution.Version (anyVersion)
@@ -12,7 +12,7 @@ import qualified Data.Map as Map
1212
1313spec :: Spec
1414spec = it "works" $ do
15− bc <- defaultBuildConstraints
15+ bc <- defaultBuildConstraints (error "manager should not be used")
1616 bp <- newBuildPlan bc
1717 let bs = Y.encode bp
1818 ebp' = Y.decodeEither bs
test/Stackage2/CorePackagesSpec.hs → test/Stackage/CorePackagesSpec.hsrenamed+3−3
@@ -1,8 +1,8 @@
11{-# LANGUAGE OverloadedStrings, NoImplicitPrelude #-}
2−module Stackage2.CorePackagesSpec (spec) where
2+module Stackage.CorePackagesSpec (spec) where
33
4−import Stackage2.CorePackages
5−import Stackage2.Prelude
4+import Stackage.CorePackages
5+import Stackage.Prelude
66import Test.Hspec
77
88spec :: Spec
test/Stackage2/PackageIndexSpec.hs → test/Stackage/PackageIndexSpec.hsrenamed+3−3
@@ -1,8 +1,8 @@
11{-# LANGUAGE OverloadedStrings, NoImplicitPrelude #-}
2−module Stackage2.PackageIndexSpec (spec) where
2+module Stackage.PackageIndexSpec (spec) where
33
4−import Stackage2.PackageIndex
5−import Stackage2.Prelude
4+import Stackage.PackageIndex
5+import Stackage.Prelude
66import Test.Hspec
77import Distribution.Package (packageId)
88