on master help sign in
Switch to Elm.Version and Data.Utf8 in in Elm.Diff and Elm.Publish
8db2300Evan Czaplicki
builder/src/Elm/Diff.hs+12−11
@@ -23,6 +23,7 @@ import qualified Elm.Package as Pkg
23import qualified Elm.Project as Project
23import qualified Elm.Project as Project
24import qualified Elm.Project.Json as Project
24import qualified Elm.Project.Json as Project
25import qualified Elm.Project.Summary as Summary
25import qualified Elm.Project.Summary as Summary
26+import qualified Elm.Version as V
26import Reporting.Doc ((<>), (<+>))
27import Reporting.Doc ((<>), (<+>))
27import qualified Reporting.Doc as D
28import qualified Reporting.Doc as D
28import qualified Reporting.Exit as Exit
29import qualified Reporting.Exit as Exit
@@ -38,9 +39,9 @@ import qualified Reporting.Task as Task
38
39
39data Args
40data Args
40 = CodeVsLatest
41 = CodeVsLatest
41− | CodeVsExactly Pkg.Version
42+ | CodeVsExactly V.Version
42− | LocalInquiry Pkg.Version Pkg.Version
43+ | LocalInquiry V.Version V.Version
43− | GlobalInquiry Pkg.Name Pkg.Version Pkg.Version
44+ | GlobalInquiry Pkg.Name V.Version V.Version
44
45
45
46
46diff :: Args -> Task.Task ()
47diff :: Args -> Task.Task ()
@@ -85,7 +86,7 @@ throw exit =
85-- DIFF HELPERS
86-- DIFF HELPERS
86
87
87
88
88−getDocs :: Pkg.Name -> [Pkg.Version] -> Pkg.Version -> Task.Task Docs.Documentation
89+getDocs :: Pkg.Name -> [V.Version] -> V.Version -> Task.Task Docs.Documentation
89getDocs name allVersions version =
90getDocs name allVersions version =
90 if elem version allVersions then
91 if elem version allVersions then
91 Cache.getDocs name version
92 Cache.getDocs name version
@@ -93,7 +94,7 @@ getDocs name allVersions version =
93 throw $ E.UnknownVersion name version allVersions
94 throw $ E.UnknownVersion name version allVersions
94
95
95
96
96−getPackageInfo :: Task.Task (Summary.Summary, Pkg.Name, [Pkg.Version])
97+getPackageInfo :: Task.Task (Summary.Summary, Pkg.Name, [V.Version])
97getPackageInfo =
98getPackageInfo =
98 do summary <- Project.getRoot
99 do summary <- Project.getRoot
99 case Summary._project summary of
100 case Summary._project summary of
@@ -134,7 +135,7 @@ toDoc localizer changes@(PackageChanges added changed removed) =
134 else
135 else
135 let
136 let
136 magDoc =
137 magDoc =
137− D.fromString (Diff.magnitudeToString (Diff.toMagnitude changes))
138+ D.fromChars (Diff.magnitudeToString (Diff.toMagnitude changes))
138
139
139 header =
140 header =
140 "This is a" <+> D.green magDoc <+> "change."
141 "This is a" <+> D.green magDoc <+> "change."
@@ -142,13 +143,13 @@ toDoc localizer changes@(PackageChanges added changed removed) =
142 addedChunk =
143 addedChunk =
143 if null added then [] else
144 if null added then [] else
144 [ Chunk "ADDED MODULES" MINOR $
145 [ Chunk "ADDED MODULES" MINOR $
145− D.vcat $ map (D.fromString . ModuleName.nameToString) added
146+ D.vcat $ map (D.fromUtf8 . ModuleName.nameToString) added
146 ]
147 ]
147
148
148 removedChunk =
149 removedChunk =
149 if null removed then [] else
150 if null removed then [] else
150 [ Chunk "REMOVED MODULES" MAJOR $
151 [ Chunk "REMOVED MODULES" MAJOR $
151− D.vcat $ map (D.fromString . ModuleName.nameToString) removed
152+ D.vcat $ map (D.fromUtf8 . ModuleName.nameToString) removed
152 ]
153 ]
153
154
154 chunks =
155 chunks =
@@ -172,7 +173,7 @@ chunkToDoc (Chunk title magnitude details) =
172 Diff.magnitudeToString magnitude
173 Diff.magnitudeToString magnitude
173
174
174 header =
175 header =
175− "----" <+> D.fromString title <+> "-" <+> D.fromString magDoc <+> "----"
176+ "----" <+> D.fromChars title <+> "-" <+> D.fromChars magDoc <+> "----"
176 in
177 in
177 D.vcat
178 D.vcat
178 [ D.dullcyan header
179 [ D.dullcyan header
@@ -201,7 +202,7 @@ changesToChunk localizer (name, changes@(ModuleChanges unions aliases values bin
201 (binopAdd, binopChange, binopRemove) =
202 (binopAdd, binopChange, binopRemove) =
202 changesToDocTriple (binopToDoc localizer) binops
203 changesToDocTriple (binopToDoc localizer) binops
203 in
204 in
204− Chunk (Name.toString name) magnitude $
205+ Chunk (Name.toChars name) magnitude $
205 D.vcat $ List.intersperse "" $ Maybe.catMaybes $
206 D.vcat $ List.intersperse "" $ Maybe.catMaybes $
206 [ changesToDoc "Added" unionAdd aliasAdd valueAdd binopAdd
207 [ changesToDoc "Added" unionAdd aliasAdd valueAdd binopAdd
207 , changesToDoc "Removed" unionRemove aliasRemove valueRemove binopRemove
208 , changesToDoc "Removed" unionRemove aliasRemove valueRemove binopRemove
@@ -235,7 +236,7 @@ changesToDoc categoryName unions aliases values binops =
235
236
236 else
237 else
237 Just $ D.vcat $
238 Just $ D.vcat $
238− D.fromString categoryName <> ":" : unions ++ aliases ++ binops ++ values
239+ D.fromChars categoryName <> ":" : unions ++ aliases ++ binops ++ values
239
240
240
241
241unionToDoc :: L.Localizer -> Name.Name -> Docs.Union -> D.Doc
242unionToDoc :: L.Localizer -> Name.Name -> Docs.Union -> D.Doc
builder/src/Elm/Publish.hs+11−11
@@ -6,7 +6,7 @@ import Control.Monad (when)
6import Control.Monad.Except (catchError, runExceptT)
6import Control.Monad.Except (catchError, runExceptT)
7import Control.Monad.Trans (liftIO, lift)
7import Control.Monad.Trans (liftIO, lift)
8import qualified Data.List as List
8import qualified Data.List as List
9−import qualified Data.Text as Text
9+import qualified Data.Utf8 as Utf8
10import qualified System.Directory as Dir
10import qualified System.Directory as Dir
11import qualified System.Exit as Exit
11import qualified System.Exit as Exit
12import System.FilePath ((</>))
12import System.FilePath ((</>))
@@ -19,9 +19,9 @@ import qualified Deps.Website as Website
19import qualified Elm.Bump as Bump
19import qualified Elm.Bump as Bump
20import qualified Elm.Docs as Docs
20import qualified Elm.Docs as Docs
21import qualified Elm.Package as Pkg
21import qualified Elm.Package as Pkg
22−import qualified Elm.Project as Project
23import qualified Elm.Project.Json as Project
22import qualified Elm.Project.Json as Project
24import qualified Elm.Project.Summary as Summary
23import qualified Elm.Project.Summary as Summary
24+import qualified Elm.Version as V
25import qualified Reporting.Exit as Exit
25import qualified Reporting.Exit as Exit
26import qualified Reporting.Exit.Publish as E
26import qualified Reporting.Exit.Publish as E
27import qualified Reporting.Progress as Progress
27import qualified Reporting.Progress as Progress
@@ -71,9 +71,9 @@ throw exit =
71-- VERIFY SUMMARY
71-- VERIFY SUMMARY
72
72
73
73
74−badSummary :: Text.Text -> Bool
74+badSummary :: Utf8.String -> Bool
75badSummary summary =
75badSummary summary =
76− Text.null summary || Project.defaultSummary == summary
76+ Utf8.isEmpty summary || Project.defaultSummary == summary
77
77
78
78
79noExposed :: Project.Exposed -> Bool
79noExposed :: Project.Exposed -> Bool
@@ -124,7 +124,7 @@ verifyLicense root =
124-- VERIFY GITHUB TAG
124-- VERIFY GITHUB TAG
125
125
126
126
127−verifyTag :: Pkg.Name -> Pkg.Version -> Task.Task String
127+verifyTag :: Pkg.Name -> V.Version -> Task.Task String
128verifyTag name version =
128verifyTag name version =
129 phase (Progress.CheckTag version) $
129 phase (Progress.CheckTag version) $
130 Website.githubCommit name version `catchError` \_ ->
130 Website.githubCommit name version `catchError` \_ ->
@@ -135,7 +135,7 @@ verifyTag name version =
135-- VERIFY NO LOCAL CHANGES SINCE TAG
135-- VERIFY NO LOCAL CHANGES SINCE TAG
136
136
137
137
138−verifyNoChanges :: String -> Pkg.Version -> Task.Task ()
138+verifyNoChanges :: String -> V.Version -> Task.Task ()
139verifyNoChanges commitHash version =
139verifyNoChanges commitHash version =
140 phase Progress.CheckChanges $
140 phase Progress.CheckChanges $
141 do maybeGit <- liftIO $ Dir.findExecutable "git"
141 do maybeGit <- liftIO $ Dir.findExecutable "git"
@@ -160,7 +160,7 @@ verifyNoChanges commitHash version =
160-- VERIFY THAT ZIP BUILDS / COMPUTE HASH
160-- VERIFY THAT ZIP BUILDS / COMPUTE HASH
161
161
162
162
163−verifyZip :: Pkg.Name -> Pkg.Version -> Task.Task Website.Sha
163+verifyZip :: Pkg.Name -> V.Version -> Task.Task Website.Sha
164verifyZip name version =
164verifyZip name version =
165 withTempDir $ \dir ->
165 withTempDir $ \dir ->
166 do hash <- phase Progress.CheckDownload $
166 do hash <- phase Progress.CheckDownload $
@@ -169,7 +169,7 @@ verifyZip name version =
169 phase Progress.CheckBuild $
169 phase Progress.CheckBuild $
170 do runner <- Task.getSilentRunner
170 do runner <- Task.getSilentRunner
171 result <- liftIO $ Dir.withCurrentDirectory dir $ runner $
171 result <- liftIO $ Dir.withCurrentDirectory dir $ runner $
172− Task.silently $ Project.generateDocs =<< Project.getRoot
172+ Task.silently $ error "TODO Project.generateDocs =<< Project.getRoot"
173 either Task.throw (\_ -> return ()) result
173 either Task.throw (\_ -> return ()) result
174
174
175 return hash
175 return hash
@@ -204,7 +204,7 @@ phase publishPhase task =
204-- VERIFY VERSION
204-- VERIFY VERSION
205
205
206
206
207−verifyVersion :: Pkg.Name -> Pkg.Version -> Docs.Documentation -> Maybe [Pkg.Version] -> Task.Task ()
207+verifyVersion :: Pkg.Name -> V.Version -> Docs.Documentation -> Maybe [V.Version] -> Task.Task ()
208verifyVersion name version docs maybePublishedVersions =
208verifyVersion name version docs maybePublishedVersions =
209 let
209 let
210 reportBumpPhase bumpPhase =
210 reportBumpPhase bumpPhase =
@@ -213,7 +213,7 @@ verifyVersion name version docs maybePublishedVersions =
213 do reportBumpPhase Progress.StatedVersion
213 do reportBumpPhase Progress.StatedVersion
214 case maybePublishedVersions of
214 case maybePublishedVersions of
215 Nothing ->
215 Nothing ->
216− if version == Pkg.initialVersion then
216+ if version == V.one then
217 reportBumpPhase Progress.GoodStart
217 reportBumpPhase Progress.GoodStart
218 else
218 else
219 throw (E.NotInitialVersion version)
219 throw (E.NotInitialVersion version)
@@ -230,7 +230,7 @@ verifyVersion name version docs maybePublishedVersions =
230 Task.throw exit
230 Task.throw exit
231
231
232
232
233−verifyBump :: Pkg.Name -> Pkg.Version -> Docs.Documentation -> [Pkg.Version] -> Task.Task (Pkg.Version, Diff.Magnitude)
233+verifyBump :: Pkg.Name -> V.Version -> Docs.Documentation -> [V.Version] -> Task.Task (V.Version, Diff.Magnitude)
234verifyBump name statedVersion newDocs publishedVersions =
234verifyBump name statedVersion newDocs publishedVersions =
235 let
235 let
236 possibleBumps =
236 possibleBumps =