Skip to content

Commit d7e5895

Browse files
authored
feat(scripts): new sla format (#3309)
1 parent 8340627 commit d7e5895

File tree

2 files changed

+45
-50
lines changed

2 files changed

+45
-50
lines changed

config/release.config.json

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -26,153 +26,149 @@
2626
"csharp": {
2727
"6.1.17": {
2828
"start": "2024-01-01",
29-
"lts": "2024-01-01",
30-
"end": "2026-08-01"
29+
"end": "2026-07-16",
30+
"status": "active"
3131
},
3232
"7.0.0-beta.8": {
3333
"start": "2024-07-01",
3434
"end": "2026-07-01",
35-
"prerelease": true
35+
"status": "prerelease"
3636
}
3737
},
3838
"dart": {
3939
"1.12.0": {
40-
"start": "2024-06-13",
40+
"start": "2024-06-21",
4141
"end": "2026-06-13",
42-
"maintenance": "2024-06-21"
42+
"status": "maintenance"
4343
},
4444
"1.13.0": {
45-
"start": "2024-06-21",
45+
"start": "2024-06-24",
4646
"end": "2026-06-21",
47-
"prerelease": false,
48-
"maintenance": "2024-06-24"
47+
"status": "maintenance"
4948
},
5049
"1.14.0": {
51-
"start": "2024-06-24",
50+
"start": "2024-06-26",
5251
"end": "2026-06-24",
53-
"prerelease": false,
54-
"maintenance": "2024-06-26"
52+
"status": "maintenance"
5553
},
5654
"1.15.1": {
57-
"start": "2024-06-27",
55+
"start": "2024-07-01",
5856
"end": "2026-06-27",
59-
"prerelease": false,
60-
"maintenance": "2024-07-01"
57+
"status": "maintenance"
6158
},
6259
"1.16.0": {
6360
"start": "2024-07-01",
64-
"lts": "2024-07-01",
6561
"end": "2026-07-01",
66-
"prerelease": false
62+
"status": "active"
6763
}
6864
},
6965
"go": {
7066
"3.31.1": {
7167
"start": "2024-01-01",
72-
"lts": "2024-01-01",
73-
"end": "2026-08-01"
68+
"end": "2026-07-16",
69+
"status": "active"
7470
},
7571
"4.0.0-beta.22": {
7672
"start": "2024-07-01",
7773
"end": "2026-07-01",
78-
"prerelease": true
74+
"status": "prerelease"
7975
}
8076
},
8177
"java": {
8278
"3.16.9": {
8379
"start": "2024-01-01",
84-
"lts": "2024-01-01",
85-
"end": "2026-08-01"
80+
"end": "2026-07-16",
81+
"status": "active"
8682
},
8783
"4.0.0-beta.39": {
8884
"start": "2024-07-01",
8985
"end": "2026-07-01",
90-
"prerelease": true
86+
"status": "prerelease"
9187
}
9288
},
9389
"javascript": {
9490
"4.23.3": {
9591
"start": "2024-01-01",
96-
"lts": "2024-01-01",
97-
"end": "2026-08-01"
92+
"end": "2026-07-16",
93+
"status": "active"
9894
},
9995
"5.0.0-beta.9": {
10096
"start": "2024-07-01",
10197
"end": "2026-07-01",
102-
"prerelease": true
98+
"status": "prerelease"
10399
}
104100
},
105101
"kotlin": {
106102
"2.1.12": {
107103
"start": "2024-01-01",
108-
"lts": "2024-01-01",
109-
"end": "2026-08-01"
104+
"end": "2026-07-16",
105+
"status": "active"
110106
},
111107
"3.0.0-beta.34": {
112108
"start": "2024-07-01",
113109
"end": "2026-07-01",
114-
"prerelease": true
110+
"status": "prerelease"
115111
}
116112
},
117113
"php": {
118114
"3.4.1": {
119115
"start": "2024-01-01",
120-
"lts": "2024-01-01",
121-
"end": "2026-08-01"
116+
"end": "2026-07-16",
117+
"status": "active"
122118
},
123119
"4.0.0-beta.8": {
124120
"start": "2024-07-01",
125121
"end": "2026-07-01",
126-
"prerelease": true
122+
"status": "prerelease"
127123
}
128124
},
129125
"python": {
130126
"3.0.0": {
131127
"start": "2024-01-01",
132-
"lts": "2024-01-01",
133-
"end": "2026-08-01"
128+
"end": "2026-07-16",
129+
"status": "active"
134130
},
135131
"4.0.0b23": {
136132
"start": "2024-07-01",
137133
"end": "2026-07-01",
138-
"prerelease": true
134+
"status": "prerelease"
139135
}
140136
},
141137
"ruby": {
142138
"2.3.4": {
143139
"start": "2024-01-01",
144-
"lts": "2024-01-01",
145-
"end": "2026-08-01"
140+
"end": "2026-07-16",
141+
"status": "active"
146142
},
147143
"3.0.0.beta.8": {
148144
"start": "2024-07-01",
149145
"end": "2026-07-01",
150-
"prerelease": true
146+
"status": "prerelease"
151147
}
152148
},
153149
"scala": {
154150
"1.45.2": {
155151
"start": "2024-01-01",
156-
"lts": "2024-01-01",
157-
"end": "2026-08-01"
152+
"end": "2026-07-16",
153+
"status": "active"
158154
},
159155
"2.0.0-beta.8": {
160156
"start": "2024-07-01",
161157
"end": "2026-07-01",
162-
"prerelease": true
158+
"status": "prerelease"
163159
}
164160
},
165161
"swift": {
166162
"8.20.1": {
167163
"start": "2024-01-01",
168-
"lts": "2024-01-01",
169-
"end": "2026-08-01"
164+
"end": "2026-07-16",
165+
"status": "active"
170166
},
171167
"9.0.0-beta.9": {
172168
"start": "2024-07-01",
173169
"end": "2026-07-01",
174-
"prerelease": true
170+
"status": "prerelease"
175171
}
176172
}
177173
}
178-
}
174+
}

scripts/release/createReleasePR.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ async function prepareGitEnvironment(): Promise<void> {
400400
}
401401

402402
// updates the release.config.json file for the sla field, which contains a release history of start and end date support
403-
// inspired by node: https://github.com/nodejs/Release/blob/main/schedule.json, following https://github.com/nodejs/release#release-schedule, leveraging https://github.com/nodejs/lts-schedule
403+
// inspired by node: https://github.com/nodejs/Release/blob/main/schedule.json, following https://github.com/nodejs/release#release-schedule
404404
export async function updateSLA(versions: Versions): Promise<void> {
405405
const start = new Date();
406406
const end = new Date(new Date().setMonth(new Date().getMonth() + 24));
@@ -433,10 +433,10 @@ export async function updateSLA(versions: Versions): Promise<void> {
433433
// if it's a major or not the same minor, it means we release a new latest versions, so the
434434
// current SLA goes in maintenance mode
435435
} else {
436-
delete supportedVersions[current].lts;
436+
supportedVersions[current].status = 'maintenance';
437437

438438
// any other release cases make the previous version enter in maintenance
439-
supportedVersions[current].maintenance = start.toISOString().split('T')[0];
439+
supportedVersions[current].start = start.toISOString().split('T')[0];
440440
}
441441
}
442442

@@ -447,15 +447,14 @@ export async function updateSLA(versions: Versions): Promise<void> {
447447

448448
supportedVersions[next] = {
449449
start: start.toISOString().split('T')[0],
450-
lts: isPreRelease ? undefined : start.toISOString().split('T')[0],
450+
status: isPreRelease ? 'prerelease' : 'active',
451451
end: end.toISOString().split('T')[0],
452-
prerelease: isPreRelease,
453452
};
454453

455454
// define the boundaries of the graph by searching for older and newest dates
456455
for (const [supportedVersion, dates] of Object.entries(supportedVersions)) {
457456
// delete maintenance versions that are not supported anymore
458-
if ('maintenance' in dates && new Date(dates.end as string) < start) {
457+
if (dates.status === 'maintenance' && new Date(dates.end as string) < start) {
459458
delete supportedVersions[supportedVersion];
460459

461460
continue;

0 commit comments

Comments
 (0)