Skip to content

Commit f6a08b7

Browse files
committed
track per-release download size
1 parent 6b6b5da commit f6a08b7

19 files changed

+390
-232
lines changed

src/components/WARPRelease.astro

Lines changed: 76 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { marked } from "marked";
44
import { z } from "astro:schema";
55
import prettyBytes from "pretty-bytes";
66
import { warpReleasesSchema } from "~/schemas";
7+
import platforms from "~/util/warp-platforms.json";
78
89
type Props = z.infer<typeof props>;
910
@@ -16,124 +17,106 @@ const props = z.object({
1617
const { header, open, release } = props.parse(Astro.props);
1718
1819
const getPrettyLinuxName = (platform: string) => {
19-
switch (platform) {
20-
case "noble-intel":
21-
return "Ubuntu Noble (Intel)";
22-
case "noble-arm":
23-
return "Ubuntu Noble (Arm)";
24-
case "jammy-intel":
25-
return "Ubuntu Jammy (Intel)";
26-
case "jammy-arm":
27-
return "Ubuntu Jammy (Arm)";
28-
case "focal-intel":
29-
return "Ubuntu Focal (Intel)";
30-
case "focal-arm":
31-
return "Ubuntu Focal (Arm)";
32-
case "buster-intel":
33-
return "Debian Buster (Intel)";
34-
case "buster-arm":
35-
return "Ubuntu Buster (Arm)";
36-
case "bullseye-intel":
37-
return "Debian Bullseye (Intel)";
38-
case "bullseye-arm":
39-
return "Debian Bullseye (Arm)";
40-
case "bookworm-intel":
41-
return "Debian Bookworm (Intel)";
42-
case "bookworm-arm":
43-
return "Debian Bookworm (Arm)";
44-
case "centos8-intel":
45-
return "Centos 8 (Intel)";
46-
case "centos8-arm":
47-
return "Centos 8 (Arm)";
48-
case "fedora34-intel":
49-
return "Fedora 34 (Intel)";
50-
case "fedora34-arm":
51-
return "Fedora 34 (Arm)";
52-
case "fedora35-intel":
53-
return "Fedora 35 (Intel)";
54-
case "fedora35-arm":
55-
return "Fedora 35 (Arm)";
56-
default:
57-
return platform;
20+
const platformInfo = platforms.find(p => p.platform === platform);
21+
22+
if (platformInfo) {
23+
return platformInfo.display_name;
5824
}
25+
26+
return platform;
5927
};
6028
61-
release.linuxPlatforms?.sort((a, b) => {
62-
return getPrettyLinuxName(a).localeCompare(getPrettyLinuxName(b));
63-
});
29+
const sortedPlatforms = Object.entries(release.linuxPlatforms ?? {}).sort(
30+
(a, b) => {
31+
return getPrettyLinuxName(a[0]).localeCompare(getPrettyLinuxName(b[0]));
32+
},
33+
);
6434
---
6535

6636
<Details header={header} open={open}>
67-
<p>
68-
<div class="flex gap-2">
37+
<warp-download data-version={release.version} data-platforms={JSON.stringify(sortedPlatforms)}>
38+
<p>
39+
<div class="flex gap-2">
40+
<span>
41+
<strong>Version: </strong>
42+
{release.platformName}
43+
{release.version}
44+
</span>
45+
<span>
46+
<strong>Date: </strong>
47+
{release.releaseDate.toISOString().split("T")[0]}
48+
</span>
49+
{
50+
release.packageSize && (
51+
<span>
52+
<strong>Size: </strong>
53+
<span data-size>{prettyBytes(release.packageSize)}</span>
54+
</span>
55+
)
56+
}
57+
</div>
58+
</p>
59+
<p>
6960
<span>
70-
<strong>Version: </strong>
71-
{release.platformName}
72-
{release.version}
61+
{
62+
release.linuxPlatforms ? (
63+
<select>
64+
{sortedPlatforms.map(([platform]) => (
65+
<option value={platform}>
66+
{getPrettyLinuxName(platform)}
67+
</option>
68+
))}
69+
</select>
70+
<a
71+
class="inline-block"
72+
data-linux-download
73+
href={`https://downloads.cloudflareclient.com/v1/download/${release.linuxPlatforms[0]}/version/${release.version}`}
74+
>
75+
Download
76+
</a>
77+
) : (
78+
<a href={release.packageURL}>Download</a>
79+
)
80+
}
7381
</span>
82+
</p>
83+
<p>
7484
<span>
75-
<strong>Date: </strong>
76-
{release.releaseDate.toISOString().split("T")[0]}
85+
<h4>Release notes</h4>
7786
</span>
78-
{
79-
release.packageSize && (
80-
<span>
81-
<strong>Size: </strong>
82-
{prettyBytes(release.packageSize)}
83-
</span>
84-
)
85-
}
86-
</div>
87-
</p>
88-
<p>
89-
<span>
90-
{
91-
release.linuxPlatforms ? (
92-
<warp-linux-downloads data-version={release.version}>
93-
<select>
94-
{release.linuxPlatforms.map((platform) => (
95-
<option value={platform}>{getPrettyLinuxName(platform)}</option>
96-
))}
97-
</select>
98-
<a
99-
class="inline-block"
100-
href={`https://downloads.cloudflareclient.com/v1/download/${release.linuxPlatforms[0]}/version/${release.version}`}
101-
>
102-
Download
103-
</a>
104-
</warp-linux-downloads>
105-
) : (
106-
<a href={release.packageURL}>Download</a>
107-
)
108-
}
109-
</span>
110-
</p>
111-
<p>
112-
<span>
113-
<h4>Release notes</h4>
114-
</span>
115-
<Fragment set:html={marked.parse(release.releaseNotes)} />
116-
</p>
87+
<Fragment set:html={marked.parse(release.releaseNotes)} />
88+
</p>
89+
</warp-download>
11790
</Details>
11891

11992
<script>
120-
class WarpLinuxDownloads extends HTMLElement {
93+
import prettyBytes from "pretty-bytes";
94+
95+
class WarpDownload extends HTMLElement {
12196
connectedCallback() {
97+
const platforms = JSON.parse(this.dataset.platforms as string);
98+
12299
const dropdown = this.querySelector<HTMLSelectElement>("select");
123100

124101
dropdown?.addEventListener("change", () => {
125-
console.log("change");
126102
const platform = dropdown?.value;
127-
const download = this.querySelector<HTMLAnchorElement>("a");
128103

129-
console.log(download);
104+
const download = this.querySelector<HTMLAnchorElement>("a[data-linux-download]");
105+
const size = this.querySelector<HTMLSpanElement>("span[data-size]");
106+
130107
download?.setAttribute(
131108
"href",
132109
`https://downloads.cloudflareclient.com/v1/download/${platform}/version/${this.dataset.version}`,
133110
);
111+
112+
if (size) {
113+
const platformInfo = platforms.find(([p]: [string, number]) => p === platform);
114+
115+
size.textContent = prettyBytes(Number(platformInfo?.[1] ?? 0));
116+
}
134117
});
135118
}
136119
}
137120

138-
customElements.define("warp-linux-downloads", WarpLinuxDownloads);
121+
customElements.define("warp-download", WarpDownload);
139122
</script>

src/content/warp-releases/linux/beta/2025.2.459.1.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ packageURL: https://downloads.cloudflareclient.com/v1/download/noble-intel/versi
2828
packageSize: 44462470
2929
platformName: Linux
3030
linuxPlatforms:
31-
- buster-intel
32-
- fedora34-intel
33-
- jammy-intel
34-
- fedora35-intel
35-
- bookworm-intel
36-
- focal-intel
37-
- bullseye-intel
38-
- centos8-intel
39-
- noble-intel
31+
noble-intel: 44462470
32+
buster-intel: 44952080
33+
focal-intel: 44913046
34+
fedora34-intel: 47124791
35+
fedora35-intel: 46859092
36+
jammy-intel: 44575658
37+
centos8-intel: 46730316
38+
bookworm-intel: 44577042
39+
bullseye-intel: 44883128

src/content/warp-releases/linux/beta/2025.2.460.1.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ packageURL: https://downloads.cloudflareclient.com/v1/download/noble-intel/versi
1111
packageSize: 44461586
1212
platformName: Linux
1313
linuxPlatforms:
14-
- buster-intel
15-
- fedora34-intel
16-
- jammy-intel
17-
- fedora35-intel
18-
- bookworm-intel
19-
- focal-intel
20-
- bullseye-intel
21-
- centos8-intel
22-
- noble-intel
14+
noble-intel: 44461586
15+
buster-intel: 44949796
16+
focal-intel: 44915238
17+
fedora34-intel: 47124281
18+
fedora35-intel: 46857904
19+
jammy-intel: 44573296
20+
centos8-intel: 46729306
21+
bookworm-intel: 44579760
22+
bullseye-intel: 44885436

src/content/warp-releases/linux/beta/2025.4.589.1.yaml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ packageURL: https://downloads.cloudflareclient.com/v1/download/noble-intel/versi
1313
packageSize: 45489326
1414
platformName: Linux
1515
linuxPlatforms:
16-
- fedora35-arm
17-
- bullseye-arm
18-
- buster-intel
19-
- focal-arm
20-
- fedora34-intel
21-
- jammy-intel
22-
- bookworm-arm
23-
- buster-arm
24-
- fedora35-intel
25-
- bookworm-intel
26-
- focal-intel
27-
- bullseye-intel
28-
- centos8-intel
29-
- noble-intel
30-
- centos8-arm
31-
- fedora34-arm
32-
- jammy-arm
33-
- noble-arm
16+
noble-intel: 45489326
17+
fedora34-arm: 47398622
18+
buster-intel: 46012030
19+
focal-intel: 45948596
20+
fedora34-intel: 48515297
21+
fedora35-arm: 47039916
22+
fedora35-intel: 48234480
23+
jammy-arm: 44396184
24+
jammy-intel: 45625680
25+
centos8-intel: 48112596
26+
bullseye-arm: 44630670
27+
buster-arm: 44689650
28+
bookworm-arm: 44384136
29+
noble-arm: 44697540
30+
focal-arm: 44693254
31+
centos8-arm: 47272576
32+
bookworm-intel: 45619140
33+
bullseye-intel: 45877522

src/content/warp-releases/linux/beta/2025.5.735.1.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ packageURL: https://downloads.cloudflareclient.com/v1/download/noble-intel/versi
1313
packageSize: 44611254
1414
platformName: Linux
1515
linuxPlatforms:
16-
- buster-intel
17-
- fedora34-intel
18-
- jammy-intel
19-
- fedora35-intel
20-
- bookworm-intel
21-
- focal-intel
22-
- bullseye-intel
23-
- centos8-intel
24-
- noble-intel
16+
noble-intel: 44611254
17+
buster-intel: 45155498
18+
focal-intel: 45061486
19+
fedora34-intel: 47657991
20+
fedora35-intel: 47353180
21+
jammy-intel: 44770824
22+
centos8-intel: 47261086
23+
bookworm-intel: 44769136
24+
bullseye-intel: 44976518

src/content/warp-releases/linux/beta/2025.5.828.1.yaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ packageURL: https://downloads.cloudflareclient.com/v1/download/fedora35-arm/vers
2929
packageSize: 46328458
3030
platformName: Linux
3131
linuxPlatforms:
32-
- bullseye-arm
33-
- buster-intel
34-
- focal-arm
35-
- fedora34-intel
36-
- jammy-intel
37-
- bookworm-arm
38-
- buster-arm
39-
- fedora35-intel
40-
- bookworm-intel
41-
- focal-intel
42-
- bullseye-intel
43-
- centos8-intel
44-
- centos8-arm
45-
- fedora34-arm
46-
- jammy-arm
47-
- fedora35-arm
48-
- noble-arm
32+
fedora34-arm: 46728884
33+
buster-intel: 45322742
34+
focal-intel: 45234594
35+
fedora34-intel: 47828110
36+
fedora35-arm: 46328458
37+
fedora35-intel: 47520289
38+
jammy-arm: 43688108
39+
jammy-intel: 44948160
40+
centos8-intel: 47429876
41+
bullseye-arm: 43912656
42+
buster-arm: 44001944
43+
bookworm-arm: 43672848
44+
noble-arm: 44060646
45+
focal-arm: 43982934
46+
centos8-arm: 46656662
47+
bookworm-intel: 44940678
48+
bullseye-intel: 45148134

src/content/warp-releases/linux/ga/2024.11.309.0.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ releaseDate: 2024-11-18
1616
packageURL: https://pkg.cloudflareclient.com/
1717
platformName: Linux
1818
linuxPlatforms:
19-
- noble-intel
19+
noble-intel: 44462470

src/content/warp-releases/linux/ga/2024.12.554.0.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ releaseDate: 2024-12-19
1717
packageURL: https://pkg.cloudflareclient.com/
1818
platformName: Linux
1919
linuxPlatforms:
20-
- noble-intel
20+
noble-intel: 44462470

src/content/warp-releases/linux/ga/2024.6.497.0.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ releaseDate: 2024-08-15
2424
packageURL: https://pkg.cloudflareclient.com/
2525
platformName: Linux
2626
linuxPlatforms:
27-
- noble-intel
27+
noble-intel: 44462470

src/content/warp-releases/linux/ga/2024.9.346.0.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ releaseDate: 2024-10-03
2626
packageURL: https://pkg.cloudflareclient.com/
2727
platformName: Linux
2828
linuxPlatforms:
29-
- noble-intel
29+
noble-intel: 44462470

0 commit comments

Comments
 (0)