codex 0.3.0.8 → 0.3.0.10
raw patch · 3 files changed
+13/−13 lines, 3 filesdep ~codexPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: codex
API changes (from Hackage documentation)
- Codex: currentProjectIncluded :: Codex -> Bool
- Codex: hackagePath :: Codex -> FilePath
- Codex: instance Eq Status
- Codex: instance Eq Tagger
- Codex: instance Eq Tagging
- Codex: instance Read Tagger
- Codex: instance Show Status
- Codex: instance Show Tagger
- Codex: instance Show Tagging
- Codex: tagsCmd :: Codex -> String
- Codex: tagsFileHeader :: Codex -> Bool
- Codex: tagsFileName :: Codex -> FilePath
- Codex: tagsFileSorted :: Codex -> Bool
- Codex.Internal: currentProjectIncluded :: Codex -> Bool
- Codex.Internal: hackagePath :: Codex -> FilePath
- Codex.Internal: instance Constructor C1_0Codex
- Codex.Internal: instance Datatype D1Codex
- Codex.Internal: instance FromJSON Codex
- Codex.Internal: instance Generic Codex
- Codex.Internal: instance Selector S1_0_0Codex
- Codex.Internal: instance Selector S1_0_1Codex
- Codex.Internal: instance Selector S1_0_2Codex
- Codex.Internal: instance Selector S1_0_3Codex
- Codex.Internal: instance Selector S1_0_4Codex
- Codex.Internal: instance Selector S1_0_5Codex
- Codex.Internal: instance Show Codex
- Codex.Internal: instance ToJSON Codex
- Codex.Internal: tagsCmd :: Codex -> String
- Codex.Internal: tagsFileHeader :: Codex -> Bool
- Codex.Internal: tagsFileName :: Codex -> FilePath
- Codex.Internal: tagsFileSorted :: Codex -> Bool
- Codex.Project: instance Eq Workspace
- Codex.Project: instance Eq WorkspaceProject
- Codex.Project: instance Show Workspace
- Codex.Project: instance Show WorkspaceProject
- Codex.Project: workspaceProjectIdentifier :: WorkspaceProject -> PackageIdentifier
- Codex.Project: workspaceProjectPath :: WorkspaceProject -> FilePath
+ Codex: [currentProjectIncluded] :: Codex -> Bool
+ Codex: [hackagePath] :: Codex -> FilePath
+ Codex: [tagsCmd] :: Codex -> String
+ Codex: [tagsFileHeader] :: Codex -> Bool
+ Codex: [tagsFileName] :: Codex -> FilePath
+ Codex: [tagsFileSorted] :: Codex -> Bool
+ Codex: instance GHC.Classes.Eq Codex.Status
+ Codex: instance GHC.Classes.Eq Codex.Tagger
+ Codex: instance GHC.Classes.Eq Codex.Tagging
+ Codex: instance GHC.Read.Read Codex.Tagger
+ Codex: instance GHC.Show.Show Codex.Status
+ Codex: instance GHC.Show.Show Codex.Tagger
+ Codex: instance GHC.Show.Show Codex.Tagging
+ Codex.Internal: [currentProjectIncluded] :: Codex -> Bool
+ Codex.Internal: [hackagePath] :: Codex -> FilePath
+ Codex.Internal: [tagsCmd] :: Codex -> String
+ Codex.Internal: [tagsFileHeader] :: Codex -> Bool
+ Codex.Internal: [tagsFileName] :: Codex -> FilePath
+ Codex.Internal: [tagsFileSorted] :: Codex -> Bool
+ Codex.Internal: instance Data.Aeson.Types.Class.FromJSON Codex.Internal.Codex
+ Codex.Internal: instance Data.Aeson.Types.Class.ToJSON Codex.Internal.Codex
+ Codex.Internal: instance GHC.Generics.Constructor Codex.Internal.C1_0Codex
+ Codex.Internal: instance GHC.Generics.Datatype Codex.Internal.D1Codex
+ Codex.Internal: instance GHC.Generics.Generic Codex.Internal.Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_0Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_1Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_2Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_3Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_4Codex
+ Codex.Internal: instance GHC.Generics.Selector Codex.Internal.S1_0_5Codex
+ Codex.Internal: instance GHC.Show.Show Codex.Internal.Codex
+ Codex.Project: [workspaceProjectIdentifier] :: WorkspaceProject -> PackageIdentifier
+ Codex.Project: [workspaceProjectPath] :: WorkspaceProject -> FilePath
+ Codex.Project: instance GHC.Classes.Eq Codex.Project.Workspace
+ Codex.Project: instance GHC.Classes.Eq Codex.Project.WorkspaceProject
+ Codex.Project: instance GHC.Show.Show Codex.Project.Workspace
+ Codex.Project: instance GHC.Show.Show Codex.Project.WorkspaceProject
- Codex.Project: resolveCurrentProjectDependencies :: IO ProjectDependencies
+ Codex.Project: resolveCurrentProjectDependencies :: FilePath -> IO ProjectDependencies
- Codex.Project: resolvePackageDependencies :: FilePath -> GenericPackageDescription -> IO [PackageIdentifier]
+ Codex.Project: resolvePackageDependencies :: FilePath -> FilePath -> GenericPackageDescription -> IO [PackageIdentifier]
- Codex.Project: resolveProjectDependencies :: Workspace -> FilePath -> IO ProjectDependencies
+ Codex.Project: resolveProjectDependencies :: Workspace -> FilePath -> FilePath -> IO ProjectDependencies
Files
- codex.cabal +2/−2
- codex/Main.hs +1/−1
- src/Codex/Project.hs +10/−10
codex.cabal view
@@ -1,5 +1,5 @@ name: codex-version: 0.3.0.8+version: 0.3.0.10 synopsis: A ctags file generator for cabal project dependencies. description: This tool download and cache the source code of packages in your local hackage,@@ -76,7 +76,7 @@ , network >= 2.6 && < 2.7 , wreq , yaml - , codex == 0.3.0.8+ , codex == 0.3.0.10 source-repository head type: git
codex/Main.hs view
@@ -64,7 +64,7 @@ update :: Codex -> Bool -> IO () update cx force = do- (project, dependencies, workspaceProjects') <- resolveCurrentProjectDependencies+ (project, dependencies, workspaceProjects') <- resolveCurrentProjectDependencies $ hackagePath cx </> "00-index.tar" projectHash <- computeCurrentProjectHash cx shouldUpdate <-
src/Codex/Project.hs view
@@ -11,7 +11,7 @@ import Data.Function import Data.Maybe import Distribution.InstalledPackageInfo-import Distribution.Hackage.DB (Hackage, readHackage)+import Distribution.Hackage.DB (Hackage, readHackage') import Distribution.Package import Distribution.PackageDescription import Distribution.PackageDescription.Parse@@ -52,16 +52,16 @@ files <- filterM (doesFileExist . (</>) root) contents traverse (readPackageDescription silent) $ fmap (\x -> root </> x) $ List.find (List.isSuffixOf ".cabal") files -resolveCurrentProjectDependencies :: IO ProjectDependencies-resolveCurrentProjectDependencies = do+resolveCurrentProjectDependencies :: FilePath -> IO ProjectDependencies+resolveCurrentProjectDependencies hackagePath = do ws <- getWorkspace ".."- resolveProjectDependencies ws "."+ resolveProjectDependencies ws hackagePath "." -- TODO Optimize-resolveProjectDependencies :: Workspace -> FilePath -> IO ProjectDependencies-resolveProjectDependencies ws root = do+resolveProjectDependencies :: Workspace -> FilePath -> FilePath -> IO ProjectDependencies+resolveProjectDependencies ws hackagePath root = do pd <- maybe (error "No cabal file found.") id <$> findPackageDescription root- xs <- resolvePackageDependencies root pd+ xs <- resolvePackageDependencies hackagePath root pd ys <- resolveSandboxDependencies root let zs = resolveWorkspaceDependencies ws pd let wsds = List.filter (shouldOverride xs) $ List.nubBy (on (==) prjId) $ concat [ys, zs]@@ -89,8 +89,8 @@ latest <- List.find (\x -> withinRange x versionRange) $ List.reverse $ List.sort $ Map.keys pdsByVersion Map.lookup latest pdsByVersion -resolvePackageDependencies :: FilePath -> GenericPackageDescription -> IO [PackageIdentifier]-resolvePackageDependencies root pd = do+resolvePackageDependencies :: FilePath -> FilePath -> GenericPackageDescription -> IO [PackageIdentifier]+resolvePackageDependencies hackagePath root pd = do xs <- either (fallback pd) return =<< resolveInstalledDependencies root return xs where fallback pd' e = do@@ -98,7 +98,7 @@ putStrLn "codex: *warning* falling back on dependency resolution using hackage" resolveWithHackage pd' resolveWithHackage pd' = do- db <- readHackage+ db <- readHackage' hackagePath return $ identifier <$> resolveHackageDependencies db pd' resolveSandboxDependencies :: FilePath -> IO [WorkspaceProject]