From f9c452125268d80991a20b1d5f0012532160edea Mon Sep 17 00:00:00 2001 From: Mark Probst Date: Mon, 20 Jul 2026 09:25:46 -0400 Subject: [PATCH] test(elm): move the Elm toolchain to 0.19.2 Elm 0.19.2 (released 2026-07-06) is a compiler performance release with no language changes. It refuses to build applications whose elm.json declares 0.19.1, so the fixture's elm.json now declares 0.19.2, and CI downloads the 0.19.2 binary (the release assets are named elm-0.19.2-linux-x64.gz; the old binary-for-linux-64-bit.gz naming is gone). The `Warmup.elm` cache pre-warm stays: concurrent cold-cache builds still corrupt the shared ELM_HOME package cache with 0.19.2 (verified: 16 parallel cold-cache `elm make` runs consistently fail without the warmup, and the fixtures pass with it). Co-Authored-By: Claude Fable 5 --- .github/workflows/test-pr.yaml | 2 +- test/fixtures/elm/Warmup.elm | 3 ++- test/fixtures/elm/elm.json | 2 +- test/languages.ts | 5 +++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml index da9bd1061e..7001f80230 100644 --- a/.github/workflows/test-pr.yaml +++ b/.github/workflows/test-pr.yaml @@ -134,7 +134,7 @@ jobs: - name: Install Elm if: ${{ contains(matrix.fixture, 'elm') }} run: | - curl -L -o elm.gz https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz + curl -L -o elm.gz https://github.com/elm/compiler/releases/download/0.19.2/elm-0.19.2-linux-x64.gz gunzip elm.gz chmod +x elm sudo mv elm /usr/local/bin/ diff --git a/test/fixtures/elm/Warmup.elm b/test/fixtures/elm/Warmup.elm index c0b29a36af..d16256ba17 100644 --- a/test/fixtures/elm/Warmup.elm +++ b/test/fixtures/elm/Warmup.elm @@ -3,7 +3,8 @@ module Warmup exposing (warmup) {-| Compiled once by the fixture's setup command so that all package dependencies are downloaded and built into the shared ELM_HOME cache before the per-sample compiles run in parallel. Concurrent cold-cache -downloads can corrupt elm 0.19.1's package registry. +builds corrupt elm's shared package cache (still reproducible with +elm 0.19.2). -} import Dict exposing (Dict) diff --git a/test/fixtures/elm/elm.json b/test/fixtures/elm/elm.json index 47fcea36e2..7489e93007 100644 --- a/test/fixtures/elm/elm.json +++ b/test/fixtures/elm/elm.json @@ -1,7 +1,7 @@ { "type": "application", "source-directories": ["."], - "elm-version": "0.19.1", + "elm-version": "0.19.2", "dependencies": { "direct": { "NoRedInk/elm-json-decode-pipeline": "1.0.1", diff --git a/test/languages.ts b/test/languages.ts index 69b5fecb77..417fa61091 100644 --- a/test/languages.ts +++ b/test/languages.ts @@ -732,8 +732,9 @@ export const ElmLanguage: Language = { name: "elm", base: "test/fixtures/elm", // Compiling `Warmup.elm` once up front downloads and builds all package - // dependencies into the shared ELM_HOME cache; elm 0.19.1 can corrupt - // its package registry when parallel compiles race on a cold cache. + // dependencies into the shared ELM_HOME cache; elm corrupts its shared + // package cache when parallel compiles race on a cold cache (still + // reproducible with elm 0.19.2). setupCommand: "rm -rf elm-stuff && elm make Warmup.elm --output=/dev/null", compileCommand: "elm make Main.elm --output elm.js", runCommand(sample: string) {