Skip to content

Commit 251dbd7

Browse files
authored
Merge branch 'processing:main' into main
2 parents cc04607 + 4bc0ef7 commit 251dbd7

File tree

3 files changed

+58
-4
lines changed

3 files changed

+58
-4
lines changed

content/download/releases/processing-1310-4.4.10.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Processing 4.4.10",
33
"tagName": "processing-1310-4.4.10",
4-
"isPrerelease": true,
4+
"isPrerelease": false,
55
"publishedAt": "2025-10-14T14:41:33Z",
66
"releaseAssets": {
77
"edges": [

content/download/selected.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"selectedReleases": [
3-
"processing-1310-4.4.10",
3+
"processing-1.5.1",
4+
"processing-0225-2.1.2",
45
"processing-0270-3.5.4",
5-
"processing-0227-2.2.1"
6+
"processing-1310-4.4.10"
67
],
78
"selectedPreReleases": [
89
""
910
]
10-
}
11+
}

scripts/fetchReleases.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,59 @@ const fetchReleases = async (githubToken) => {
7777
JSON.stringify(release.node, null, 2)
7878
);
7979
});
80+
81+
// sort releases by major version eg : {"1": [], "2": [], "3": [], "4": []}
82+
const sortedReleases = releases.reduce((acc, release) => {
83+
const majorVersion = release.node.tagName.replace(/processing(-\d+)?-/, '').split('.')[0];
84+
if (!acc[majorVersion]) {
85+
acc[majorVersion] = [];
86+
}
87+
acc[majorVersion].push(release.node);
88+
return acc;
89+
}, {});
90+
91+
// sort releases by date within each major version
92+
Object.keys(sortedReleases).forEach((key) => {
93+
sortedReleases[key].sort((a, b) => new Date(b.publishedAt) - new Date(a.publishedAt));
94+
});
95+
96+
// genereate the content/download/selected.json e.g.
97+
// {
98+
// "selectedReleases": [
99+
// "processing-1310-4.4.10",
100+
// "processing-0270-3.5.4",
101+
// "processing-0227-2.2.1"
102+
// ],
103+
// "selectedPreReleases": [
104+
// ""
105+
// ]
106+
// }
107+
// select the latest release for each major version
108+
const selectedReleases = Object.values(sortedReleases).map(
109+
(releases) => releases[0].tagName
110+
);
111+
const latestStableRelease = releases.toSorted((a, b) => new Date(b.node.publishedAt) - new Date(a.node.publishedAt))[0].node;
112+
113+
// select the latest pre-release from processing4 if it is newer than the latest stable release
114+
const preReleases = processing4.releases.edges.filter(
115+
(release) => release.node.isPrerelease && new Date(release.node.publishedAt) > new Date(latestStableRelease.publishedAt)
116+
);
117+
const selectedPreReleases = preReleases.length
118+
? [preReleases[0].node.tagName]
119+
: [""];
120+
fs.writeFileSync(
121+
path.join(__dirname, '..', 'content', 'download', 'selected.json'),
122+
JSON.stringify(
123+
{
124+
selectedReleases,
125+
selectedPreReleases
126+
},
127+
null,
128+
2
129+
)
130+
);
131+
132+
80133
};
81134

82135
if (process.env.GITHUB_TOKEN) {

0 commit comments

Comments
 (0)