ats-pkg 0.2.0.1 → 0.3.0.1
raw patch · 6 files changed
+32/−38 lines, 6 filesdep −hspecdep −mtldep −optparse-applicativedep ~basedep ~shake-extPVP ok
version bump matches the API change (PVP)
Dependencies removed: hspec, mtl, optparse-applicative
Dependency ranges changed: base, shake-ext
API changes (from Hackage documentation)
- Language.ATS.Package.Dependency: fetchFastArithmeticDeps :: IO ()
+ Language.ATS.Package.Dependency: Dependency :: String -> FilePath -> String -> Dependency
+ Language.ATS.Package.Dependency: [_dir] :: Dependency -> FilePath
+ Language.ATS.Package.Dependency: [_libName] :: Dependency -> String
+ Language.ATS.Package.Dependency: [_url] :: Dependency -> String
+ Language.ATS.Package.Dependency: atsGMP :: Dependency
+ Language.ATS.Package.Dependency: atsIntinf :: Dependency
+ Language.ATS.Package.Dependency: atsPrelude :: Dependency
+ Language.ATS.Package.Dependency: data Dependency
+ Language.ATS.Package.Dependency: instance GHC.Classes.Eq Language.ATS.Package.Dependency.Dependency
+ Language.ATS.Package.Dependency: instance GHC.Generics.Generic Language.ATS.Package.Dependency.Dependency
+ Language.ATS.Package.Dependency: instance GHC.Show.Show Language.ATS.Package.Dependency.Dependency
+ Language.ATS.Package.Type: [version] :: Pkg -> [Integer]
- Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> Pkg
+ Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> Pkg
Files
- .travis.yml +2/−0
- ats-pkg.cabal +2/−14
- src/Language/ATS/Package/Dependency.hs +16/−6
- src/Language/ATS/Package/Type.hs +10/−8
- stack.yaml +2/−2
- test/Spec.hs +0/−8
.travis.yml view
@@ -50,6 +50,7 @@ yamllint stack.yaml yamllint appveyor.yml yamllint .travis.yml+ yamllint .yamllint else echo "skipping yaml verification..." fi@@ -79,3 +80,4 @@ branches: only: - /\d+\.\d+\.\d+\.\d+.*$/+ - master
ats-pkg.cabal view
@@ -1,5 +1,5 @@ name: ats-pkg-version: 0.2.0.1+version: 0.3.0.1 synopsis: Package manager for ATS description: A collection of scripts to make building ATS projects easy. homepage: https://github.com/vmchale/ats-pkg#readme@@ -39,13 +39,11 @@ , http-client-tls , text , directory- , optparse-applicative , process , parallel-io , unix , dhall- , mtl- , shake-ext >= 0.4.2.0+ , shake-ext >= 0.5.0.1 , composition-prelude >= 1.1.0.1 default-language: Haskell2010 if flag(development)@@ -62,16 +60,6 @@ if flag(development) ghc-options: -Werror ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat--test-suite ats-pkg-test- type: exitcode-stdio-1.0- hs-source-dirs: test- main-is: Spec.hs- build-depends: base- , ats-pkg- , hspec- ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat- default-language: Haskell2010 source-repository head type: git
src/Language/ATS/Package/Dependency.hs view
@@ -1,18 +1,31 @@+{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} -module Language.ATS.Package.Dependency ( fetchDeps- , fetchFastArithmeticDeps+module Language.ATS.Package.Dependency ( -- * Functions+ fetchDeps+ -- * Types+ , Dependency (..)+ -- * Dependency constants+ , atsPrelude+ , atsIntinf+ , atsGMP ) where import qualified Codec.Archive.Tar as Tar import Codec.Compression.GZip (decompress) import Control.Concurrent.ParallelIO.Global import Control.Monad+import Dhall import Network.HTTP.Client hiding (decompress) import Network.HTTP.Client.TLS (tlsManagerSettings) import System.Directory -data Dependency = Dependency String FilePath String+-- | Type for a dependency+data Dependency = Dependency { _libName :: String -- ^ Library name, e.g.+ , _dir :: FilePath -- ^ Directory we should unpack to+ , _url :: String -- ^ Url pointing to tarball+ }+ deriving (Eq, Show, Generic) atsPrelude :: Dependency atsPrelude = Dependency "ats2-postiats-0.3.8-prelude" ".atspkg/prelude" "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz"@@ -22,9 +35,6 @@ atsGMP :: Dependency atsGMP = Dependency "atscntrb-libgmp-1.0.4" ".atspkg/contrib/atscntrb-libgmp" "https://registry.npmjs.org/atscntrb-libgmp/-/atscntrb-libgmp-1.0.4.tgz"--fetchFastArithmeticDeps :: IO ()-fetchFastArithmeticDeps = fetchDeps [atsPrelude, atsIntinf, atsGMP] fetchDeps :: [Dependency] -> IO () fetchDeps deps = do
src/Language/ATS/Package/Type.hs view
@@ -44,8 +44,8 @@ getConfig :: MonadIO m => m Pkg getConfig = liftIO (input auto "./atspkg.dhall") -asTarget :: Text -> FilePath-asTarget m = TL.unpack m -<.> "1"+manTarget :: Text -> FilePath+manTarget m = TL.unpack m -<.> "1" mkInstall :: Rules () mkInstall =@@ -58,7 +58,7 @@ void $ zipWithM copyFile' bins binDest case man config of Just mt -> do- let mt' = asTarget mt+ let mt' = manTarget mt manDest = (home <> "/.local/share/man/man1/") <> mt' need [mt'] copyFile' mt' manDest@@ -79,21 +79,23 @@ need tests mapM_ cmd_ tests --- TODO need @atspkg.dhall@ pkgToAction :: Pkg -> Rules ()-pkgToAction (Pkg bs ts mt) = do+pkgToAction (Pkg bs ts mt v) = do+ action (need ["atspkg.dhall"]) mapM_ g (bs ++ ts) let bins = TL.unpack . target <$> bs case mt of- (Just m) -> want (asTarget m : bins)+ (Just m) -> want (manTarget m : bins) Nothing -> want bins - where g (Bin s t ls gc') = atsBin gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t)+ where g (Bin s t ls gc') = atsBin (Version v) gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t) +-- TODO configuration for a library?+ data Bin = Bin { src :: Text, target :: Text, libs :: [Text], gc :: Bool } deriving (Show, Eq, Generic, Interpret) -data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text }+data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer] } deriving (Show, Eq, Generic, Interpret) printConfig :: IO ()
stack.yaml view
@@ -3,8 +3,8 @@ packages: - '.' extra-deps:- - shake-ext-0.4.0.2- - composition-prelude-1.1.0.0+ - shake-ext-0.5.0.1+ - composition-prelude-1.1.0.1 - language-ats-0.1.0.3 flags: ats-pkg:
− test/Spec.hs
@@ -1,8 +0,0 @@-import Language.ATS.Package-import Test.Hspec--main :: IO ()-main = hspec $- describe "head" $- parallel $ it "gets the head of an infinite list" $- head [1..] `shouldBe` 1