Skip to content

Commit 9bd56d9

Browse files
committed
Merge pull request purescript#1108 from hdgarrood/docs-add-version-tag
Add versionTag to psc-publish output
2 parents 45de2a5 + f5e790d commit 9bd56d9

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

psc-publish/Main.hs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,13 @@ preparePackage' = do
9797

9898
pkgMeta <- liftIO (Bower.decodeFile "bower.json")
9999
>>= flip catchLeft (userError . CouldntParseBowerJSON)
100-
pkgVersion <- getVersionFromGitTag
101-
pkgGithub <- getBowerInfo pkgMeta
102-
(pkgBookmarks, pkgModules) <- getModulesAndBookmarks
100+
(pkgVersionTag, pkgVersion) <- getVersionFromGitTag
101+
pkgGithub <- getBowerInfo pkgMeta
102+
(pkgBookmarks, pkgModules) <- getModulesAndBookmarks
103103

104-
let declaredDeps = map fst (bowerDependencies pkgMeta ++ bowerDevDependencies pkgMeta)
105-
pkgResolvedDependencies <- getResolvedDependencies declaredDeps
104+
let declaredDeps = map fst (bowerDependencies pkgMeta ++
105+
bowerDevDependencies pkgMeta)
106+
pkgResolvedDependencies <- getResolvedDependencies declaredDeps
106107

107108
let pkgUploader = D.NotYetKnown
108109

@@ -117,19 +118,19 @@ getModulesAndBookmarks = do
117118
renderModules bookmarks modules =
118119
return (bookmarks, map D.renderModule modules)
119120

120-
getVersionFromGitTag :: PrepareM Version
121+
getVersionFromGitTag :: PrepareM (String, Version)
121122
getVersionFromGitTag = do
122123
out <- readProcess' "git" ["tag", "--list", "--points-at", "HEAD"] ""
123-
let vs = map clean (lines out)
124-
case mapMaybe D.parseVersion' vs of
124+
let vs = map trimWhitespace (lines out)
125+
case mapMaybe parseMay vs of
125126
[] -> userError TagMustBeCheckedOut
126127
[x] -> return x
127-
xs -> userError (AmbiguousVersions xs)
128+
xs -> userError (AmbiguousVersions (map snd xs))
128129
where
129-
clean =
130-
trimWhitespace >>> dropPrefix "v"
131130
trimWhitespace =
132131
dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
132+
parseMay str =
133+
(str,) <$> D.parseVersion' (dropPrefix "v" str)
133134
dropPrefix prefix str =
134135
fromMaybe str (stripPrefix prefix str)
135136

src/Language/PureScript/Docs/Types.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import Language.PureScript.Docs.RenderedCode as ReExports
3838
data Package a = Package
3939
{ pkgMeta :: PackageMeta
4040
, pkgVersion :: Version
41+
, pkgVersionTag :: String
4142
, pkgModules :: [RenderedModule]
4243
, pkgBookmarks :: [Bookmark]
4344
, pkgResolvedDependencies :: [(PackageName, Version)]
@@ -56,6 +57,7 @@ verifyPackage :: GithubUser -> UploadedPackage -> VerifiedPackage
5657
verifyPackage verifiedUser Package{..} =
5758
Package pkgMeta
5859
pkgVersion
60+
pkgVersionTag
5961
pkgModules
6062
pkgBookmarks
6163
pkgResolvedDependencies
@@ -156,6 +158,7 @@ asPackage :: (forall e. Parse e a) -> Parse PackageError (Package a)
156158
asPackage uploader =
157159
Package <$> key "packageMeta" asPackageMeta .! ErrorInPackageMeta
158160
<*> key "version" asVersion
161+
<*> key "versionTag" asString
159162
<*> key "modules" (eachInArray asRenderedModule)
160163
<*> key "bookmarks" asBookmarks .! ErrorInPackageMeta
161164
<*> key "resolvedDependencies" asResolvedDependencies
@@ -263,6 +266,7 @@ instance A.ToJSON a => A.ToJSON (Package a) where
263266
A.object $
264267
[ "packageMeta" .= pkgMeta
265268
, "version" .= showVersion pkgVersion
269+
, "versionTag" .= pkgVersionTag
266270
, "modules" .= pkgModules
267271
, "bookmarks" .= map (fmap (first P.runModuleName)) pkgBookmarks
268272
, "resolvedDependencies" .= assocListToJSON (T.pack . runPackageName)

0 commit comments

Comments
 (0)