Skip to content

Commit 25e8353

Browse files
committed
Finally parse upstream releases data properly
This ports our `versions.sh` script to finally actually parse https://github.com/ruby/www.ruby-lang.org/raw/master/_data/releases.yml directly instead of scraping the data from the webpages generated from it. Additionally, this *should* allow us to automatically pick up GA releases after the pre-release (we can find out whether it worked next week!)
1 parent b166ecb commit 25e8353

File tree

12 files changed

+267
-105
lines changed

12 files changed

+267
-105
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.jq-template.awk
2+
.yq*

3.3-rc/alpine3.18/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.3-rc/alpine3.19/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.3-rc/bookworm/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.3-rc/bullseye/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.3-rc/slim-bookworm/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.3-rc/slim-bullseye/Dockerfile

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Dockerfile.template

+14-1
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,17 @@ RUN set -eux; \
5050
} >> /usr/local/etc/gemrc
5151

5252
ENV LANG C.UTF-8
53+
{{ if .version | . == "3.0.6" or . == "3.1.4" or . == "3.2.2" then ( -}}
5354
ENV RUBY_MAJOR {{ env.version }}
5455
ENV RUBY_VERSION {{ .version }}
55-
ENV RUBY_DOWNLOAD_SHA256 {{ .sha256 }}
56+
ENV RUBY_DOWNLOAD_SHA256 {{ .sha256.xz }}
57+
{{ ) else ( -}}
58+
59+
# https://www.ruby-lang.org/{{ .post | ltrimstr("/") }}
60+
ENV RUBY_VERSION {{ .version }}
61+
ENV RUBY_DOWNLOAD_URL {{ .url.xz }}
62+
ENV RUBY_DOWNLOAD_SHA256 {{ .sha256.xz }}
63+
{{ ) end -}}
5664

5765
# some of ruby's build scripts are written in ruby
5866
# we purge system ruby later to make sure our final image uses what we just built
@@ -189,7 +197,12 @@ RUN set -eux; \
189197
fi; \
190198
{{ ) else "" end -}}
191199
\
200+
{{ if .version | . == "3.0.6" or . == "3.1.4" or . == "3.2.2" then ( -}}
201+
{{ if .url.xz != "https://cache.ruby-lang.org/pub/ruby/\(env.version | rtrimstr("-rc"))/ruby-\(.version).tar.xz" then error("url for \(.version) is not as expected!") else "" end -}}
192202
wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz"; \
203+
{{ ) else ( -}}
204+
wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; \
205+
{{ ) end -}}
193206
echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \
194207
\
195208
mkdir -p /usr/src/ruby; \

apply-templates.sh

+5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ for version; do
3232

3333
rm -rf "$version/"
3434

35+
if jq -e '.[env.version] | not' versions.json > /dev/null; then
36+
echo "deleting $version ..."
37+
continue
38+
fi
39+
3540
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
3641
eval "variants=( $variants )"
3742

generate-stackbrew-library.sh

+5-2
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,14 @@ join() {
7575

7676
for version; do
7777
export version
78+
79+
if ! fullVersion="$(jq -er '.[env.version] | if . then .version else empty end' versions.json)"; then
80+
continue
81+
fi
82+
7883
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
7984
eval "variants=( $variants )"
8085

81-
fullVersion="$(jq -r '.[env.version].version' versions.json)"
82-
8386
versionAliases=(
8487
$fullVersion
8588
$version

versions.json

+132-21
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,116 @@
11
{
22
"3.0": {
3-
"sha256": "b5cbee93e62d85cfb2a408c49fa30a74231ae8409c2b3858e5f5ea254d7ddbd1",
3+
"version": "3.0.6",
4+
"date": "2023-03-30",
5+
"post": "/en/news/2023/03/30/ruby-3-0-6-released/",
6+
"url": {
7+
"gz": "https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz",
8+
"xz": "https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.xz",
9+
"zip": "https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.zip"
10+
},
11+
"size": {
12+
"gz": 21315725,
13+
"xz": 15864560,
14+
"zip": 25694359
15+
},
16+
"sha1": {
17+
"gz": "1052441f0abbb0302fb9f1481d2db99dfb4d4c29",
18+
"xz": "7880c34d7193224e967163b12f33bf7aaf7304f6",
19+
"zip": "e75d1bc14dd89c176145dc3968774e30f3a17652"
20+
},
21+
"sha256": {
22+
"gz": "6e6cbd490030d7910c0ff20edefab4294dfcd1046f0f8f47f78b597987ac683e",
23+
"xz": "b5cbee93e62d85cfb2a408c49fa30a74231ae8409c2b3858e5f5ea254d7ddbd1",
24+
"zip": "428d518d12f09df4146fc31dbed47c8d7e10fcccd2426948e5c0862d9321480d"
25+
},
26+
"sha512": {
27+
"gz": "d596bfd374ae777717379b409afe8ee1655ade0c0539ada7a10af4780b818efe25a28aa50a2a7226741d1776d744e10ad916641f9d12fb31c7444b0a01d0e0cc",
28+
"xz": "abbf883cd9f3ddbd171df8f8c3cd35d930623c4c01a5e01387de0aee9811cca7604b82163e18e04f809773bf1ca5a450f13f62f3db14f191f610e116ae4fa6f8",
29+
"zip": "576d11c668acac57cf4952228b148d17f16ab1dc491145355a4f2068b15f6cab8a4007a84d9d1eda4c1b62837675c82be99ebe6379c314f46c6ebbbf89677b5e"
30+
},
431
"variants": [
532
"bullseye",
633
"slim-bullseye",
734
"buster",
835
"slim-buster",
936
"alpine3.16"
10-
],
11-
"version": "3.0.6"
37+
]
1238
},
1339
"3.1": {
14-
"sha256": "1b6d6010e76036c937b9671f4752f065aeca800a6c664f71f6c9a699453af94f",
40+
"version": "3.1.4",
41+
"date": "2023-03-30",
42+
"post": "/en/news/2023/03/30/ruby-3-1-4-released/",
43+
"url": {
44+
"gz": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz",
45+
"xz": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.xz",
46+
"zip": "https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.zip"
47+
},
48+
"size": {
49+
"gz": 20917933,
50+
"xz": 15316604,
51+
"zip": 25241255
52+
},
53+
"sha1": {
54+
"gz": "38eddfc5a7536b6c8133183563009a4ed9bbe6db",
55+
"xz": "2e2fbf43b7db6f24280548a3544912535bed8212",
56+
"zip": "1061632623caa82a68a04a35777ed8f1797a9f8f"
57+
},
58+
"sha256": {
59+
"gz": "a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6",
60+
"xz": "1b6d6010e76036c937b9671f4752f065aeca800a6c664f71f6c9a699453af94f",
61+
"zip": "1fce1ab3d61d10a857dc821dab6e77fa41d0663c5dbbfaa5d9b9c2bdec5ce303"
62+
},
63+
"sha512": {
64+
"gz": "41cf1561dd7eb249bb2c2f5ea958884880648cc1d11da9315f14158a2d0ff94b2c5c7d75291a67e57e1813d2ec7b618e5372a9f18ee93be6ed306f47b0d3199a",
65+
"xz": "a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633",
66+
"zip": "3a334302df97c2c7fec3c2d05d19a40b1ec6f95fef52c85d397196ce62fac4834f96783f0ac7fcba6e2a670f004bcc275db6f1810ace6c68a594e7d2fd9b297b"
67+
},
1568
"variants": [
1669
"bookworm",
1770
"slim-bookworm",
1871
"bullseye",
1972
"slim-bullseye",
2073
"alpine3.19",
2174
"alpine3.18"
22-
],
23-
"version": "3.1.4"
75+
]
2476
},
2577
"3.2": {
78+
"version": "3.2.2",
79+
"date": "2023-03-30",
80+
"post": "/en/news/2023/03/30/ruby-3-2-2-released/",
81+
"url": {
82+
"gz": "https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz",
83+
"xz": "https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz",
84+
"zip": "https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.zip"
85+
},
86+
"size": {
87+
"gz": 20467023,
88+
"xz": 15118856,
89+
"zip": 24615317
90+
},
91+
"sha1": {
92+
"gz": "670fce00d83771a1349b116e56a8a3b0ad323769",
93+
"xz": "087af286b70b0e17f88c9c4469b471eca2010161",
94+
"zip": "a1b6d57019d41dca269b4b16a80784755d34b81d"
95+
},
96+
"sha256": {
97+
"gz": "96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc",
98+
"xz": "4b352d0f7ec384e332e3e44cdbfdcd5ff2d594af3c8296b5636c710975149e23",
99+
"zip": "cc216ecb4f49064d8f44e10ecf9218cfd7b28cf4168bb79ecdf171e321db4af1"
100+
},
101+
"sha512": {
102+
"gz": "bcc68f3f24c1c8987d9c80b57332e5791f25b935ba38daf5addf60dbfe3a05f9dcaf21909681b88e862c67c6ed103150f73259c6e35c564f13a00f432e3c1e46",
103+
"xz": "a29f24cd80f563f6368952d06d6273f7241a409fa9ab2f60e03dde2ac58ca06bee1750715b6134caebf4c061d3503446dc37a6059e19860bb0010eef34951935",
104+
"zip": "569a68d89cc9a646cd0319d7cb8d57df3a55c0ac2c64f1f61607cc9c06b3aa8415eb8d38f7893ab3dbf072da9e919fbc454a9338e924c20a6a5110a1fa301d52"
105+
},
106+
"variants": [
107+
"bookworm",
108+
"slim-bookworm",
109+
"bullseye",
110+
"slim-bullseye",
111+
"alpine3.19",
112+
"alpine3.18"
113+
],
26114
"rust": {
27115
"version": "1.74.1"
28116
},
@@ -54,8 +142,44 @@
54142
}
55143
},
56144
"version": "1.26.0"
145+
}
146+
},
147+
"3.3": null,
148+
"3.3-rc": {
149+
"version": "3.3.0-rc1",
150+
"date": "2023-12-11",
151+
"post": "/en/news/2023/12/11/ruby-3-3-0-rc1-released/",
152+
"tag": "v3_3_0_rc1",
153+
"stats": {
154+
"files_changed": 5414,
155+
"insertions": 306141,
156+
"deletions": 183575
157+
},
158+
"url": {
159+
"gz": "https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-rc1.tar.gz",
160+
"zip": "https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-rc1.zip",
161+
"xz": "https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-rc1.tar.xz"
162+
},
163+
"size": {
164+
"gz": 21783575,
165+
"zip": 26735443,
166+
"xz": 16163884
167+
},
168+
"sha1": {
169+
"gz": "c75a860e06f27b7f69b874757417277c21d1d3f4",
170+
"zip": "35583453a7734216b08829ef0ec9ea1bc0d4ae7f",
171+
"xz": "26503f9bdc7d0a05aaa9836f54d3aa9e74a9ead9"
172+
},
173+
"sha256": {
174+
"gz": "c4ff82395a90ef76c7f906b7687026e0ab96b094dcf3a532d9ab97784a073222",
175+
"zip": "56dd82e1dd714f2889ca975ae7befbe005675de08839c2cc4a484de2ae65201c",
176+
"xz": "051815637f1fa75a1edf2c54b66d5d5b69563daad777da8dc39543b7754b5290"
177+
},
178+
"sha512": {
179+
"gz": "265fb2ffe55af47d8349edffcebe749cc170291227cef55529fe4e67363e4e84b88daa34ffb5364a99c8a0e32110266a34c9a11d62f3bd6f6d47fa76eca641f4",
180+
"zip": "7fbe414c230aedc9f364512bcbc213038f8f6e4268929a559d2527e2f3e32a140b394e37098ab7e59161236eca8b89cc9e52d73a3be8d7bd44faa91681483f5d",
181+
"xz": "82f4acfaad1dc47db27ee3eb952481a95b3474a98059e9e9f5ceb035b690d1faabe99f2ec52371c4089ed1615eb10c395f029088418fec4d26399b65b4f259b9"
57182
},
58-
"sha256": "4b352d0f7ec384e332e3e44cdbfdcd5ff2d594af3c8296b5636c710975149e23",
59183
"variants": [
60184
"bookworm",
61185
"slim-bookworm",
@@ -64,9 +188,6 @@
64188
"alpine3.19",
65189
"alpine3.18"
66190
],
67-
"version": "3.2.2"
68-
},
69-
"3.3-rc": {
70191
"rust": {
71192
"version": "1.74.1"
72193
},
@@ -98,16 +219,6 @@
98219
}
99220
},
100221
"version": "1.26.0"
101-
},
102-
"sha256": "051815637f1fa75a1edf2c54b66d5d5b69563daad777da8dc39543b7754b5290",
103-
"variants": [
104-
"bookworm",
105-
"slim-bookworm",
106-
"bullseye",
107-
"slim-bullseye",
108-
"alpine3.19",
109-
"alpine3.18"
110-
],
111-
"version": "3.3.0-rc1"
222+
}
112223
}
113224
}

0 commit comments

Comments
 (0)