Skip to content

Commit 7257f59

Browse files
committed
Domain of CastTagname2Number extended
1 parent 7c37b54 commit 7257f59

File tree

7 files changed

+44
-663
lines changed

7 files changed

+44
-663
lines changed

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,10 @@ aplcore
22
/Dist/
33
CONTINUE.dws
44
conga.crash
5-
personal_access_token.txt
5+
personal_access_token.txt
6+
/packages/*
7+
!/packages/apl-dependencies.txt
8+
!/packages/apl-buildlist.json
9+
/packages_dev/*
10+
!/packages_dev/apl-dependencies.txt
11+
!/packages_dev/apl-buildlist.json

APLSource/GitHubAPIv3.aplc

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010

1111
∇ r←Version
1212
:Access Public Shared
13-
r←'GitHubAPIv3' '1.0.0+24' '2020-06-06'
13+
r←'GitHubAPIv3' '1.0.1' '2023-08-28'
1414
1515

1616
∇ History
1717
:Access Public Shared
18+
⍝ * 1.0.1
19+
⍝ * Domain of the function `CastTagname2Number` extended: Major and minor nmber might both carry 3 digits,
20+
⍝ while a build number might carry up to 5 digits.
1821
⍝ * 1.0.0
1922
⍝ * This release comes with several breaking changes due to a re-design:
2023
⍝ 1. It does not depend on .NET anymore, meaning is works on Linux and Mac-OS without .NET
@@ -24,10 +27,11 @@
2427
⍝ 3. `GetAllReleases` now returns by default a vector of character vectors with the versions.
2528
⍝ The newly introduced optional left argument `verbose` can be used to get the full data instead.
2629
⍝ 4. The `CheckForUpdate` now returns a character vector rather than a Boolean, see there
27-
⍝ 5. `GetAllEndpoints` now returns a two-column matrix
30+
⍝ 5. `GetAllEndpoints` now requires a Boolean right argument. If this is a 0 a two-column matrix is
31+
⍝ returned, though by passing a 1 as ⍺ ("verbose") one can still get the JSON objects as namespaces.
2832
⍝ 6. The `regEx` property was removed because it is not required anymore
2933
⍝ 7. `PutTopics` removed
30-
⍝ * There is now a property `personal_access_token` which when not empty is used to authenticate requests.
34+
⍝ * There is now a property "personal_access_token" which when not empty is used to authenticate requests.
3135
⍝ * This version works cross-platform **without** depending on .NET.
3236
⍝ * Bug fixes
3337
⍝ * Package config was faulty (source). Functionality was not affected by this bug.
@@ -188,11 +192,11 @@
188192
⍝ Assumptions:
189193
⍝ * `text` may or may not start with a non-digit. All leading non-digit characters are ignored.\\
190194
⍝ Therefore both `1.2.3` and `v.1.2.3` are valid input.
191-
⍝ * No part is allowed to start with a zero followd by a non-zero digit. Therefore 1.0.0 is valid input but
195+
⍝ * No part is allowed to start with a zero followed by a non-zero digit. Therefore 1.0.0 is valid input but
192196
⍝ 01.2.3, 1.02.3 and 1.2.03 are not.
193197
⍝ * The remaining `text` must consist of nothing but digits and dots.
194-
⍝ * The first two numbers ("major" and "minor") must not be bigger than 99.
195-
⍝ * The third number ("path") must not be bigger than 999.
198+
⍝ * The first two numbers ("major" and "minor") must not be bigger than 999.
199+
⍝ * The third number ("patch") must not be bigger than 9999.
196200
⍝ * The optional last (forth) number must not be bigger than 99999.
197201
⍝ * `text` must come either with three numbers (as in `1.2.3`) or with four number (as in `1.2.3.9999`).
198202
⍝ If the tag name does not fulfil the assumptions the conversion might fail; in that case `⍬` is
@@ -213,14 +217,14 @@
213217
:AndIf 3 4∊⍨⍴bool
214218
vec←{⍵↑⍨3⌈4⌊⍴⍵}↑vec
215219
:If 3=⍴vec
216-
:If ∧/100 100 1000>vec
217-
:AndIf 0=number←100 100 1000⊥vec
220+
:If ∧/1000 1000 10000>vec
221+
:AndIf 0=number←1000 1000 10000⊥vec
218222
number←⍬
219223
:EndIf
220224
:Else
221-
:If ~∧/100 100 1000 100000>vec
225+
:If ~∧/1000 1000 10000 100000>vec
222226
number←⍬
223-
:ElseIf 0=number←100 100 1000 100000⊥vec
227+
:ElseIf 0=number←1000 1000 10000 100000⊥vec
224228
number←⍬
225229
:EndIf
226230
number÷←100000

APLSource/TestCases/Test_Misc_010.aplf

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,34 @@
33
⎕TRAP←(999 'C' '. ⍝ Deliberate error')(0 'N')
44
R←T._Failed
55

6-
→T.PassesIf 102003=##.GitHubAPIv3.CastTagname2Number'1.2.3'
7-
→T.PassesIf 1002003=##.GitHubAPIv3.CastTagname2Number'10.2.3'
8-
→T.PassesIf 1020003=##.GitHubAPIv3.CastTagname2Number'10.20.3'
9-
→T.PassesIf 1020030=##.GitHubAPIv3.CastTagname2Number'10.20.30'
10-
→T.PassesIf 102003.00001=##.GitHubAPIv3.CastTagname2Number'1.2.3.1'
11-
→T.PassesIf 102003.09999=##.GitHubAPIv3.CastTagname2Number'1.2.3.9999'
6+
→T.PassesIf 10020003=##.GitHubAPIv3.CastTagname2Number'1.2.3'
7+
→T.PassesIf 100020003=##.GitHubAPIv3.CastTagname2Number'10.2.3'
8+
→T.PassesIf 100200003=##.GitHubAPIv3.CastTagname2Number'10.20.3'
9+
→T.PassesIf 100200030=##.GitHubAPIv3.CastTagname2Number'10.20.30'
10+
→T.PassesIf 10020003.00001=##.GitHubAPIv3.CastTagname2Number'1.2.3.1'
11+
→T.PassesIf 10020003.09999=##.GitHubAPIv3.CastTagname2Number'1.2.3.9999'
1212

13-
→T.PassesIf 1000=##.GitHubAPIv3.CastTagname2Number'v0.1.0'
14-
→T.PassesIf 100000=##.GitHubAPIv3.CastTagname2Number'v1.0.0'
15-
→T.PassesIf 100000≡##.GitHubAPIv3.CastTagname2Number'1.0.0'
16-
→T.PassesIf 100000≡##.GitHubAPIv3.CastTagname2Number'1.0.0.0'
17-
→T.PassesIf 102000=##.GitHubAPIv3.CastTagname2Number'v1.2.0'
18-
→T.PassesIf 1002003=##.GitHubAPIv3.CastTagname2Number'v10.2.3'
19-
→T.PassesIf 1020003=##.GitHubAPIv3.CastTagname2Number'v10.20.3'
20-
→T.PassesIf 1020030=##.GitHubAPIv3.CastTagname2Number'v10.20.30'
21-
→T.PassesIf 102003.00001=##.GitHubAPIv3.CastTagname2Number'v1.2.3.1'
22-
→T.PassesIf 102003.09999=##.GitHubAPIv3.CastTagname2Number'v1.2.3.9999'
23-
→T.PassesIf 102003.09999=##.GitHubAPIv3.CastTagname2Number'abc1.2.3.9999'
13+
→T.PassesIf 10000=##.GitHubAPIv3.CastTagname2Number'v0.1.0'
14+
→T.PassesIf 10000000=##.GitHubAPIv3.CastTagname2Number'v1.0.0'
15+
→T.PassesIf 10000000≡##.GitHubAPIv3.CastTagname2Number'1.0.0'
16+
→T.PassesIf 10000000≡##.GitHubAPIv3.CastTagname2Number'1.0.0.0'
17+
→T.PassesIf 10020000=##.GitHubAPIv3.CastTagname2Number'v1.2.0'
18+
→T.PassesIf 100020003=##.GitHubAPIv3.CastTagname2Number'v10.2.3'
19+
→T.PassesIf 100200003=##.GitHubAPIv3.CastTagname2Number'v10.20.3'
20+
→T.PassesIf 100200030=##.GitHubAPIv3.CastTagname2Number'v10.20.30'
21+
→T.PassesIf 10020003.00001=##.GitHubAPIv3.CastTagname2Number'v1.2.3.1'
22+
→T.PassesIf 10020003.09999=##.GitHubAPIv3.CastTagname2Number'v1.2.3.9999'
23+
→T.PassesIf 10020003.09999=##.GitHubAPIv3.CastTagname2Number'abc1.2.3.9999'
2424

25-
→T.PassesIf 100000=##.GitHubAPIv3.CastTagname2Number'v1.0'
26-
→T.PassesIf 100000=##.GitHubAPIv3.CastTagname2Number'v1'
25+
→T.PassesIf 10000000=##.GitHubAPIv3.CastTagname2Number'v1.0'
26+
→T.PassesIf 10000000=##.GitHubAPIv3.CastTagname2Number'v1'
2727

2828
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'va2b3n4n5'
2929
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'99.1.2.3.4'
3030
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'v...'
31-
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'100.2.3'
32-
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.200.3'
33-
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.2.3000'
31+
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1000.2.3'
32+
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.2000.3'
33+
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.2.30000'
3434
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.2.3.123456'
3535
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'01.2.3.4'
3636
→T.PassesIf ⍬≡##.GitHubAPIv3.CastTagname2Number'1.02.3.4'

TestResults/CodeCoverage.cr

464 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)