on master help sign in
Allow base-4.18 in uuid-types
0ec275fOleg Grenrus
.github/workflows/haskell-ci-bench.yml+20−14
@@ -8,9 +8,9 @@
8#
8#
9# For more information, see https://github.com/haskell-CI/haskell-ci
9# For more information, see https://github.com/haskell-CI/haskell-ci
10#
10#
11−# version: 0.15.20220826
11+# version: 0.15.20230313
12#
12#
13−# REGENDATA ("0.15.20220826",["github","--project","cabal.bench.project","-o",".github/workflows/haskell-ci-bench.yml","--github-action-name","Benchmarks"])
13+# REGENDATA ("0.15.20230313",["github","--project","cabal.bench.project","-o",".github/workflows/haskell-ci-bench.yml","--github-action-name","Benchmarks"])
14#
14#
15name: Benchmarks
15name: Benchmarks
16on:
16on:
@@ -32,14 +32,14 @@ jobs:
32 strategy:
32 strategy:
33 matrix:
33 matrix:
34 include:
34 include:
35− - compiler: ghc-9.4.2
35+ - compiler: ghc-9.4.4
36 compilerKind: ghc
36 compilerKind: ghc
37− compilerVersion: 9.4.2
37+ compilerVersion: 9.4.4
38 setup-method: ghcup
38 setup-method: ghcup
39 allow-failure: false
39 allow-failure: false
40− - compiler: ghc-9.2.4
40+ - compiler: ghc-9.2.7
41 compilerKind: ghc
41 compilerKind: ghc
42− compilerVersion: 9.2.4
42+ compilerVersion: 9.2.7
43 setup-method: ghcup
43 setup-method: ghcup
44 allow-failure: false
44 allow-failure: false
45 - compiler: ghc-9.0.2
45 - compiler: ghc-9.0.2
@@ -88,7 +88,7 @@ jobs:
88 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
88 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
89 chmod a+x "$HOME/.ghcup/bin/ghcup"
89 chmod a+x "$HOME/.ghcup/bin/ghcup"
90 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
90 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
91− "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
91+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
92 else
92 else
93 apt-add-repository -y 'ppa:hvr/ghc'
93 apt-add-repository -y 'ppa:hvr/ghc'
94 apt-get update
94 apt-get update
@@ -96,7 +96,7 @@ jobs:
96 mkdir -p "$HOME/.ghcup/bin"
96 mkdir -p "$HOME/.ghcup/bin"
97 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
97 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
98 chmod a+x "$HOME/.ghcup/bin/ghcup"
98 chmod a+x "$HOME/.ghcup/bin/ghcup"
99− "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
99+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
100 fi
100 fi
101 env:
101 env:
102 HCKIND: ${{ matrix.compilerKind }}
102 HCKIND: ${{ matrix.compilerKind }}
@@ -114,13 +114,13 @@ jobs:
114 echo "HC=$HC" >> "$GITHUB_ENV"
114 echo "HC=$HC" >> "$GITHUB_ENV"
115 echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
115 echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
116 echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
116 echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
117− echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
117+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
118 else
118 else
119 HC=$HCDIR/bin/$HCKIND
119 HC=$HCDIR/bin/$HCKIND
120 echo "HC=$HC" >> "$GITHUB_ENV"
120 echo "HC=$HC" >> "$GITHUB_ENV"
121 echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
121 echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
122 echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
122 echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
123− echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
123+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
124 fi
124 fi
125
125
126 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
126 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
@@ -179,7 +179,7 @@ jobs:
179 chmod a+x $HOME/.cabal/bin/cabal-plan
179 chmod a+x $HOME/.cabal/bin/cabal-plan
180 cabal-plan --version
180 cabal-plan --version
181 - name: checkout
181 - name: checkout
182− uses: actions/checkout@v2
182+ uses: actions/checkout@v3
183 with:
183 with:
184 path: source
184 path: source
185 - name: initial cabal.project for sdist
185 - name: initial cabal.project for sdist
@@ -214,8 +214,8 @@ jobs:
214 run: |
214 run: |
215 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
215 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
216 cabal-plan
216 cabal-plan
217− - name: cache
217+ - name: restore cache
218− uses: actions/cache@v2
218+ uses: actions/cache/restore@v3
219 with:
219 with:
220 key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
220 key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
221 path: ~/.cabal/store
221 path: ~/.cabal/store
@@ -236,7 +236,7 @@ jobs:
236 ${CABAL} -vnormal check
236 ${CABAL} -vnormal check
237 - name: haddock
237 - name: haddock
238 run: |
238 run: |
239− $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
239+ $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
240 - name: unconstrained build
240 - name: unconstrained build
241 run: |
241 run: |
242 rm -f cabal.project.local
242 rm -f cabal.project.local
@@ -252,3 +252,9 @@ jobs:
252 run: |
252 run: |
253 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' --dependencies-only -j2 all
253 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' --dependencies-only -j2 all
254 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' all
254 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' all
255+ - name: save cache
256+ uses: actions/cache/save@v3
257+ if: always()
258+ with:
259+ key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
260+ path: ~/.cabal/store
.github/workflows/haskell-ci.yml+31−20
@@ -8,9 +8,9 @@
8#
8#
9# For more information, see https://github.com/haskell-CI/haskell-ci
9# For more information, see https://github.com/haskell-CI/haskell-ci
10#
10#
11−# version: 0.15.20220826
11+# version: 0.15.20230313
12#
12#
13−# REGENDATA ("0.15.20220826",["github","cabal.project"])
13+# REGENDATA ("0.15.20230313",["github","cabal.project"])
14#
14#
15name: Haskell-CI
15name: Haskell-CI
16on:
16on:
@@ -32,14 +32,19 @@ jobs:
32 strategy:
32 strategy:
33 matrix:
33 matrix:
34 include:
34 include:
35− - compiler: ghc-9.4.2
35+ - compiler: ghc-9.6.1
36 compilerKind: ghc
36 compilerKind: ghc
37− compilerVersion: 9.4.2
37+ compilerVersion: 9.6.1
38 setup-method: ghcup
38 setup-method: ghcup
39 allow-failure: false
39 allow-failure: false
40− - compiler: ghc-9.2.4
40+ - compiler: ghc-9.4.4
41 compilerKind: ghc
41 compilerKind: ghc
42− compilerVersion: 9.2.4
42+ compilerVersion: 9.4.4
43+ setup-method: ghcup
44+ allow-failure: false
45+ - compiler: ghc-9.2.7
46+ compilerKind: ghc
47+ compilerVersion: 9.2.7
43 setup-method: ghcup
48 setup-method: ghcup
44 allow-failure: false
49 allow-failure: false
45 - compiler: ghc-9.0.2
50 - compiler: ghc-9.0.2
@@ -108,7 +113,7 @@ jobs:
108 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
113 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
109 chmod a+x "$HOME/.ghcup/bin/ghcup"
114 chmod a+x "$HOME/.ghcup/bin/ghcup"
110 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
115 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
111− "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
116+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
112 else
117 else
113 apt-add-repository -y 'ppa:hvr/ghc'
118 apt-add-repository -y 'ppa:hvr/ghc'
114 apt-get update
119 apt-get update
@@ -116,7 +121,7 @@ jobs:
116 mkdir -p "$HOME/.ghcup/bin"
121 mkdir -p "$HOME/.ghcup/bin"
117 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
122 curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup"
118 chmod a+x "$HOME/.ghcup/bin/ghcup"
123 chmod a+x "$HOME/.ghcup/bin/ghcup"
119− "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
124+ "$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
120 fi
125 fi
121 env:
126 env:
122 HCKIND: ${{ matrix.compilerKind }}
127 HCKIND: ${{ matrix.compilerKind }}
@@ -134,13 +139,13 @@ jobs:
134 echo "HC=$HC" >> "$GITHUB_ENV"
139 echo "HC=$HC" >> "$GITHUB_ENV"
135 echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
140 echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
136 echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
141 echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
137− echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
142+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
138 else
143 else
139 HC=$HCDIR/bin/$HCKIND
144 HC=$HCDIR/bin/$HCKIND
140 echo "HC=$HC" >> "$GITHUB_ENV"
145 echo "HC=$HC" >> "$GITHUB_ENV"
141 echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
146 echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
142 echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
147 echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
143− echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
148+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
144 fi
149 fi
145
150
146 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
151 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
@@ -199,14 +204,14 @@ jobs:
199 chmod a+x $HOME/.cabal/bin/cabal-plan
204 chmod a+x $HOME/.cabal/bin/cabal-plan
200 cabal-plan --version
205 cabal-plan --version
201 - name: checkout
206 - name: checkout
202− uses: actions/checkout@v2
207+ uses: actions/checkout@v3
203 with:
208 with:
204 path: source
209 path: source
205 - name: initial cabal.project for sdist
210 - name: initial cabal.project for sdist
206 run: |
211 run: |
207 touch cabal.project
212 touch cabal.project
208 echo "packages: $GITHUB_WORKSPACE/source/uuid-types" >> cabal.project
213 echo "packages: $GITHUB_WORKSPACE/source/uuid-types" >> cabal.project
209− echo "packages: $GITHUB_WORKSPACE/source/uuid" >> cabal.project
214+ if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/uuid" >> cabal.project ; fi
210 cat cabal.project
215 cat cabal.project
211 - name: sdist
216 - name: sdist
212 run: |
217 run: |
@@ -226,11 +231,11 @@ jobs:
226 touch cabal.project
231 touch cabal.project
227 touch cabal.project.local
232 touch cabal.project.local
228 echo "packages: ${PKGDIR_uuid_types}" >> cabal.project
233 echo "packages: ${PKGDIR_uuid_types}" >> cabal.project
229− echo "packages: ${PKGDIR_uuid}" >> cabal.project
234+ if [ $((HCNUMVER < 90600)) -ne 0 ] ; then echo "packages: ${PKGDIR_uuid}" >> cabal.project ; fi
230 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package uuid-types" >> cabal.project ; fi
235 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package uuid-types" >> cabal.project ; fi
231 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
236 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
232− if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package uuid" >> cabal.project ; fi
237+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90600)) -ne 0 ] ; then echo "package uuid" >> cabal.project ; fi
233− if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
238+ if [ $((HCNUMVER >= 80200 && HCNUMVER < 90600)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
234 cat >> cabal.project <<EOF
239 cat >> cabal.project <<EOF
235 EOF
240 EOF
236 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(uuid|uuid-types)$/; }' >> cabal.project.local
241 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(uuid|uuid-types)$/; }' >> cabal.project.local
@@ -240,8 +245,8 @@ jobs:
240 run: |
245 run: |
241 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
246 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
242 cabal-plan
247 cabal-plan
243− - name: cache
248+ - name: restore cache
244− uses: actions/cache@v2
249+ uses: actions/cache/restore@v3
245 with:
250 with:
246 key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
251 key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
247 path: ~/.cabal/store
252 path: ~/.cabal/store
@@ -263,11 +268,11 @@ jobs:
263 run: |
268 run: |
264 cd ${PKGDIR_uuid_types} || false
269 cd ${PKGDIR_uuid_types} || false
265 ${CABAL} -vnormal check
270 ${CABAL} -vnormal check
266− cd ${PKGDIR_uuid} || false
271+ if [ $((HCNUMVER < 90600)) -ne 0 ] ; then cd ${PKGDIR_uuid} || false ; fi
267− ${CABAL} -vnormal check
272+ if [ $((HCNUMVER < 90600)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
268 - name: haddock
273 - name: haddock
269 run: |
274 run: |
270− $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
275+ $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
271 - name: unconstrained build
276 - name: unconstrained build
272 run: |
277 run: |
273 rm -f cabal.project.local
278 rm -f cabal.project.local
@@ -283,3 +288,9 @@ jobs:
283 run: |
288 run: |
284 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' --dependencies-only -j2 all
289 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' --dependencies-only -j2 all
285 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' all
290 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --constraint='random==1.1.*' all
291+ - name: save cache
292+ uses: actions/cache/save@v3
293+ if: always()
294+ with:
295+ key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
296+ path: ~/.cabal/store
uuid-bench/uuid-bench.cabal+2−2
@@ -21,8 +21,8 @@ tested-with:
21 || ==8.8.4
21 || ==8.8.4
22 || ==8.10.7
22 || ==8.10.7
23 || ==9.0.2
23 || ==9.0.2
24− || ==9.2.4
24+ || ==9.2.7
25− || ==9.4.2
25+ || ==9.4.4
26
26
27synopsis: UUID benchmarks
27synopsis: UUID benchmarks
28description:
28description:
uuid-types/uuid-types.cabal+5−4
@@ -1,7 +1,7 @@
1cabal-version: 1.12
1cabal-version: 1.12
2name: uuid-types
2name: uuid-types
3version: 1.0.5
3version: 1.0.5
4−x-revision: 3
4+x-revision: 4
5copyright:
5copyright:
6 (c) 2017-2018 Herbert Valerio Riedel
6 (c) 2017-2018 Herbert Valerio Riedel
7 (c) 2008-2014 Antoine Latter
7 (c) 2008-2014 Antoine Latter
@@ -24,8 +24,9 @@ tested-with:
24 || ==8.8.4
24 || ==8.8.4
25 || ==8.10.7
25 || ==8.10.7
26 || ==9.0.2
26 || ==9.0.2
27− || ==9.2.4
27+ || ==9.2.7
28− || ==9.4.2
28+ || ==9.4.4
29+ || ==9.6.1
29
30
30synopsis: Type definitions for Universally Unique Identifiers
31synopsis: Type definitions for Universally Unique Identifiers
31description:
32description:
@@ -55,7 +56,7 @@ library
55 , deepseq >=1.3.0.0 && <1.5
56 , deepseq >=1.3.0.0 && <1.5
56 , hashable >=1.2.7.0 && <1.5
57 , hashable >=1.2.7.0 && <1.5
57 , random >=1.1 && <1.3
58 , random >=1.1 && <1.3
58− , template-haskell >=2.7.0.0 && <2.20
59+ , template-haskell >=2.7.0.0 && <2.21
59 , text >=1.2.3.0 && <1.3 || >=2.0 && <2.1
60 , text >=1.2.3.0 && <1.3 || >=2.0 && <2.1
60
61
61 exposed-modules: Data.UUID.Types
62 exposed-modules: Data.UUID.Types
uuid/uuid.cabal+2−2
@@ -21,8 +21,8 @@ tested-with:
21 || ==8.8.4
21 || ==8.8.4
22 || ==8.10.7
22 || ==8.10.7
23 || ==9.0.2
23 || ==9.0.2
24− || ==9.2.4
24+ || ==9.2.7
25− || ==9.4.2
25+ || ==9.4.4
26
26
27synopsis:
27synopsis:
28 For creating, comparing, parsing and printing Universally Unique Identifiers
28 For creating, comparing, parsing and printing Universally Unique Identifiers