Skip to content

Commit b2c7493

Browse files
committed
Add beta download functionality
1 parent 9bfa3c0 commit b2c7493

File tree

8 files changed

+173
-25
lines changed

8 files changed

+173
-25
lines changed

content/download/releases/processing-1293-4.3.json

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,50 @@
11
{
22
"name": "Processing 4.3",
33
"tagName": "processing-1293-4.3",
4-
"publishedAt": "2023-07-26T11:13:50Z",
4+
"isPrerelease": false,
5+
"publishedAt": "2024-08-19T06:45:07Z",
56
"releaseAssets": {
67
"edges": [
78
{
89
"node": {
9-
"name": "processing-4.3-linux-arm32.tgz",
10-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-linux-arm32.tgz",
11-
"size": 216978502
10+
"name": "processing-4.3-windows-x64.zip",
11+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-windows-x64.zip",
12+
"size": 224561090
1213
}
1314
},
1415
{
1516
"node": {
16-
"name": "processing-4.3-linux-arm64.tgz",
17-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-linux-arm64.tgz",
18-
"size": 224913289
17+
"name": "processing-4.3-macos-aarch64.zip",
18+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-macos-aarch64.zip",
19+
"size": 206501239
1920
}
2021
},
2122
{
2223
"node": {
2324
"name": "processing-4.3-linux-x64.tgz",
24-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-linux-x64.tgz",
25+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-linux-x64.tgz",
2526
"size": 230272890
2627
}
2728
},
2829
{
2930
"node": {
30-
"name": "processing-4.3-macos-aarch64.zip",
31-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-macos-aarch64.zip",
32-
"size": 206501239
31+
"name": "processing-4.3-linux-arm64.tgz",
32+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-linux-arm64.tgz",
33+
"size": 224913289
3334
}
3435
},
3536
{
3637
"node": {
37-
"name": "processing-4.3-macos-x64.zip",
38-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-macos-x64.zip",
39-
"size": 224688525
38+
"name": "processing-4.3-linux-arm32.tgz",
39+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-linux-arm32.tgz",
40+
"size": 216978502
4041
}
4142
},
4243
{
4344
"node": {
44-
"name": "processing-4.3-windows-x64.zip",
45-
"downloadUrl": "https://github.com/processing/processing4/releases/download/processing-1293-4.3/processing-4.3-windows-x64.zip",
46-
"size": 224561090
45+
"name": "processing-4.3-macos-x64.zip",
46+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1293-4.3/processing-4.3-macos-x64.zip",
47+
"size": 224688525
4748
}
4849
}
4950
]
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"name": "Processing 4.3.1",
3+
"tagName": "processing-1294-4.3.1",
4+
"isPrerelease": true,
5+
"publishedAt": "2024-11-11T22:37:31Z",
6+
"releaseAssets": {
7+
"edges": [
8+
{
9+
"node": {
10+
"name": "processing-4.3.1-linux-arm64.tgz",
11+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-linux-arm64.tgz",
12+
"size": 247245540
13+
}
14+
},
15+
{
16+
"node": {
17+
"name": "processing-4.3.1-linux-x64.tgz",
18+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-linux-x64.tgz",
19+
"size": 224532058
20+
}
21+
},
22+
{
23+
"node": {
24+
"name": "processing-4.3.1-macos-aarch64.zip",
25+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-macos-aarch64.zip",
26+
"size": 199760075
27+
}
28+
},
29+
{
30+
"node": {
31+
"name": "processing-4.3.1-windows-x64.zip",
32+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-windows-x64.zip",
33+
"size": 218599692
34+
}
35+
},
36+
{
37+
"node": {
38+
"name": "processing-4.3.1-linux-arm32.tgz",
39+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-linux-arm32.tgz",
40+
"size": 211237999
41+
}
42+
},
43+
{
44+
"node": {
45+
"name": "processing-4.3.1-macos-x64.zip",
46+
"downloadUrl": "https://github.com/processing/processing4-carbon-aug-19/releases/download/processing-1294-4.3.1/processing-4.3.1-macos-x64.zip",
47+
"size": 217948933
48+
}
49+
}
50+
]
51+
}
52+
}

content/download/selected.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
"processing-0270-3.5.4",
55
"processing-0227-2.2.1"
66
],
7-
"selectedPreReleases": [""]
8-
}
7+
"selectedPreReleases": [
8+
"processing-1294-4.3.1"
9+
]
10+
}

i18n/react-intl/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"home": "Home",
33
"download": "Download",
4+
"main": "Stable",
5+
"beta": "Beta",
46
"documentation": "Documentation",
57
"reference": "Reference",
68
"references": "References",

i18n/react-intl/es.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"home": "Inicio",
33
"download": "Descargar",
4+
"main": "Estable",
5+
"beta": "Beta",
46
"documentation": "Documentación",
57
"reference": "Referencia",
68
"references": "Referencias",
@@ -435,4 +437,4 @@
435437
"Background Image": "Imagen de Fondo",
436438
"Datatype Conversion": "Conversión de Tipos de Datos",
437439
" ": ""
438-
}
440+
}

scripts/fetchReleases.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@ const fetchReleases = async (githubToken) => {
2727
}
2828
}
2929
}
30-
processing4: repository(name: "processing4", owner: "processing") {
30+
processing4: repository(name: "processing4-carbon-aug-19", owner: "processing") {
3131
releases(first: 100, orderBy: { field: NAME, direction: DESC }) {
3232
edges {
3333
node {
3434
name
3535
tagName
36+
isPrerelease
3637
publishedAt
3738
releaseAssets(first: 10) {
3839
edges {
@@ -74,6 +75,8 @@ const fetchReleases = async (githubToken) => {
7475
});
7576
};
7677

78+
// TODO: Allow for Environment Variable input
79+
7780
const rl = readline.createInterface({
7881
input: process.stdin,
7982
output: process.stdout

src/styles/templates/download.module.css

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
align-items: center;
1919
flex-basis: var(--col8);
2020

21-
margin: var(--vertical-margin-large) 0;
21+
margin: var(--vertical-margin-medium) 0;
2222
}
2323
.mainDownloadButtonContainer>div>p.appleSiliconWarning {
2424
color: black;
@@ -27,6 +27,31 @@
2727
}
2828
}
2929

30+
.preReleaseSwitchContainer {
31+
display: flex;
32+
flex-direction: column;
33+
align-items: center;
34+
flex-basis: var(--col8);
35+
gap: var(--gutter);
36+
}
37+
38+
.preReleaseSwitch{
39+
background-color: var(--processing-blue-dark);
40+
border-radius: 40px;
41+
padding: 0;
42+
& button{
43+
padding: var(--gutter-half) var(--gutter);
44+
border-radius: 40px;
45+
color: white;
46+
border: transparent solid 5px;
47+
transition: all 0.2s;
48+
}
49+
& button.selected{
50+
background-color: white;
51+
border: var(--processing-blue-dark) solid 5px;
52+
color: black;
53+
}
54+
}
3055

3156
a.mainDownloadButton {
3257
background-color: var(--processing-blue);

src/templates/download.js

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ import * as grid from '../styles/grid.module.css';
3131
const Download = ({ data }) => {
3232
const intl = useIntl();
3333
const releases = usePreparedReleases(data.releases.nodes);
34+
const prereleases = usePreparedReleases(data.prereleases.nodes);
35+
36+
const [selectedRelease, setSelectedRelease] = useState(releases[0]);
3437

3538
// gatsby-plugin-fathom requires us to use hooks
3639
const trackWindows = useGoal('CIMDWXJV');
@@ -68,6 +71,7 @@ const Download = ({ data }) => {
6871
window.addEventListener('focus', goToDonate);
6972
};
7073

74+
7175
return (
7276
<Layout>
7377
<HeadMatter
@@ -83,13 +87,20 @@ const Download = ({ data }) => {
8387
</div>
8488
</div>
8589

90+
<PreReleaseSwitch
91+
releases={releases}
92+
prereleases={prereleases}
93+
selectedRelease={selectedRelease}
94+
setSelectedRelease={setSelectedRelease}
95+
/>
96+
8697
<MainDownloadSection
87-
release={releases[0]}
98+
release={selectedRelease}
8899
onAfterDownload={onAfterDownload}
89100
/>
90101

91102
<OSSectionContainer
92-
release={releases[0]}
103+
release={selectedRelease}
93104
onAfterDownload={onAfterDownload}
94105
/>
95106

@@ -152,6 +163,29 @@ const Download = ({ data }) => {
152163
);
153164
};
154165

166+
const PreReleaseSwitch = memo(({ releases, prereleases, selectedRelease, setSelectedRelease }) => {
167+
const intl = useIntl();
168+
169+
return (
170+
<>
171+
{
172+
prereleases.length > 0 && (
173+
<div className={classnames(grid.container, grid.grid, css.preReleaseSwitchContainer)}>
174+
<div className={classnames(grid.col, css.preReleaseSwitch)}>
175+
<button className={selectedRelease === releases[0] ? css.selected : ""} onClick={() => setSelectedRelease(releases[0])}>
176+
{intl.formatMessage({ id: 'main' })} ({releases[0].version})
177+
</button>
178+
<button className={selectedRelease === prereleases[0] ? css.selected : ""} onClick={() => setSelectedRelease(prereleases[0])}>
179+
{intl.formatMessage({ id: 'beta' })} ({prereleases[0].version})
180+
</button>
181+
</div>
182+
</div>
183+
)
184+
}
185+
</>
186+
)
187+
});
188+
155189
const MainDownloadSection = memo(({ release, onAfterDownload }) => {
156190
const intl = useIntl();
157191
const detectedAsset = useMachineOS(release.assetsByOs, release.publishedAt);
@@ -367,7 +401,7 @@ const Link = memo(({ href, icon, title, description }) => (
367401
));
368402

369403
export const query = graphql`
370-
query($selectedReleases: [String!]!) {
404+
query($selectedReleases: [String!]!, $selectedPreReleases: [String!]!) {
371405
releases: allFile(
372406
filter: {
373407
sourceInstanceName: { eq: "download" }
@@ -381,6 +415,33 @@ export const query = graphql`
381415
name
382416
tagName
383417
publishedAt
418+
isPrerelease
419+
releaseAssets {
420+
edges {
421+
node {
422+
name
423+
downloadUrl
424+
size
425+
}
426+
}
427+
}
428+
}
429+
}
430+
}
431+
prereleases: allFile(
432+
filter: {
433+
sourceInstanceName: { eq: "download" }
434+
relativeDirectory: { eq: "releases" }
435+
childJson: { tagName: { in: $selectedPreReleases } }
436+
}
437+
sort: { fields: childJson___name, order: DESC }
438+
) {
439+
nodes {
440+
childJson {
441+
name
442+
tagName
443+
publishedAt
444+
isPrerelease
384445
releaseAssets {
385446
edges {
386447
node {

0 commit comments

Comments
 (0)