vers 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +87 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/CONTRIBUTING.md +194 -0
- data/README.md +257 -0
- data/Rakefile +248 -0
- data/SECURITY.md +164 -0
- data/VERSION-RANGE-SPEC.rst +1009 -0
- data/lib/vers/constraint.rb +158 -0
- data/lib/vers/interval.rb +229 -0
- data/lib/vers/parser.rb +447 -0
- data/lib/vers/version.rb +338 -0
- data/lib/vers/version_range.rb +173 -0
- data/lib/vers.rb +215 -0
- data/sig/vers.rbs +4 -0
- data/test-suite-data.json +335 -0
- metadata +61 -0
data/sig/vers.rbs
ADDED
@@ -0,0 +1,335 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"description": "simple npm caret range",
|
4
|
+
"input": "^1.2.3",
|
5
|
+
"scheme": "npm",
|
6
|
+
"canonical_vers": "vers:npm/>=1.2.3|<2.0.0",
|
7
|
+
"contains": ["1.2.3", "1.5.0", "1.9.9"],
|
8
|
+
"excludes": ["1.2.2", "2.0.0", "0.9.0"],
|
9
|
+
"is_invalid": false
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"description": "npm caret range with zero major",
|
13
|
+
"input": "^0.2.3",
|
14
|
+
"scheme": "npm",
|
15
|
+
"canonical_vers": "vers:npm/>=0.2.3|<0.3.0",
|
16
|
+
"contains": ["0.2.3", "0.2.9"],
|
17
|
+
"excludes": ["0.2.2", "0.3.0", "1.0.0"],
|
18
|
+
"is_invalid": false
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"description": "npm caret range with zero major and minor",
|
22
|
+
"input": "^0.0.3",
|
23
|
+
"scheme": "npm",
|
24
|
+
"canonical_vers": "vers:npm/>=0.0.3|<0.0.4",
|
25
|
+
"contains": ["0.0.3"],
|
26
|
+
"excludes": ["0.0.2", "0.0.4", "0.1.0"],
|
27
|
+
"is_invalid": false
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"description": "simple npm tilde range",
|
31
|
+
"input": "~1.2.3",
|
32
|
+
"scheme": "npm",
|
33
|
+
"canonical_vers": "vers:npm/>=1.2.3|<1.3.0",
|
34
|
+
"contains": ["1.2.3", "1.2.9"],
|
35
|
+
"excludes": ["1.2.2", "1.3.0", "2.0.0"],
|
36
|
+
"is_invalid": false
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"description": "npm tilde range with major only",
|
40
|
+
"input": "~1",
|
41
|
+
"scheme": "npm",
|
42
|
+
"canonical_vers": "vers:npm/>=1.0.0|<2.0.0",
|
43
|
+
"contains": ["1.0.0", "1.9.9"],
|
44
|
+
"excludes": ["0.9.9", "2.0.0"],
|
45
|
+
"is_invalid": false
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"description": "npm hyphen range",
|
49
|
+
"input": "1.2.3 - 2.3.4",
|
50
|
+
"scheme": "npm",
|
51
|
+
"canonical_vers": "vers:npm/>=1.2.3|<=2.3.4",
|
52
|
+
"contains": ["1.2.3", "2.0.0", "2.3.4"],
|
53
|
+
"excludes": ["1.2.2", "2.3.5"],
|
54
|
+
"is_invalid": false
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"description": "npm OR logic with ||",
|
58
|
+
"input": "1.2.x || 2.x",
|
59
|
+
"scheme": "npm",
|
60
|
+
"canonical_vers": "vers:npm/>=1.2.0|<1.3.0,>=2.0.0|<3.0.0",
|
61
|
+
"contains": ["1.2.3", "2.1.0"],
|
62
|
+
"excludes": ["1.1.0", "1.3.0", "3.0.0"],
|
63
|
+
"is_invalid": false
|
64
|
+
},
|
65
|
+
{
|
66
|
+
"description": "npm X-range major",
|
67
|
+
"input": "1.x",
|
68
|
+
"scheme": "npm",
|
69
|
+
"canonical_vers": "vers:npm/>=1.0.0|<2.0.0",
|
70
|
+
"contains": ["1.0.0", "1.9.9"],
|
71
|
+
"excludes": ["0.9.9", "2.0.0"],
|
72
|
+
"is_invalid": false
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"description": "npm X-range minor",
|
76
|
+
"input": "1.2.x",
|
77
|
+
"scheme": "npm",
|
78
|
+
"canonical_vers": "vers:npm/>=1.2.0|<1.3.0",
|
79
|
+
"contains": ["1.2.0", "1.2.99"],
|
80
|
+
"excludes": ["1.1.9", "1.3.0"],
|
81
|
+
"is_invalid": false
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"description": "npm wildcard",
|
85
|
+
"input": "*",
|
86
|
+
"scheme": "npm",
|
87
|
+
"canonical_vers": "*",
|
88
|
+
"contains": ["0.0.1", "1.2.3", "99.99.99"],
|
89
|
+
"excludes": [],
|
90
|
+
"is_invalid": false
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"description": "npm space-separated AND constraints",
|
94
|
+
"input": ">=1.2.3 <2.0.0",
|
95
|
+
"scheme": "npm",
|
96
|
+
"canonical_vers": "vers:npm/>=1.2.3|<2.0.0",
|
97
|
+
"contains": ["1.2.3", "1.9.9"],
|
98
|
+
"excludes": ["1.2.2", "2.0.0"],
|
99
|
+
"is_invalid": false
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"description": "gem pessimistic operator patch level",
|
103
|
+
"input": "~> 1.2.3",
|
104
|
+
"scheme": "gem",
|
105
|
+
"canonical_vers": "vers:gem/>=1.2.3|<1.3.0",
|
106
|
+
"contains": ["1.2.3", "1.2.9"],
|
107
|
+
"excludes": ["1.2.2", "1.3.0"],
|
108
|
+
"is_invalid": false
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"description": "gem pessimistic operator minor level",
|
112
|
+
"input": "~> 1.2",
|
113
|
+
"scheme": "gem",
|
114
|
+
"canonical_vers": "vers:gem/>=1.2.0|<2.0.0",
|
115
|
+
"contains": ["1.2.0", "1.9.9"],
|
116
|
+
"excludes": ["1.1.9", "2.0.0"],
|
117
|
+
"is_invalid": false
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"description": "gem comma-separated constraints",
|
121
|
+
"input": ">= 1.0, < 2.0",
|
122
|
+
"scheme": "gem",
|
123
|
+
"canonical_vers": "vers:gem/>=1.0|<2.0",
|
124
|
+
"contains": ["1.0", "1.9"],
|
125
|
+
"excludes": ["0.9", "2.0"],
|
126
|
+
"is_invalid": false
|
127
|
+
},
|
128
|
+
{
|
129
|
+
"description": "pypi comma-separated constraints",
|
130
|
+
"input": ">=1.0,<2.0",
|
131
|
+
"scheme": "pypi",
|
132
|
+
"canonical_vers": "vers:pypi/>=1.0|<2.0",
|
133
|
+
"contains": ["1.0", "1.5"],
|
134
|
+
"excludes": ["0.9", "2.0"],
|
135
|
+
"is_invalid": false
|
136
|
+
},
|
137
|
+
{
|
138
|
+
"description": "pypi range with multiple constraints",
|
139
|
+
"input": ">=1.0,<2.0",
|
140
|
+
"scheme": "pypi",
|
141
|
+
"canonical_vers": "vers:pypi/>=1.0|<2.0",
|
142
|
+
"contains": ["1.0", "1.5"],
|
143
|
+
"excludes": ["0.9", "2.0"],
|
144
|
+
"is_invalid": false
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"description": "maven inclusive range",
|
148
|
+
"input": "[1.0,2.0]",
|
149
|
+
"scheme": "maven",
|
150
|
+
"canonical_vers": "vers:maven/>=1.0|<=2.0",
|
151
|
+
"contains": ["1.0", "1.5", "2.0"],
|
152
|
+
"excludes": ["0.9", "2.1"],
|
153
|
+
"is_invalid": false
|
154
|
+
},
|
155
|
+
{
|
156
|
+
"description": "maven exclusive range",
|
157
|
+
"input": "(1.0,2.0)",
|
158
|
+
"scheme": "maven",
|
159
|
+
"canonical_vers": "vers:maven/>1.0|<2.0",
|
160
|
+
"contains": ["1.5"],
|
161
|
+
"excludes": ["1.0", "2.0", "0.9", "2.1"],
|
162
|
+
"is_invalid": false
|
163
|
+
},
|
164
|
+
{
|
165
|
+
"description": "maven mixed inclusivity left inclusive",
|
166
|
+
"input": "[1.0,2.0)",
|
167
|
+
"scheme": "maven",
|
168
|
+
"canonical_vers": "vers:maven/>=1.0|<2.0",
|
169
|
+
"contains": ["1.0", "1.9"],
|
170
|
+
"excludes": ["0.9", "2.0"],
|
171
|
+
"is_invalid": false
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"description": "maven mixed inclusivity right inclusive",
|
175
|
+
"input": "(1.0,2.0]",
|
176
|
+
"scheme": "maven",
|
177
|
+
"canonical_vers": "vers:maven/>1.0|<=2.0",
|
178
|
+
"contains": ["1.5", "2.0"],
|
179
|
+
"excludes": ["1.0", "2.1"],
|
180
|
+
"is_invalid": false
|
181
|
+
},
|
182
|
+
{
|
183
|
+
"description": "maven exact version",
|
184
|
+
"input": "[1.0]",
|
185
|
+
"scheme": "maven",
|
186
|
+
"canonical_vers": "vers:maven/=1.0",
|
187
|
+
"contains": ["1.0"],
|
188
|
+
"excludes": ["0.9", "1.1"],
|
189
|
+
"is_invalid": false
|
190
|
+
},
|
191
|
+
{
|
192
|
+
"description": "maven open range from version",
|
193
|
+
"input": "[1.0,)",
|
194
|
+
"scheme": "maven",
|
195
|
+
"canonical_vers": "vers:maven/>=1.0",
|
196
|
+
"contains": ["1.0", "2.0", "99.0"],
|
197
|
+
"excludes": ["0.9"],
|
198
|
+
"is_invalid": false
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"description": "maven open range to version",
|
202
|
+
"input": "(,2.0]",
|
203
|
+
"scheme": "maven",
|
204
|
+
"canonical_vers": "vers:maven/<=2.0",
|
205
|
+
"contains": ["0.5", "2.0"],
|
206
|
+
"excludes": ["2.1"],
|
207
|
+
"is_invalid": false
|
208
|
+
},
|
209
|
+
{
|
210
|
+
"description": "maven simple version as minimum",
|
211
|
+
"input": "1.0",
|
212
|
+
"scheme": "maven",
|
213
|
+
"canonical_vers": "vers:maven/>=1.0",
|
214
|
+
"contains": ["1.0", "2.0"],
|
215
|
+
"excludes": ["0.9"],
|
216
|
+
"is_invalid": false
|
217
|
+
},
|
218
|
+
{
|
219
|
+
"description": "maven complex union range",
|
220
|
+
"input": "[2.0,2.3.1] , [2.4.0,2.12.2) , [2.13.0,2.15.0)",
|
221
|
+
"scheme": "maven",
|
222
|
+
"canonical_vers": "vers:maven/>=2.0|<=2.3.1,>=2.4.0|<2.12.2,>=2.13.0|<2.15.0",
|
223
|
+
"contains": ["2.0", "2.3.1", "2.4.0", "2.12.1", "2.13.0", "2.14.9"],
|
224
|
+
"excludes": ["1.9", "2.3.5", "2.12.2", "2.12.5", "2.15.0", "3.0"],
|
225
|
+
"is_invalid": false
|
226
|
+
},
|
227
|
+
{
|
228
|
+
"description": "nuget inclusive range",
|
229
|
+
"input": "[1.0,2.0]",
|
230
|
+
"scheme": "nuget",
|
231
|
+
"canonical_vers": "vers:nuget/>=1.0|<=2.0",
|
232
|
+
"contains": ["1.0", "1.5", "2.0"],
|
233
|
+
"excludes": ["0.9", "2.1"],
|
234
|
+
"is_invalid": false
|
235
|
+
},
|
236
|
+
{
|
237
|
+
"description": "nuget simple version as minimum",
|
238
|
+
"input": "1.0",
|
239
|
+
"scheme": "nuget",
|
240
|
+
"canonical_vers": "vers:nuget/>=1.0",
|
241
|
+
"contains": ["1.0", "2.0"],
|
242
|
+
"excludes": ["0.9"],
|
243
|
+
"is_invalid": false
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"description": "debian standard operators",
|
247
|
+
"input": ">> 1.0.0",
|
248
|
+
"scheme": "deb",
|
249
|
+
"canonical_vers": "vers:deb/>1.0.0",
|
250
|
+
"contains": ["1.0.1"],
|
251
|
+
"excludes": ["1.0.0"],
|
252
|
+
"is_invalid": false
|
253
|
+
},
|
254
|
+
{
|
255
|
+
"description": "rpm standard operators",
|
256
|
+
"input": ">=1.0.0",
|
257
|
+
"scheme": "rpm",
|
258
|
+
"canonical_vers": "vers:rpm/>=1.0.0",
|
259
|
+
"contains": ["1.0.0", "2.0.0"],
|
260
|
+
"excludes": ["0.9.0"],
|
261
|
+
"is_invalid": false
|
262
|
+
},
|
263
|
+
{
|
264
|
+
"description": "semver exact version",
|
265
|
+
"input": "=1.3.4",
|
266
|
+
"scheme": "semver",
|
267
|
+
"canonical_vers": "vers:semver/=1.3.4",
|
268
|
+
"contains": ["1.3.4"],
|
269
|
+
"excludes": ["1.3.3", "1.3.5"],
|
270
|
+
"is_invalid": false
|
271
|
+
},
|
272
|
+
{
|
273
|
+
"description": "npm prerelease in caret range",
|
274
|
+
"input": "^1.2.3-beta.4",
|
275
|
+
"scheme": "npm",
|
276
|
+
"canonical_vers": "vers:npm/>=1.2.3-beta.4|<2.0.0",
|
277
|
+
"contains": ["1.2.3", "1.9.0"],
|
278
|
+
"excludes": ["1.2.2", "2.0.0"],
|
279
|
+
"is_invalid": false
|
280
|
+
},
|
281
|
+
{
|
282
|
+
"description": "npm prerelease in hyphen range",
|
283
|
+
"input": "1.2.3-pre - 2.4.3-pre",
|
284
|
+
"scheme": "npm",
|
285
|
+
"canonical_vers": "vers:npm/>=1.2.3-pre|<=2.4.3-pre",
|
286
|
+
"contains": ["1.2.3", "2.0.0", "2.4.3-pre"],
|
287
|
+
"excludes": ["1.2.2", "2.5.0"],
|
288
|
+
"is_invalid": false
|
289
|
+
},
|
290
|
+
{
|
291
|
+
"description": "invalid npm range - blerg",
|
292
|
+
"input": "blerg",
|
293
|
+
"scheme": "npm",
|
294
|
+
"canonical_vers": null,
|
295
|
+
"contains": [],
|
296
|
+
"excludes": [],
|
297
|
+
"is_invalid": true
|
298
|
+
},
|
299
|
+
{
|
300
|
+
"description": "invalid npm range - git url",
|
301
|
+
"input": "git+https://github.com/foo/bar",
|
302
|
+
"scheme": "npm",
|
303
|
+
"canonical_vers": null,
|
304
|
+
"contains": [],
|
305
|
+
"excludes": [],
|
306
|
+
"is_invalid": true
|
307
|
+
},
|
308
|
+
{
|
309
|
+
"description": "invalid maven range - mismatched brackets",
|
310
|
+
"input": "(1.0.0]",
|
311
|
+
"scheme": "maven",
|
312
|
+
"canonical_vers": null,
|
313
|
+
"contains": [],
|
314
|
+
"excludes": [],
|
315
|
+
"is_invalid": true
|
316
|
+
},
|
317
|
+
{
|
318
|
+
"description": "npm empty range",
|
319
|
+
"input": "",
|
320
|
+
"scheme": "npm",
|
321
|
+
"canonical_vers": "*",
|
322
|
+
"contains": ["1.0.0", "2.0.0"],
|
323
|
+
"excludes": [],
|
324
|
+
"is_invalid": false
|
325
|
+
},
|
326
|
+
{
|
327
|
+
"description": "debian version with double operators",
|
328
|
+
"input": ">> 1.0.0",
|
329
|
+
"scheme": "debian",
|
330
|
+
"canonical_vers": "vers:debian/>1.0.0",
|
331
|
+
"contains": ["1.0.1", "2.0.0"],
|
332
|
+
"excludes": ["1.0.0", "0.9.0"],
|
333
|
+
"is_invalid": false
|
334
|
+
}
|
335
|
+
]
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrew Nesbitt
|
8
|
+
bindir: exe
|
9
|
+
cert_chain: []
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
|
+
dependencies: []
|
12
|
+
description: Vers provides tools for working with version ranges across different
|
13
|
+
package managers, using a mathematical interval model internally and supporting
|
14
|
+
the vers specification from the Package URL (PURL) project.
|
15
|
+
email:
|
16
|
+
- andrewnez@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- CHANGELOG.md
|
22
|
+
- CODE_OF_CONDUCT.md
|
23
|
+
- CONTRIBUTING.md
|
24
|
+
- README.md
|
25
|
+
- Rakefile
|
26
|
+
- SECURITY.md
|
27
|
+
- VERSION-RANGE-SPEC.rst
|
28
|
+
- lib/vers.rb
|
29
|
+
- lib/vers/constraint.rb
|
30
|
+
- lib/vers/interval.rb
|
31
|
+
- lib/vers/parser.rb
|
32
|
+
- lib/vers/version.rb
|
33
|
+
- lib/vers/version_range.rb
|
34
|
+
- sig/vers.rbs
|
35
|
+
- test-suite-data.json
|
36
|
+
homepage: https://github.com/andrew/vers
|
37
|
+
licenses: []
|
38
|
+
metadata:
|
39
|
+
allowed_push_host: https://rubygems.org
|
40
|
+
homepage_uri: https://github.com/andrew/vers
|
41
|
+
source_code_uri: https://github.com/andrew/vers
|
42
|
+
changelog_uri: https://github.com/andrew/vers/blob/main/CHANGELOG.md
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 3.2.0
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
requirements: []
|
57
|
+
rubygems_version: 3.6.9
|
58
|
+
specification_version: 4
|
59
|
+
summary: A Ruby gem for parsing, comparing and sorting versions according to the VERS
|
60
|
+
spec.
|
61
|
+
test_files: []
|