on master help sign in
move toPossibleBumps to separate module for use in Publish
aa46422Evan Czaplicki
builder/src/Deps/Bump.hsnew file+37
@@ -0,0 +1,37 @@
1+module Deps.Bump
2+ ( getPossibilities
3+ )
4+ where
5+
6+
7+import qualified Data.List as List
8+
9+import qualified Deps.Registry as Registry
10+import qualified Elm.Magnitude as M
11+import qualified Elm.Version as V
12+
13+
14+
15+-- GET POSSIBILITIES
16+
17+
18+getPossibilities :: Registry.KnownVersions -> [(V.Version, V.Version, M.Magnitude)]
19+getPossibilities (Registry.KnownVersions latest previous) =
20+ let
21+ allVersions = reverse (latest:previous)
22+ minorPoints = map last (List.groupBy sameMajor allVersions)
23+ patchPoints = map last (List.groupBy sameMinor allVersions)
24+ in
25+ (latest, V.bumpMajor latest, M.MAJOR)
26+ : map (\v -> (v, V.bumpMinor v, M.MINOR)) minorPoints
27+ ++ map (\v -> (v, V.bumpPatch v, M.PATCH)) patchPoints
28+
29+
30+sameMajor :: V.Version -> V.Version -> Bool
31+sameMajor (V.Version major1 _ _) (V.Version major2 _ _) =
32+ major1 == major2
33+
34+
35+sameMinor :: V.Version -> V.Version -> Bool
36+sameMinor (V.Version major1 minor1 _) (V.Version major2 minor2 _) =
37+ major1 == major2 && minor1 == minor2
terminal/src/Bump.hs+2−28
@@ -1,13 +1,13 @@
1{-# LANGUAGE OverloadedStrings #-}
1{-# LANGUAGE OverloadedStrings #-}
2module Bump
2module Bump
3 ( run
3 ( run
4− , toPossibleBumps
5 )
4 )
6 where
5 where
7
6
8
7
9import qualified Data.List as List
8import qualified Data.List as List
10
9
10+import qualified Deps.Bump as Bump
11import qualified Deps.Diff as Diff
11import qualified Deps.Diff as Diff
12import qualified Deps.Registry as Registry
12import qualified Deps.Registry as Registry
13import qualified Elm.Details as Details
13import qualified Elm.Details as Details
@@ -83,7 +83,7 @@ bump env@(Env root _ _ registry outline) =
83 Just knownVersions ->
83 Just knownVersions ->
84 let
84 let
85 bumpableVersions =
85 bumpableVersions =
86− map (\(old, _, _) -> old) (toPossibleBumps knownVersions)
86+ map (\(old, _, _) -> old) (Bump.getPossibilities knownVersions)
87 in
87 in
88 if elem vsn bumpableVersions
88 if elem vsn bumpableVersions
89 then suggestVersion env pkgOutline
89 then suggestVersion env pkgOutline
@@ -96,32 +96,6 @@ bump env@(Env root _ _ registry outline) =
96
96
97
97
98
98
99−-- VALID BUMPS
100−
101−
102−toPossibleBumps :: Registry.KnownVersions -> [(V.Version, V.Version, M.Magnitude)]
103−toPossibleBumps (Registry.KnownVersions latest previous) =
104− let
105− allVersions = reverse (latest:previous)
106− minorPoints = map last (List.groupBy sameMajor allVersions)
107− patchPoints = map last (List.groupBy sameMinor allVersions)
108− in
109− (latest, V.bumpMajor latest, M.MAJOR)
110− : map (\v -> (v, V.bumpMinor v, M.MINOR)) minorPoints
111− ++ map (\v -> (v, V.bumpPatch v, M.PATCH)) patchPoints
112−
113−
114−sameMajor :: V.Version -> V.Version -> Bool
115−sameMajor (V.Version major1 _ _) (V.Version major2 _ _) =
116− major1 == major2
117−
118−
119−sameMinor :: V.Version -> V.Version -> Bool
120−sameMinor (V.Version major1 minor1 _) (V.Version major2 minor2 _) =
121− major1 == major2 && minor1 == minor2
122−
123−
124−
125-- CHECK NEW PACKAGE
99-- CHECK NEW PACKAGE
126
100
127
101