From 953826f542316a7e8ef2680b8d9ebc238ff9be3c Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 30 May 2026 20:31:05 +0100 Subject: [PATCH 1/2] fix(chapel-ci): drop just dependency on ubuntu-latest (not in apt) just isn't packaged for ubuntu-22.04 stock apt. Inline the commands the recipes wrapped so CI no longer needs apt-get install just. Local contributors keep the Justfile shortcuts unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/chapel-ci.yml | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/chapel-ci.yml b/.github/workflows/chapel-ci.yml index 5d8da2d..bf8a340 100644 --- a/.github/workflows/chapel-ci.yml +++ b/.github/workflows/chapel-ci.yml @@ -62,8 +62,6 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install just - run: sudo apt-get update -qq && sudo apt-get install -y just - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail @@ -71,7 +69,11 @@ jobs: sudo apt-get install -y /tmp/chapel.deb chpl --version - name: Parse every Chapel module - run: just chapel-parse-check + working-directory: chapel + run: | + set -euo pipefail + chpl --parse-only src/MassPanic.chpl src/Protocol.chpl src/Imaging.chpl src/Temporal.chpl + chpl --parse-only smoke/two_repo_smoke.chpl src/Protocol.chpl src/Imaging.chpl chapel-build: name: chapel-build @@ -79,8 +81,6 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install just - run: sudo apt-get update -qq && sudo apt-get install -y just - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail @@ -88,7 +88,11 @@ jobs: sudo apt-get install -y /tmp/chapel.deb chpl --version - name: Build mass-panic + smoke (no toolbox) - run: just chapel-build-ci + working-directory: chapel + run: | + set -euo pipefail + chpl src/MassPanic.chpl src/Protocol.chpl src/Imaging.chpl src/Temporal.chpl -o mass-panic + chpl smoke/two_repo_smoke.chpl src/Protocol.chpl src/Imaging.chpl -o smoke/two_repo_smoke - name: Upload Chapel artefacts uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: @@ -125,10 +129,9 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install just + Chapel ${{ env.CHAPEL_VERSION }} + - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail - sudo apt-get update -qq && sudo apt-get install -y just curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb - name: Download Chapel artefacts @@ -139,7 +142,19 @@ jobs: - name: Restore exec bits run: chmod +x chapel/mass-panic - name: End-to-end -nl 1 exercise - run: just chapel-e2e + run: | + set -euo pipefail + WORK=$(mktemp -d /tmp/chapel-e2e-XXXXXX) + trap 'rm -rf "$WORK"' EXIT + mkdir -p "$WORK/corpus/repo-alpha/src" "$WORK/corpus/repo-beta/src" + echo 'pub unsafe fn a() {}' > "$WORK/corpus/repo-alpha/src/lib.rs" + echo 'pub unsafe fn b() {}' > "$WORK/corpus/repo-beta/src/lib.rs" + for d in repo-alpha repo-beta; do + (cd "$WORK/corpus/$d" && git init -q && git add -A && git -c user.email=ci@example.com -c user.name=ci commit -q -m init) + done + ./chapel/mass-panic --repoDirectory="$WORK/corpus" --numLocales=1 --quiet --outputDir="$WORK/out" + ls "$WORK/out"/system-image-*.json >/dev/null + echo "chapel-e2e: PASS" chapel-cli-contract: name: chapel-cli-contract From 84d5ae2d0078ca3cac789a047a1c9e80fa3675ef Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 30 May 2026 20:42:35 +0100 Subject: [PATCH 2/2] fix(chapel-ci): preinstall libunwind-dev (Chapel .deb apt dependency) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chapel 2.8.0 .deb apt-installs but fails with "Depends: libunwind-dev" on stock ubuntu-22.04 runners — dpkg bails before unpacking. Install libunwind-dev first across all 4 Chapel install sites. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/chapel-ci.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/chapel-ci.yml b/.github/workflows/chapel-ci.yml index bf8a340..ecf0868 100644 --- a/.github/workflows/chapel-ci.yml +++ b/.github/workflows/chapel-ci.yml @@ -65,6 +65,10 @@ jobs: - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail + # Chapel .deb's apt dep: libunwind-dev. Install first so dpkg + # doesn't bail out on unmet dependencies. + sudo apt-get update -qq + sudo apt-get install -y libunwind-dev curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb chpl --version @@ -84,6 +88,10 @@ jobs: - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail + # Chapel .deb's apt dep: libunwind-dev. Install first so dpkg + # doesn't bail out on unmet dependencies. + sudo apt-get update -qq + sudo apt-get install -y libunwind-dev curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb chpl --version @@ -111,6 +119,10 @@ jobs: - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail + # Chapel .deb's apt dep: libunwind-dev. Install first so dpkg + # doesn't bail out on unmet dependencies. + sudo apt-get update -qq + sudo apt-get install -y libunwind-dev curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb - name: Download Chapel artefacts @@ -132,6 +144,10 @@ jobs: - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail + # Chapel .deb's apt dep: libunwind-dev. Install first so dpkg + # doesn't bail out on unmet dependencies. + sudo apt-get update -qq + sudo apt-get install -y libunwind-dev curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb - name: Download Chapel artefacts @@ -191,6 +207,10 @@ jobs: - name: Install Chapel ${{ env.CHAPEL_VERSION }} run: | set -euo pipefail + # Chapel .deb's apt dep: libunwind-dev. Install first so dpkg + # doesn't bail out on unmet dependencies. + sudo apt-get update -qq + sudo apt-get install -y libunwind-dev curl -fsSL --retry 3 -o /tmp/chapel.deb "${{ env.CHAPEL_DEB_URL }}" sudo apt-get install -y /tmp/chapel.deb - name: Download Chapel artefacts