git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #1108 from hdgarrood/docs-add-version-tag
9bd56d9Phil Freeman
psc-publish/Main.hs+12−11
@@ -97,12 +97,13 @@ preparePackage' = do
97
97
98 pkgMeta <- liftIO (Bower.decodeFile "bower.json")
98 pkgMeta <- liftIO (Bower.decodeFile "bower.json")
99 >>= flip catchLeft (userError . CouldntParseBowerJSON)
99 >>= flip catchLeft (userError . CouldntParseBowerJSON)
100− pkgVersion <- getVersionFromGitTag
100+ (pkgVersionTag, pkgVersion) <- getVersionFromGitTag
101− pkgGithub <- getBowerInfo pkgMeta
101+ pkgGithub <- getBowerInfo pkgMeta
102− (pkgBookmarks, pkgModules) <- getModulesAndBookmarks
102+ (pkgBookmarks, pkgModules) <- getModulesAndBookmarks
103
103
104− let declaredDeps = map fst (bowerDependencies pkgMeta ++ bowerDevDependencies pkgMeta)
104+ let declaredDeps = map fst (bowerDependencies pkgMeta ++
105+ bowerDevDependencies pkgMeta)
105− pkgResolvedDependencies <- getResolvedDependencies declaredDeps
106+ pkgResolvedDependencies <- getResolvedDependencies declaredDeps
106
107
107 let pkgUploader = D.NotYetKnown
108 let pkgUploader = D.NotYetKnown
108
109
@@ -117,19 +118,19 @@ getModulesAndBookmarks = do
117 renderModules bookmarks modules =
118 renderModules bookmarks modules =
118 return (bookmarks, map D.renderModule modules)
119 return (bookmarks, map D.renderModule modules)
119
120
120−getVersionFromGitTag :: PrepareM Version
121+getVersionFromGitTag :: PrepareM (String, Version)
121getVersionFromGitTag = do
122getVersionFromGitTag = do
122 out <- readProcess' "git" ["tag", "--list", "--points-at", "HEAD"] ""
123 out <- readProcess' "git" ["tag", "--list", "--points-at", "HEAD"] ""
123− let vs = map clean (lines out)
124+ let vs = map trimWhitespace (lines out)
124− case mapMaybe D.parseVersion' vs of
125+ case mapMaybe parseMay vs of
125 [] -> userError TagMustBeCheckedOut
126 [] -> userError TagMustBeCheckedOut
126 [x] -> return x
127 [x] -> return x
127− xs -> userError (AmbiguousVersions xs)
128+ xs -> userError (AmbiguousVersions (map snd xs))
128 where
129 where
129− clean =
130− trimWhitespace >>> dropPrefix "v"
131 trimWhitespace =
130 trimWhitespace =
132 dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
131 dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
132+ parseMay str =
133+ (str,) <$> D.parseVersion' (dropPrefix "v" str)
133 dropPrefix prefix str =
134 dropPrefix prefix str =
134 fromMaybe str (stripPrefix prefix str)
135 fromMaybe str (stripPrefix prefix str)
135
136
src/Language/PureScript/Docs/Types.hs+4
@@ -38,6 +38,7 @@ import Language.PureScript.Docs.RenderedCode as ReExports
38data Package a = Package
38data Package a = Package
39 { pkgMeta :: PackageMeta
39 { pkgMeta :: PackageMeta
40 , pkgVersion :: Version
40 , pkgVersion :: Version
41+ , pkgVersionTag :: String
41 , pkgModules :: [RenderedModule]
42 , pkgModules :: [RenderedModule]
42 , pkgBookmarks :: [Bookmark]
43 , pkgBookmarks :: [Bookmark]
43 , pkgResolvedDependencies :: [(PackageName, Version)]
44 , pkgResolvedDependencies :: [(PackageName, Version)]
@@ -56,6 +57,7 @@ verifyPackage :: GithubUser -> UploadedPackage -> VerifiedPackage
56verifyPackage verifiedUser Package{..} =
57verifyPackage verifiedUser Package{..} =
57 Package pkgMeta
58 Package pkgMeta
58 pkgVersion
59 pkgVersion
60+ pkgVersionTag
59 pkgModules
61 pkgModules
60 pkgBookmarks
62 pkgBookmarks
61 pkgResolvedDependencies
63 pkgResolvedDependencies
@@ -156,6 +158,7 @@ asPackage :: (forall e. Parse e a) -> Parse PackageError (Package a)
156asPackage uploader =
158asPackage uploader =
157 Package <$> key "packageMeta" asPackageMeta .! ErrorInPackageMeta
159 Package <$> key "packageMeta" asPackageMeta .! ErrorInPackageMeta
158 <*> key "version" asVersion
160 <*> key "version" asVersion
161+ <*> key "versionTag" asString
159 <*> key "modules" (eachInArray asRenderedModule)
162 <*> key "modules" (eachInArray asRenderedModule)
160 <*> key "bookmarks" asBookmarks .! ErrorInPackageMeta
163 <*> key "bookmarks" asBookmarks .! ErrorInPackageMeta
161 <*> key "resolvedDependencies" asResolvedDependencies
164 <*> key "resolvedDependencies" asResolvedDependencies
@@ -263,6 +266,7 @@ instance A.ToJSON a => A.ToJSON (Package a) where
263 A.object $
266 A.object $
264 [ "packageMeta" .= pkgMeta
267 [ "packageMeta" .= pkgMeta
265 , "version" .= showVersion pkgVersion
268 , "version" .= showVersion pkgVersion
269+ , "versionTag" .= pkgVersionTag
266 , "modules" .= pkgModules
270 , "modules" .= pkgModules
267 , "bookmarks" .= map (fmap (first P.runModuleName)) pkgBookmarks
271 , "bookmarks" .= map (fmap (first P.runModuleName)) pkgBookmarks
268 , "resolvedDependencies" .= assocListToJSON (T.pack . runPackageName)
272 , "resolvedDependencies" .= assocListToJSON (T.pack . runPackageName)