Skip to content

Commit 07ce2f8

Browse files
authored
fix(scripts): sla and support policy [skip-bc] (#4282)
1 parent 8b40a31 commit 07ce2f8

File tree

2 files changed

+217
-216
lines changed

2 files changed

+217
-216
lines changed

scripts/release/__tests__/versionsHistory.test.ts

Lines changed: 154 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -2,172 +2,181 @@ import { describe, expect, it } from 'vitest';
22

33
import { generateLanguageVersionsHistory } from '../versionsHistory.js';
44

5-
describe('generateLanguageVersionsHistory', () => {
6-
describe('no new releases', () => {
7-
it('parses version of the same minor', () => {
8-
const versions = generateLanguageVersionsHistory(
9-
[
10-
'1.2.4 Thu Dec 28 15:48:25 2023 +0000',
11-
'1.2.5 Tue Jan 2 14:17:11 2024 +0000',
12-
'1.2.6 Tue Jan 2 15:26:06 2024 +0000',
13-
'1.2.7 Thu Jan 4 15:09:11 2024 +0000',
14-
],
15-
{ current: '1.2.7', next: '1.2.7' },
16-
);
5+
describe('no new releases', () => {
6+
it('parses version of the same minor', () => {
7+
const versions = generateLanguageVersionsHistory(
8+
[
9+
'1.2.4 Thu Dec 28 15:48:25 2023 +0000',
10+
'1.2.5 Tue Jan 2 14:17:11 2024 +0000',
11+
'1.2.6 Tue Jan 2 15:26:06 2024 +0000',
12+
'1.2.7 Thu Jan 4 15:09:11 2024 +0000',
13+
],
14+
{ current: '1.2.7', next: '1.2.7' },
15+
);
1716

18-
expect(versions).toEqual({
19-
'1.2.4': {
20-
releaseDate: '2023-12-28',
21-
slaStatus: 'eligible',
22-
supportStatus: 'not eligible',
23-
},
24-
'1.2.5': {
25-
releaseDate: '2024-01-02',
26-
slaStatus: 'eligible',
27-
supportStatus: 'not eligible',
28-
},
29-
'1.2.6': {
30-
releaseDate: '2024-01-02',
31-
slaStatus: 'eligible',
32-
supportStatus: 'not eligible',
33-
},
34-
'1.2.7': {
35-
releaseDate: '2024-01-04',
36-
slaStatus: 'eligible',
37-
supportStatus: 'eligible',
38-
},
39-
});
17+
expect(versions).toEqual({
18+
'1.2.4': {
19+
releaseDate: '2023-12-28',
20+
slaStatus: 'eligible',
21+
supportStatus: 'eligible',
22+
},
23+
'1.2.5': {
24+
releaseDate: '2024-01-02',
25+
slaStatus: 'eligible',
26+
supportStatus: 'eligible',
27+
},
28+
'1.2.6': {
29+
releaseDate: '2024-01-02',
30+
slaStatus: 'eligible',
31+
supportStatus: 'eligible',
32+
},
33+
'1.2.7': {
34+
releaseDate: '2024-01-04',
35+
slaStatus: 'eligible',
36+
supportStatus: 'eligible',
37+
},
4038
});
39+
});
4140

42-
it('parses version of different same minor', () => {
43-
const versions = generateLanguageVersionsHistory(
44-
[
45-
'1.1.4 Thu Dec 28 15:48:25 2022 +0000',
46-
'2.1.2 Tue Jan 2 14:17:11 2022 +0000',
47-
'2.2.5 Tue Jan 2 14:17:11 2024 +0000',
48-
'2.3.6 Tue Jan 2 15:26:06 2024 +0000',
49-
'3.4.7 Thu Jan 4 15:09:11 2024 +0000',
50-
],
51-
{ current: '3.4.7', next: '3.4.7' },
52-
);
41+
it('parses version of different minor', () => {
42+
const versions = generateLanguageVersionsHistory(
43+
[
44+
'1.1.4 Thu Dec 28 15:48:25 2022 +0000',
45+
'2.1.2 Tue Jan 2 14:17:11 2022 +0000',
46+
'2.2.5 Tue Jan 2 14:17:11 2024 +0000',
47+
'2.3.6 Tue Jan 2 15:26:06 2024 +0000',
48+
'3.4.7 Thu Jan 4 15:09:11 2024 +0000',
49+
],
50+
{ current: '3.4.7', next: '3.4.7' },
51+
);
5352

54-
expect(versions).toEqual({
55-
'1.1.4': {
56-
releaseDate: '2022-12-28',
57-
slaStatus: 'not eligible',
58-
supportStatus: 'not eligible',
59-
},
60-
'2.1.2': {
61-
releaseDate: '2022-01-02',
62-
slaEndDate: '2026-08-14',
63-
slaStatus: 'replaced',
64-
supportStatus: 'not eligible',
65-
},
66-
'2.2.5': {
67-
releaseDate: '2024-01-02',
68-
slaEndDate: '2026-08-14',
69-
slaStatus: 'replaced',
70-
supportStatus: 'not eligible',
71-
},
72-
'2.3.6': {
73-
releaseDate: '2024-01-02',
74-
slaEndDate: '2026-08-14',
75-
slaStatus: 'replaced',
76-
supportEndDate: '2026-08-14',
77-
supportStatus: 'eligible',
78-
},
79-
'3.4.7': {
80-
releaseDate: '2024-01-04',
81-
slaStatus: 'eligible',
82-
supportStatus: 'eligible',
83-
},
84-
});
53+
expect(versions).toEqual({
54+
'1.1.4': {
55+
releaseDate: '2022-12-28',
56+
slaStatus: 'not eligible',
57+
supportStatus: 'not eligible',
58+
},
59+
'2.1.2': {
60+
releaseDate: '2022-01-02',
61+
slaEndDate: '2026-08-14',
62+
slaStatus: 'eligible',
63+
supportStatus: 'not eligible',
64+
},
65+
'2.2.5': {
66+
releaseDate: '2024-01-02',
67+
slaEndDate: '2026-08-14',
68+
slaStatus: 'eligible',
69+
supportStatus: 'not eligible',
70+
},
71+
'2.3.6': {
72+
releaseDate: '2024-01-02',
73+
slaEndDate: '2026-08-14',
74+
slaStatus: 'eligible',
75+
supportEndDate: '2026-08-14',
76+
supportStatus: 'eligible',
77+
},
78+
'3.4.7': {
79+
releaseDate: '2024-01-04',
80+
slaStatus: 'eligible',
81+
supportStatus: 'eligible',
82+
},
8583
});
8684
});
85+
});
8786

88-
describe('new release', () => {
89-
const start = new Date();
90-
const end = new Date(start);
91-
end.setFullYear(start.getFullYear() + 2);
87+
describe('new release', () => {
88+
const start = new Date();
89+
const end = new Date(start);
90+
end.setFullYear(start.getFullYear() + 2);
9291

93-
it('same version as active version', () => {
94-
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
95-
next: '1.2.4',
96-
current: '1.2.4',
97-
releaseType: 'minor',
98-
});
92+
it('same version as active version', () => {
93+
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
94+
next: '1.2.4',
95+
current: '1.2.4',
96+
releaseType: 'minor',
97+
});
9998

100-
expect(versions).toEqual({
101-
'1.2.4': {
102-
releaseDate: '2023-12-28',
103-
slaStatus: 'eligible',
104-
supportStatus: 'eligible',
105-
},
106-
});
99+
expect(versions).toEqual({
100+
'1.2.4': {
101+
releaseDate: '2023-12-28',
102+
slaStatus: 'eligible',
103+
supportStatus: 'eligible',
104+
},
107105
});
106+
});
108107

109-
it('new major: sets the new release as active, sets the last tag as maintenance', () => {
110-
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
108+
it('new major: sets the new release as active, sets the last tag as maintenance', () => {
109+
const versions = generateLanguageVersionsHistory(
110+
['1.2.4 Thu Dec 28 15:48:25 2023 +0000', '1.2.5 Tue Jan 2 14:17:11 2024 +0000'],
111+
{
111112
next: '2.0.0',
112113
current: '1.2.4',
113114
releaseType: 'major',
114-
});
115+
},
116+
);
115117

116-
expect(versions).toEqual({
117-
'1.2.4': {
118-
releaseDate: '2023-12-28',
119-
slaStatus: 'eligible',
120-
supportEndDate: '2026-08-14',
121-
supportStatus: 'eligible',
122-
},
123-
'2.0.0': {
124-
releaseDate: start.toISOString().split('T')[0],
125-
slaStatus: 'eligible',
126-
supportStatus: 'eligible',
127-
},
128-
});
118+
expect(versions).toEqual({
119+
'1.2.4': {
120+
releaseDate: '2023-12-28',
121+
slaStatus: 'eligible',
122+
slaEndDate: '2026-08-14',
123+
supportEndDate: '2026-08-14',
124+
supportStatus: 'eligible',
125+
},
126+
'1.2.5': {
127+
releaseDate: '2024-01-02',
128+
slaStatus: 'eligible',
129+
slaEndDate: '2026-08-14',
130+
supportEndDate: '2026-08-14',
131+
supportStatus: 'eligible',
132+
},
133+
'2.0.0': {
134+
releaseDate: start.toISOString().split('T')[0],
135+
slaStatus: 'eligible',
136+
supportStatus: 'eligible',
137+
},
129138
});
139+
});
130140

131-
it('new minor: sets the new release as active, sets the last tag as maintenance', () => {
132-
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
133-
next: '1.3.0',
134-
current: '1.2.4',
135-
releaseType: 'minor',
136-
});
141+
it('new minor: sets the new release as active, sets the last tag as maintenance', () => {
142+
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
143+
next: '1.3.0',
144+
current: '1.2.4',
145+
releaseType: 'minor',
146+
});
137147

138-
expect(versions).toEqual({
139-
'1.2.4': {
140-
releaseDate: '2023-12-28',
141-
slaStatus: 'eligible',
142-
supportStatus: 'not eligible',
143-
},
144-
'1.3.0': {
145-
releaseDate: start.toISOString().split('T')[0],
146-
slaStatus: 'eligible',
147-
supportStatus: 'eligible',
148-
},
149-
});
148+
expect(versions).toEqual({
149+
'1.2.4': {
150+
releaseDate: '2023-12-28',
151+
slaStatus: 'eligible',
152+
supportStatus: 'not eligible',
153+
},
154+
'1.3.0': {
155+
releaseDate: start.toISOString().split('T')[0],
156+
slaStatus: 'eligible',
157+
supportStatus: 'eligible',
158+
},
150159
});
160+
});
151161

152-
it('new patch: sets the new release as active, sets the last tag as inactive', () => {
153-
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
154-
next: '1.2.5',
155-
current: '1.2.4',
156-
releaseType: 'patch',
157-
});
162+
it('new patch: sets the new release as active', () => {
163+
const versions = generateLanguageVersionsHistory(['1.2.4 Thu Dec 28 15:48:25 2023 +0000'], {
164+
next: '1.2.5',
165+
current: '1.2.4',
166+
releaseType: 'patch',
167+
});
158168

159-
expect(versions).toEqual({
160-
'1.2.4': {
161-
releaseDate: '2023-12-28',
162-
slaStatus: 'eligible',
163-
supportStatus: 'not eligible',
164-
},
165-
'1.2.5': {
166-
releaseDate: start.toISOString().split('T')[0],
167-
slaStatus: 'eligible',
168-
supportStatus: 'eligible',
169-
},
170-
});
169+
expect(versions).toEqual({
170+
'1.2.4': {
171+
releaseDate: '2023-12-28',
172+
slaStatus: 'eligible',
173+
supportStatus: 'eligible',
174+
},
175+
'1.2.5': {
176+
releaseDate: start.toISOString().split('T')[0],
177+
slaStatus: 'eligible',
178+
supportStatus: 'eligible',
179+
},
171180
});
172181
});
173182
});

0 commit comments

Comments
 (0)