Skip to content

Commit 7a5c2bd

Browse files
authored
[ESLint plugin] Deprecate support for preview and dev versions (Azure#12606)
* deprecate support for preview and dev versions * update docs and tests
1 parent 70b4b38 commit 7a5c2bd

File tree

3 files changed

+20
-136
lines changed

3 files changed

+20
-136
lines changed

common/tools/eslint-plugin-azure-sdk/docs/rules/ts-versioning-semver.md

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Requires `version` in `package.json` to be in [SemVer](https://semver.org/).
44

55
Additionally, the following rules are checked:
6+
67
- Major versions of `0` are not permitted,
78
- Alpha versions must be in the format `<version>-alpha.<date>.<alpha-version>` where `date` is an integer representing a particular day (e.g. 20200728 is July 28th, 2020), and `alpha-version` is an integer.
89
- Beta versions must be in the format `<version>-beta.<beta-version>`, where `beta-version` is an integer.
@@ -19,18 +20,6 @@ Additionally, the following rules are checked:
1920
}
2021
```
2122

22-
```json
23-
{
24-
"version": "1.0.0-preview.1"
25-
}
26-
```
27-
28-
```json
29-
{
30-
"version": "1.0.0-dev.20200728.1"
31-
}
32-
```
33-
3423
```json
3524
{
3625
"version": "1.0.0-alpha.20200728.1"
@@ -77,31 +66,13 @@ Additionally, the following rules are checked:
7766

7867
```json
7968
{
80-
"version": "1.0.0-preview1"
81-
}
82-
```
83-
84-
```json
85-
{
86-
"version": "1.0.0-preview.1.0"
87-
}
88-
```
89-
90-
```json
91-
{
92-
"version": "1.0.0-Preview.1"
93-
}
94-
```
95-
96-
```json
97-
{
98-
"version": "1.0.0-dev.1.0"
69+
"version": "1.0.0-preview.1"
9970
}
10071
```
10172

10273
```json
10374
{
104-
"version": "1.0.0-dev.1"
75+
"version": "1.0.0-dev.20200728.1"
10576
}
10677
```
10778

common/tools/eslint-plugin-azure-sdk/src/rules/ts-versioning-semver.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ export = {
4242
const version = nodeValue.value as string;
4343

4444
// check for violations specific to semver
45-
const versionMatch = version.match(/^(0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(.+)|$)/);
45+
const versionMatch = version.match(
46+
/^(0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(.+)|$)/
47+
);
4648
if (versionMatch === null) {
4749
context.report({
4850
node: nodeValue,
@@ -58,13 +60,13 @@ export = {
5860
message: "major version should not be set to 0"
5961
});
6062
}
61-
62-
// check that if preview or dev is in proper syntax if provided
63+
64+
// check that if alpha or beta is in proper syntax if provided
6365
const secondPart = versionMatch[2];
6466
if (secondPart === undefined) {
6567
return;
6668
}
67-
const ver = secondPart.match(/^(dev|preview|alpha|beta)(.*)/);
69+
const ver = secondPart.match(/^(alpha|beta)(.*)/);
6870
if (ver === null) {
6971
context.report({
7072
node: nodeValue,
@@ -76,7 +78,6 @@ export = {
7678
const verKeyword = ver[1];
7779
const verNumber = ver[2];
7880
switch (verKeyword) {
79-
case "preview":
8081
case "beta":
8182
if (!/^\.(:?0|(?:[1-9]\d*))$/.test(verNumber)) {
8283
context.report({
@@ -86,7 +87,6 @@ export = {
8687
return;
8788
}
8889
break;
89-
case "dev":
9090
case "alpha":
9191
if (!/^\.[2-9]\d\d\d[0-1]\d[0-3]\d\.(:?0|(?:[1-9]\d*))$/.test(verNumber)) {
9292
context.report({

common/tools/eslint-plugin-azure-sdk/tests/rules/ts-versioning-semver.ts

Lines changed: 11 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const examplePackageGood = `{
4343
"node": ">=6.0.0"
4444
},
4545
"dependencies": {
46-
"@azure/amqp-common": "^1.0.0-preview.5",
46+
"@azure/amqp-common": "^1.0.0-beta.5",
4747
"@types/is-buffer": "^2.0.0",
4848
"@azure/ms-rest-nodeauth": "^0.9.2",
4949
"@types/long": "^4.0.0",
@@ -156,7 +156,7 @@ const examplePackageBad = `{
156156
"node": ">=6.0.0"
157157
},
158158
"dependencies": {
159-
"@azure/amqp-common": "^1.0.0-preview.5",
159+
"@azure/amqp-common": "^1.0.0-beta.5",
160160
"@types/is-buffer": "^2.0.0",
161161
"@azure/ms-rest-nodeauth": "^0.9.2",
162162
"@types/long": "^4.0.0",
@@ -282,18 +282,6 @@ ruleTester.run("ts-versioning-semver", rule, {
282282
code: '{"version": "1.1.10"}',
283283
filename: "package.json"
284284
},
285-
{
286-
code: '{"version": "1.1.10-preview.0"}',
287-
filename: "package.json"
288-
},
289-
{
290-
code: '{"version": "1.1.10-preview.1"}',
291-
filename: "package.json"
292-
},
293-
{
294-
code: '{"version": "1.1.10-preview.10"}',
295-
filename: "package.json"
296-
},
297285
{
298286
code: '{"version": "1.1.10-beta.0"}',
299287
filename: "package.json"
@@ -306,18 +294,6 @@ ruleTester.run("ts-versioning-semver", rule, {
306294
code: '{"version": "1.1.10-beta.10"}',
307295
filename: "package.json"
308296
},
309-
{
310-
code: '{"version": "1.1.10-dev.20200728.0"}',
311-
filename: "package.json"
312-
},
313-
{
314-
code: '{"version": "1.1.10-dev.20210128.1"}',
315-
filename: "package.json"
316-
},
317-
{
318-
code: '{"version": "1.1.10-dev.20200728.10"}',
319-
filename: "package.json"
320-
},
321297
{
322298
code: '{"version": "1.1.10-alpha.20200728.0"}',
323299
filename: "package.json"
@@ -426,40 +402,13 @@ ruleTester.run("ts-versioning-semver", rule, {
426402
}
427403
]
428404
},
429-
// preview and beta violations
430-
{
431-
code: '{"version": "1.0.0-Preview-1"}',
432-
filename: "package.json",
433-
errors: [
434-
{
435-
message: "unrecognized version syntax: Preview-1"
436-
}
437-
]
438-
},
439-
{
440-
code: '{"version": "1.0.0-preview-1"}',
441-
filename: "package.json",
442-
errors: [
443-
{
444-
message: "preview format is not x.y.z-preview.i"
445-
}
446-
]
447-
},
448-
{
449-
code: '{"version": "1.0.0-preview1"}',
450-
filename: "package.json",
451-
errors: [
452-
{
453-
message: "preview format is not x.y.z-preview.i"
454-
}
455-
]
456-
},
405+
// beta violations
457406
{
458-
code: '{"version": "1.0.0-preview.01"}',
407+
code: '{"version": "1.0.0-preview.1"}',
459408
filename: "package.json",
460409
errors: [
461410
{
462-
message: "preview format is not x.y.z-preview.i"
411+
message: "unrecognized version syntax: preview.1"
463412
}
464413
]
465414
},
@@ -499,49 +448,13 @@ ruleTester.run("ts-versioning-semver", rule, {
499448
}
500449
]
501450
},
502-
// dev and alpha violations
503-
{
504-
code: '{"version": "1.0.0-Dev-1"}',
505-
filename: "package.json",
506-
errors: [
507-
{
508-
message: "unrecognized version syntax: Dev-1"
509-
}
510-
]
511-
},
512-
{
513-
code: '{"version": "1.0.0-dev-1"}',
514-
filename: "package.json",
515-
errors: [
516-
{
517-
message: "dev format is not x.y.z-dev.<date>.i"
518-
}
519-
]
520-
},
521-
{
522-
code: '{"version": "1.0.0-dev1"}',
523-
filename: "package.json",
524-
errors: [
525-
{
526-
message: "dev format is not x.y.z-dev.<date>.i"
527-
}
528-
]
529-
},
451+
// alpha violations
530452
{
531-
code: '{"version": "1.0.0-dev.01"}',
453+
code: '{"version": "1.0.0-dev.20200728.1"}',
532454
filename: "package.json",
533455
errors: [
534456
{
535-
message: "dev format is not x.y.z-dev.<date>.i"
536-
}
537-
]
538-
},
539-
{
540-
code: '{"version": "1.0.0-dev.2.1"}',
541-
filename: "package.json",
542-
errors: [
543-
{
544-
message: "dev format is not x.y.z-dev.<date>.i"
457+
message: "unrecognized version syntax: dev.20200728.1"
545458
}
546459
]
547460
},
@@ -600,16 +513,16 @@ ruleTester.run("ts-versioning-semver", rule, {
600513
}
601514
]
602515
},
603-
// major version 0 and preview violations
516+
// major version 0 and beta violations
604517
{
605-
code: '{"version": "0.1.0-preview1"}',
518+
code: '{"version": "0.1.0-beta1"}',
606519
filename: "package.json",
607520
errors: [
608521
{
609522
message: "major version should not be set to 0"
610523
},
611524
{
612-
message: "preview format is not x.y.z-preview.i"
525+
message: "beta format is not x.y.z-beta.i"
613526
}
614527
]
615528
},

0 commit comments

Comments
 (0)