From 00f43d38659dd78c1daefc5d10ee90cb1ad47acd Mon Sep 17 00:00:00 2001 From: Joseph Ferguson Date: Mon, 28 Sep 2026 17:04:00 -0700 Subject: [PATCH 1/2] Fix jq bugs when version is null (like removed RCs) --- generate-stackbrew-library.jq | 4 ++-- generate-stackbrew-library.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/generate-stackbrew-library.jq b/generate-stackbrew-library.jq index 45dd7589..da391dc9 100644 --- a/generate-stackbrew-library.jq +++ b/generate-stackbrew-library.jq @@ -1,7 +1,7 @@ include "shared"; -to_entries -| map_values(select(.)) # ignore nulls ("rc" post-GA) +map_values(select(.)) # ignore nulls ("rc" post-GA) +| to_entries | ( # our entries are in precedence order, so loop over them in order and assign "generic" tags like "1" to the first entry that might use them diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index fba17b74..ae3fc700 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -17,7 +17,7 @@ getArches() { --arg repo "$repo" ' include "shared"; [ - from(.[].variants[]) + from(.[].variants[]?) # ? to fix "Cannot iterate over null" when RCs are removed | select(startswith($repo + ":") or index("/") | not) ] | unique[] From da9393f51464ceeb7887ae2ca3ba3c89e54e6647 Mon Sep 17 00:00:00 2001 From: Joseph Ferguson Date: Mon, 28 Sep 2026 17:05:47 -0700 Subject: [PATCH 2/2] Drop RC version (stable is newer) --- rc/bookworm/Dockerfile | 83 ----------------------- rc/bookworm/docker-entrypoint.sh | 11 --- rc/trixie/Dockerfile | 83 ----------------------- rc/trixie/docker-entrypoint.sh | 11 --- rc/windows/servercore-ltsc2022/Dockerfile | 46 ------------- rc/windows/servercore-ltsc2025/Dockerfile | 46 ------------- versions.json | 44 +----------- 7 files changed, 1 insertion(+), 323 deletions(-) delete mode 100644 rc/bookworm/Dockerfile delete mode 100755 rc/bookworm/docker-entrypoint.sh delete mode 100644 rc/trixie/Dockerfile delete mode 100755 rc/trixie/docker-entrypoint.sh delete mode 100644 rc/windows/servercore-ltsc2022/Dockerfile delete mode 100644 rc/windows/servercore-ltsc2025/Dockerfile diff --git a/rc/bookworm/Dockerfile b/rc/bookworm/Dockerfile deleted file mode 100644 index 0ff39395..00000000 --- a/rc/bookworm/Dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM debian:bookworm-slim - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ -# ERROR: no download agent available; install curl, wget, or fetch - curl \ - ; \ - rm -rf /var/lib/apt/lists/* - -ENV JULIA_PATH /usr/local/julia -ENV PATH $JULIA_PATH/bin:$PATH - -# https://julialang.org/assets/juliareleases.asc -# Julia (Binary signing key) -ENV JULIA_GPG 64B779A570972FFF7BFC2B54EAD471E1A1F2C10A - -# https://julialang.org/downloads/ -ENV JULIA_VERSION 1.13.0-rc4 - -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - gnupg \ - ; \ - rm -rf /var/lib/apt/lists/*; \ - \ -# https://julialang.org/downloads/#julia-command-line-version -# https://julialang-s3.julialang.org/bin/checksums/julia-1.13.0-rc4.sha256 - arch="$(dpkg --print-architecture)"; \ - case "$arch" in \ - 'amd64') \ - url='https://julialang-s3.julialang.org/bin/linux/x64/1.13/julia-1.13.0-rc4-linux-x86_64.tar.gz'; \ - sha256='a66e5b87876cc1316f170014315b22e3b717dd952c74a23634bda629ad2c2b68'; \ - ;; \ - 'i386') \ - url='https://julialang-s3.julialang.org/bin/linux/x86/1.13/julia-1.13.0-rc4-linux-i686.tar.gz'; \ - sha256='e251827ae02a4acba561952e68ec2f5448331975783bc6f50c146104bb7b63a1'; \ - ;; \ - 'arm64') \ - url='https://julialang-s3.julialang.org/bin/linux/aarch64/1.13/julia-1.13.0-rc4-linux-aarch64.tar.gz'; \ - sha256='a42e1bce94b3d3283ff74e9fe3188bf4f6872ec8609fb6ec5e8ef32b2b5a4ef4'; \ - ;; \ - *) \ - echo >&2 "error: current architecture ($arch) does not have a corresponding Julia binary release"; \ - exit 1; \ - ;; \ - esac; \ - \ - curl -fL -o julia.tar.gz.asc "$url.asc"; \ - curl -fL -o julia.tar.gz "$url"; \ - \ - echo "$sha256 *julia.tar.gz" | sha256sum --strict --check -; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \ - gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" julia.tar.gz.asc; \ - \ - mkdir "$JULIA_PATH"; \ - tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \ - rm julia.tar.gz; \ - \ - apt-mark auto '.*' > /dev/null; \ - [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - \ -# smoke test - julia --version - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["julia"] diff --git a/rc/bookworm/docker-entrypoint.sh b/rc/bookworm/docker-entrypoint.sh deleted file mode 100755 index b3806f97..00000000 --- a/rc/bookworm/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -eu - -# first arg is `-e` or `--some-option` (docker run julia -e '42') -# ... is a "*.jl" file (docker run -v ...:/my/file.jl:ro julia /my/file.jl) -# ... or there are no args -if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ] || [ "${1%.jl}" != "$1" ]; then - exec julia "$@" -fi - -exec "$@" diff --git a/rc/trixie/Dockerfile b/rc/trixie/Dockerfile deleted file mode 100644 index de4abc75..00000000 --- a/rc/trixie/Dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM debian:trixie-slim - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ -# ERROR: no download agent available; install curl, wget, or fetch - curl \ - ; \ - rm -rf /var/lib/apt/lists/* - -ENV JULIA_PATH /usr/local/julia -ENV PATH $JULIA_PATH/bin:$PATH - -# https://julialang.org/assets/juliareleases.asc -# Julia (Binary signing key) -ENV JULIA_GPG 64B779A570972FFF7BFC2B54EAD471E1A1F2C10A - -# https://julialang.org/downloads/ -ENV JULIA_VERSION 1.13.0-rc4 - -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - gnupg \ - ; \ - rm -rf /var/lib/apt/lists/*; \ - \ -# https://julialang.org/downloads/#julia-command-line-version -# https://julialang-s3.julialang.org/bin/checksums/julia-1.13.0-rc4.sha256 - arch="$(dpkg --print-architecture)"; \ - case "$arch" in \ - 'amd64') \ - url='https://julialang-s3.julialang.org/bin/linux/x64/1.13/julia-1.13.0-rc4-linux-x86_64.tar.gz'; \ - sha256='a66e5b87876cc1316f170014315b22e3b717dd952c74a23634bda629ad2c2b68'; \ - ;; \ - 'i386') \ - url='https://julialang-s3.julialang.org/bin/linux/x86/1.13/julia-1.13.0-rc4-linux-i686.tar.gz'; \ - sha256='e251827ae02a4acba561952e68ec2f5448331975783bc6f50c146104bb7b63a1'; \ - ;; \ - 'arm64') \ - url='https://julialang-s3.julialang.org/bin/linux/aarch64/1.13/julia-1.13.0-rc4-linux-aarch64.tar.gz'; \ - sha256='a42e1bce94b3d3283ff74e9fe3188bf4f6872ec8609fb6ec5e8ef32b2b5a4ef4'; \ - ;; \ - *) \ - echo >&2 "error: current architecture ($arch) does not have a corresponding Julia binary release"; \ - exit 1; \ - ;; \ - esac; \ - \ - curl -fL -o julia.tar.gz.asc "$url.asc"; \ - curl -fL -o julia.tar.gz "$url"; \ - \ - echo "$sha256 *julia.tar.gz" | sha256sum --strict --check -; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \ - gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" julia.tar.gz.asc; \ - \ - mkdir "$JULIA_PATH"; \ - tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \ - rm julia.tar.gz; \ - \ - apt-mark auto '.*' > /dev/null; \ - [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - \ -# smoke test - julia --version - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["julia"] diff --git a/rc/trixie/docker-entrypoint.sh b/rc/trixie/docker-entrypoint.sh deleted file mode 100755 index b3806f97..00000000 --- a/rc/trixie/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -eu - -# first arg is `-e` or `--some-option` (docker run julia -e '42') -# ... is a "*.jl" file (docker run -v ...:/my/file.jl:ro julia /my/file.jl) -# ... or there are no args -if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ] || [ "${1%.jl}" != "$1" ]; then - exec julia "$@" -fi - -exec "$@" diff --git a/rc/windows/servercore-ltsc2022/Dockerfile b/rc/windows/servercore-ltsc2022/Dockerfile deleted file mode 100644 index b44a1ff1..00000000 --- a/rc/windows/servercore-ltsc2022/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM mcr.microsoft.com/windows/servercore:ltsc2022 - -# $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324 -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - -ENV JULIA_VERSION 1.13.0-rc4 -ENV JULIA_URL https://julialang-s3.julialang.org/bin/winnt/x64/1.13/julia-1.13.0-rc4-win64.exe -ENV JULIA_SHA256 1a7cbc243d576485d59d085872d0beb4f8fe977bfa25c37979c4e16a36e47cde - -RUN Write-Host ('Downloading {0} ...' -f $env:JULIA_URL); \ - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ - Invoke-WebRequest -Uri $env:JULIA_URL -OutFile 'julia.exe'; \ - \ - Write-Host ('Verifying sha256 ({0}) ...' -f $env:JULIA_SHA256); \ - if ((Get-FileHash julia.exe -Algorithm sha256).Hash -ne $env:JULIA_SHA256) { \ - Write-Host 'FAILED!'; \ - exit 1; \ - }; \ - \ - Write-Host 'Installing ...'; \ - Start-Process -Wait -NoNewWindow \ - -FilePath '.\julia.exe' \ - -ArgumentList @( \ - '/SILENT', \ - '/DIR=C:\julia' \ - ); \ - \ - Write-Host 'Removing ...'; \ - Remove-Item julia.exe -Force; \ - \ - Write-Host 'Updating PATH ...'; \ - $env:PATH = 'C:\julia\bin;' + $env:PATH; \ - [Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine); \ - \ - Write-Host 'Verifying install ("julia --version") ...'; \ - julia --version; \ - \ - Write-Host 'Complete.' - -CMD ["julia"] diff --git a/rc/windows/servercore-ltsc2025/Dockerfile b/rc/windows/servercore-ltsc2025/Dockerfile deleted file mode 100644 index 9911ef9f..00000000 --- a/rc/windows/servercore-ltsc2025/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM mcr.microsoft.com/windows/servercore:ltsc2025 - -# $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324 -SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - -ENV JULIA_VERSION 1.13.0-rc4 -ENV JULIA_URL https://julialang-s3.julialang.org/bin/winnt/x64/1.13/julia-1.13.0-rc4-win64.exe -ENV JULIA_SHA256 1a7cbc243d576485d59d085872d0beb4f8fe977bfa25c37979c4e16a36e47cde - -RUN Write-Host ('Downloading {0} ...' -f $env:JULIA_URL); \ - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ - Invoke-WebRequest -Uri $env:JULIA_URL -OutFile 'julia.exe'; \ - \ - Write-Host ('Verifying sha256 ({0}) ...' -f $env:JULIA_SHA256); \ - if ((Get-FileHash julia.exe -Algorithm sha256).Hash -ne $env:JULIA_SHA256) { \ - Write-Host 'FAILED!'; \ - exit 1; \ - }; \ - \ - Write-Host 'Installing ...'; \ - Start-Process -Wait -NoNewWindow \ - -FilePath '.\julia.exe' \ - -ArgumentList @( \ - '/SILENT', \ - '/DIR=C:\julia' \ - ); \ - \ - Write-Host 'Removing ...'; \ - Remove-Item julia.exe -Force; \ - \ - Write-Host 'Updating PATH ...'; \ - $env:PATH = 'C:\julia\bin;' + $env:PATH; \ - [Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine); \ - \ - Write-Host 'Verifying install ("julia --version") ...'; \ - julia --version; \ - \ - Write-Host 'Complete.' - -CMD ["julia"] diff --git a/versions.json b/versions.json index e54fbe32..cdc390ba 100644 --- a/versions.json +++ b/versions.json @@ -132,47 +132,5 @@ "windows/servercore-ltsc2022" ] }, - "rc": { - "version": "1.13.0-rc4", - "arches": { - "amd64": { - "url": "https://julialang-s3.julialang.org/bin/linux/x64/1.13/julia-1.13.0-rc4-linux-x86_64.tar.gz", - "sha256": "a66e5b87876cc1316f170014315b22e3b717dd952c74a23634bda629ad2c2b68" - }, - "i386": { - "url": "https://julialang-s3.julialang.org/bin/linux/x86/1.13/julia-1.13.0-rc4-linux-i686.tar.gz", - "sha256": "e251827ae02a4acba561952e68ec2f5448331975783bc6f50c146104bb7b63a1" - }, - "arm64v8": { - "url": "https://julialang-s3.julialang.org/bin/linux/aarch64/1.13/julia-1.13.0-rc4-linux-aarch64.tar.gz", - "sha256": "a42e1bce94b3d3283ff74e9fe3188bf4f6872ec8609fb6ec5e8ef32b2b5a4ef4" - }, - "darwin-amd64": { - "url": "https://julialang-s3.julialang.org/bin/mac/x64/1.13/julia-1.13.0-rc4-mac64.tar.gz", - "sha256": "6ec9e53bb7157c28ae2a15076c8c3894f361f3b4d1b92d668b42845f880ddbf9" - }, - "darwin-arm64v8": { - "url": "https://julialang-s3.julialang.org/bin/mac/aarch64/1.13/julia-1.13.0-rc4-macaarch64.tar.gz", - "sha256": "f0e003acccd2f46d8215d5fa2508981f753c065171c7f1d8b0f0ae5766844777" - }, - "windows-amd64": { - "url": "https://julialang-s3.julialang.org/bin/winnt/x64/1.13/julia-1.13.0-rc4-win64.exe", - "sha256": "1a7cbc243d576485d59d085872d0beb4f8fe977bfa25c37979c4e16a36e47cde" - }, - "windows-i386": { - "url": "https://julialang-s3.julialang.org/bin/winnt/x86/1.13/julia-1.13.0-rc4-win32.exe", - "sha256": "979ff41f0c5281347a569cdd47c09f2c6ed7a694b4dd1c8d38fd77c86366ca90" - }, - "freebsd-amd64": { - "url": "https://julialang-s3.julialang.org/bin/freebsd/x64/1.13/julia-1.13.0-rc4-freebsd-x86_64.tar.gz", - "sha256": "506bb7ab884faff4a72ff125157f483ff08e6218becd130e2b9ca0774840fc09" - } - }, - "variants": [ - "trixie", - "bookworm", - "windows/servercore-ltsc2025", - "windows/servercore-ltsc2022" - ] - } + "rc": null }