Skip to content

chore(deps): bump rmcp from 2.2.0 to 3.1.0 #326

chore(deps): bump rmcp from 2.2.0 to 3.1.0

chore(deps): bump rmcp from 2.2.0 to 3.1.0 #326

Workflow file for this run

# SPDX-License-Identifier: AGPL-3.0-or-later
# This workflow is managed by gh actions-lock.
name: Chapel Accelerator CI
on:
push:
paths:
- 'src/zig_ffi/**'
- 'src/rust/proof_search.rs'
- 'src/rust/dispatch.rs'
- 'src/chapel/**'
- 'Cargo.toml'
- '.github/workflows/chapel-ci.yml'
pull_request:
paths:
- 'src/zig_ffi/**'
- 'src/rust/proof_search.rs'
- 'src/rust/dispatch.rs'
- 'src/chapel/**'
- 'Cargo.toml'
- '.github/workflows/chapel-ci.yml'
# Cause-B mitigation (#77): cancel superseded runs so stacked pushes
# to the same ref don't pile up identical jobs in the queue.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
# Pinned Chapel deb (Ubuntu 22.04 amd64; installs cleanly on the
# ubuntu24 runner). SHA-256 verified against the GitHub Releases asset;
# mismatch fails the install step. Bumped 2.3.0 -> 2.8.0 (issue #181)
# to track sibling estate repos proven (#141) and panic-attack (#85),
# both of which validated this URL+SHA combo against the same
# `ubuntu-latest` runner image we use here.
env:
CHAPEL_VERSION: '2.8.0'
CHAPEL_DEB_URL: 'https://github.com/chapel-lang/chapel/releases/download/2.8.0/chapel-2.8.0-1.ubuntu22.amd64.deb'
CHAPEL_DEB_SHA256: '944a454b8a791f344312fcd261b562871159b74f5ef41d81e11833eb21d85f60'
jobs:
# Job 1: Compile Chapel .chpl files into a static library.
#
# Strict gating (was continue-on-error before #133 closure) — this job
# is the load-bearing Chapel toolchain signal. If the sources stop
# compiling, the workflow fails.
#
# Why --static and not --dynamic:
# The official apt deb (chapel-${CHAPEL_VERSION}-1.ubuntu22.amd64.deb)
# ships only the CHPL_LIB_PIC=none runtime variant. Building a shared
# library requires CHPL_LIB_PIC=pic runtime objects which are not in
# the package; the linker rejects the non-PIC `libchpl.a` with
# `relocation R_X86_64_TPOFF32 ... can not be used when making a
# shared object`. Until the CI image ships a PIC-enabled runtime
# (or we adopt a from-source Chapel build via the
# `chapel-pic-from-source` Justfile recipe), the metalayer is
# distributed as `libechidna_chapel.a` and the Zig FFI links it
# statically.
chapel-build:
name: Compile Chapel Metalayer
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v7.0.1
- name: Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
run: |
set -euo pipefail
# libunwind-dev is a runtime link-time dep for chpl-built binaries
# on the ubuntu .deb path; sibling estate repo panic-attack (#85)
# established this preinstall as the working pattern, reused by
# proven (#141). Without it the chapel-build smoke link fails with
# `error while loading shared libraries: libunwind.so.8`.
sudo apt-get update -qq
sudo apt-get install -y libunwind-dev
curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
sudo apt-get install -y /tmp/chapel.deb
chpl --version
- name: Compile Chapel proof search library (static)
run: |
cd src/chapel
# -I ../zig_ffi so `require "chapel_ffi_exports.h"` finds the
# authoritative C ABI header next to the Zig bridge.
chpl --library --static -I ../zig_ffi \
-o libechidna_chapel \
chapel_ffi_exports.chpl parallel_proof_search.chpl
ls -la lib/libechidna_chapel*
- name: Compile + run smoke target
run: |
cd src/chapel
chpl -o chapel_smoke smoke.chpl
./chapel_smoke
- name: Upload Chapel library artifact
uses: actions/upload-artifact@v7.0.1
with:
name: chapel-lib
path: src/chapel/lib/libechidna_chapel*
# Job 2: Build and test Zig FFI bridge (always uses stubs).
#
# Strict gating (was continue-on-error before #133 closure). The
# earlier comment claimed `addLibrary` was missing on Zig 0.13.0; the
# workflow has pinned 0.14.0 since the Chapel-CI rewrite (which DOES
# ship `addLibrary`), so the comment was stale relative to the actual
# pin. The build now uses the modern API as documented in
# `src/zig_ffi/build.zig`.
zig-ffi:
name: Build & Test Zig FFI Bridge
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v7.0.1
- name: Install Zig
uses: mlugg/setup-zig@v2.2.1
with:
version: 0.14.0
- name: Build Zig FFI library (with Chapel stubs)
run: cd src/zig_ffi && zig build -Doptimize=ReleaseSafe
- name: Run Zig FFI tests (stub mode)
run: cd src/zig_ffi && zig build test
- name: Upload FFI library artifact
uses: actions/upload-artifact@v7.0.1
with:
name: chapel-ffi-lib
path: src/zig_ffi/zig-out/lib/
# Job 3: Build Rust with chapel feature (links against Zig FFI stubs).
# Marked continue-on-error: true alongside its needed dependency zig-ffi
# (#133) — when the upstream Zig FFI build is allowed to fail, this job's
# "Download FFI library" step has no artifact to consume and red-fires.
# Re-enable strict gating once #133's Chapel + FFI rehabilitation lands.
rust-chapel-feature:
name: Rust Build with Chapel Feature
runs-on: ubuntu-22.04
timeout-minutes: 30
needs: zig-ffi
continue-on-error: true
steps:
- uses: actions/checkout@v7.0.1
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Rust cache
uses: Swatinem/rust-cache@v2.9.1
- name: Download FFI library
uses: actions/download-artifact@v8.0.1
with:
name: chapel-ffi-lib
path: src/zig_ffi/zig-out/lib/
- name: Build with chapel feature
run: cargo build --features chapel
- name: Test with chapel feature
run: cargo test --features chapel -- proof_search
# Job 4: Build Rust linking against the real Chapel library (no Zig stubs).
#
# Still allow-fail in Wave 1: the full static link of Chapel runtime
# (`libchpl.a` + dependency archives) into the Zig FFI shared library
# is non-trivial and is tracked as the next milestone after #133
# (Wave 2). The chapel-build artifact is now `libechidna_chapel.a`
# (static) rather than the previous `.so`, because the apt-shipped
# Chapel only carries the `CHPL_LIB_PIC=none` runtime. Once a PIC
# runtime is available in the CI image we can revert to `--dynamic`
# and flip this job to strict.
rust-chapel-real:
name: Rust Build — Real Chapel Library (allow-fail, L2.3+ gate)
runs-on: ubuntu-22.04
timeout-minutes: 30
needs: [chapel-build, zig-ffi]
continue-on-error: true
steps:
- uses: actions/checkout@v7.0.1
- name: Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
run: |
set -euo pipefail
sudo apt-get update -qq
sudo apt-get install -y libunwind-dev
curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
sudo apt-get install -y /tmp/chapel.deb
chpl --version
- name: Install Zig
uses: mlugg/setup-zig@v2.2.1
with:
version: 0.14.0
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Rust cache
uses: Swatinem/rust-cache@v2.9.1
- name: Download real Chapel library
uses: actions/download-artifact@v8.0.1
with:
name: chapel-lib
path: src/chapel/
- name: Build Zig FFI without stubs (links against real Chapel)
run: |
cd src/zig_ffi
zig build -Doptimize=ReleaseSafe -Dstubs=false
- name: Build Rust with real Chapel library
run: |
export LD_LIBRARY_PATH="$PWD/src/chapel:$PWD/src/zig_ffi/zig-out/lib:${LD_LIBRARY_PATH:-}"
cargo build --features chapel
- name: Test Rust with real Chapel library
run: |
export LD_LIBRARY_PATH="$PWD/src/chapel:$PWD/src/zig_ffi/zig-out/lib:${LD_LIBRARY_PATH:-}"
cargo test --features chapel -- proof_search