Skip to content

Commit 71e292f

Browse files
committed
ci: mcpp 0.0.97 — drop the mcpp#232 index-refresh pre-step, retire per-package module smoke jobs
0.0.97 carries the default-namespace index redirect (R6), the synchronous nasm bootstrap (#232), obj-path disambiguation (#233), spacey-defines quoting (#234) and purview-include tracking (#235). The three module smoke jobs (imgui-module/ffmpeg-module/opencv-module) and the tinyhttps smoke step are deleted — the module packages are ordinary workspace members now (next commit), so 'workspace' is the single build/run channel.
1 parent 3497b86 commit 71e292f

5 files changed

Lines changed: 22 additions & 541 deletions

File tree

.github/workflows/validate.yml

Lines changed: 22 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,23 @@ on:
66
push:
77
branches: [main]
88
schedule:
9-
# nightly full regression — exercises every smoke suite regardless of diff
9+
# nightly full regression — exercises every workspace member regardless of diff
1010
- cron: "0 6 * * *"
1111
workflow_dispatch:
1212

1313
env:
14-
# 0.0.96: carries the windows scanner symlink-escape crash fix (mcpp#230),
15-
# so all platforms ride the same version again. Older floors of note:
16-
# 0.0.94 fixed feature-gated `sources` under `mcpp test` (mcpp#218);
17-
# 0.0.91 added standard = "c++fly" to the resolver grammar, so c++fly
18-
# descriptors get the lint WARN below, not a hard grammar-parse rejection.
19-
MCPP_VERSION: "0.0.96"
14+
# 0.0.97: default-namespace index redirect (`[indices] default = { path }`),
15+
# which turned the public module packages (imgui/ffmpeg/opencv/tinyhttps)
16+
# into ordinary workspace members and retired the per-package reseeding
17+
# smoke shells + their dedicated jobs; also carries the synchronous nasm
18+
# bootstrap (mcpp#232 — the `mcpp index update` pre-step is gone), obj-path
19+
# disambiguation (#233), spacey-defines quoting (#234), and purview-include
20+
# depfile tracking (#235). Older floors of note: 0.0.96 fixed the windows
21+
# scanner symlink-escape crash (mcpp#230); 0.0.94 fixed feature-gated
22+
# `sources` under `mcpp test` (mcpp#218); 0.0.91 added standard = "c++fly"
23+
# to the resolver grammar, so c++fly descriptors get the lint WARN below,
24+
# not a hard grammar-parse rejection.
25+
MCPP_VERSION: "0.0.97"
2026

2127
jobs:
2228
lint:
@@ -156,21 +162,21 @@ jobs:
156162
ext: tar.gz
157163
mcpp: bin/mcpp
158164
xlings: registry/bin/xlings
159-
mcpp_version: "0.0.96" # keep in sync with env.MCPP_VERSION
165+
mcpp_version: "0.0.97" # keep in sync with env.MCPP_VERSION
160166
- platform: macos
161167
os: macos-15
162168
suffix: macosx-arm64
163169
ext: tar.gz
164170
mcpp: bin/mcpp
165171
xlings: registry/bin/xlings
166-
mcpp_version: "0.0.96" # keep in sync with env.MCPP_VERSION
172+
mcpp_version: "0.0.97" # keep in sync with env.MCPP_VERSION
167173
- platform: windows
168174
os: windows-latest
169175
suffix: windows-x86_64
170176
ext: zip
171177
mcpp: bin/mcpp.exe
172178
xlings: registry/bin/xlings.exe
173-
mcpp_version: "0.0.96" # keep in sync with env.MCPP_VERSION
179+
mcpp_version: "0.0.97" # keep in sync with env.MCPP_VERSION
174180
env:
175181
MCPP_EFFECTIVE: ${{ matrix.mcpp_version }}
176182
steps:
@@ -212,23 +218,12 @@ jobs:
212218
echo "MCPP_VENDORED_XLINGS=$root/${{ matrix.xlings }}" >> "$GITHUB_ENV"
213219
echo "$root/bin" >> "$GITHUB_PATH"
214220
fi
215-
# compat.ffmpeg carries NASM .asm sources. No host install needed:
216-
# mcpp >= 0.0.95 resolves nasm itself (PATH → sandbox → auto
217-
# `xlings install nasm`), lazily, only when the plan has .asm units —
218-
# same self-bootstrap contract as the llvm toolchain. The sandbox copy
219-
# lands in ~/.mcpp/registry, so the cache carries it across runs.
220-
# The refresh below is needed because release archives vendor an index
221-
# snapshot and the bootstrap is offline-first: 0.0.96 shipped with a
222-
# nasm.lua deployed engines can't resolve — it "installs" empty
223-
# (mcpp#232; fixed in xim-pkgindex#398 after the release was cut).
224-
# One `mcpp index update` (native wrapper over `xlings update` with
225-
# the sandbox env + transient-network retry) lets the bootstrap see
226-
# the fixed descriptor. Drop once a mcpp release vendors a post-#398
227-
# index snapshot.
228-
- name: Refresh sandbox package index (nasm bootstrap, mcpp#232)
229-
if: runner.os == 'Linux'
230-
shell: bash
231-
run: '"$MCPP" index update'
221+
# compat.ffmpeg / compat.opencv5 carry NASM .asm sources. No host
222+
# install and no index-refresh pre-step needed: mcpp >= 0.0.97
223+
# resolves nasm itself through the same synchronous gate as the
224+
# toolchain (index refresh + install + payload check BEFORE the build
225+
# plans, mcpp#232). The sandbox copy lands in ~/.mcpp/registry, so
226+
# the cache carries it across runs.
232227

233228
# ── Selective member testing ──────────────────────────────────────
234229
# `mcpp test --workspace` builds every member (opencv, ffmpeg, …) and
@@ -311,120 +306,4 @@ jobs:
311306
done
312307
exit $rc
313308
fi
314-
- name: tinyhttps module package smoke
315-
shell: bash
316-
env:
317-
MCPP_INDEX_MIRROR: GLOBAL
318-
run: bash tests/smoke_tinyhttps_module.sh
319-
320-
# ── Exception: the public `imgui` C++23-module package (namespace "") ──
321-
# Not yet a workspace member: its package has an empty namespace (the builtin
322-
# default index), which a workspace member can't point at a local path the way
323-
# namespaced compat.*/nlohmann packages can. Until mcpp can map the default
324-
# namespace to a local index, this one keeps a thin driver that reseeds the
325-
# default index from the repo. Tracked in the rearchitecture design doc.
326-
imgui-module:
327-
runs-on: ubuntu-latest
328-
timeout-minutes: 60
329-
env:
330-
MCPP_EFFECTIVE: "0.0.96" # keep in sync with env.MCPP_VERSION
331-
steps:
332-
- uses: actions/checkout@v4
333-
- name: Restore mcpp registry cache
334-
uses: actions/cache@v4
335-
with:
336-
path: ~/.mcpp/registry
337-
key: mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-${{ hashFiles('pkgs/**/*.lua', 'tests/**', '.github/workflows/validate.yml') }}
338-
restore-keys: |
339-
mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-
340-
- name: Download mcpp
341-
run: |
342-
curl -L -fsS -o mcpp.tar.gz \
343-
"https://github.com/mcpp-community/mcpp/releases/download/v${MCPP_VERSION}/mcpp-${MCPP_VERSION}-linux-x86_64.tar.gz"
344-
tar -xzf mcpp.tar.gz
345-
root="$PWD/mcpp-${MCPP_VERSION}-linux-x86_64"
346-
mkdir -p "$HOME/.mcpp/registry"
347-
cp -a "$root/registry/." "$HOME/.mcpp/registry/"
348-
echo "MCPP=$root/bin/mcpp" >> "$GITHUB_ENV"
349-
echo "MCPP_VENDORED_XLINGS=$root/registry/bin/xlings" >> "$GITHUB_ENV"
350-
echo "$root/bin" >> "$GITHUB_PATH"
351-
- name: imgui module package smoke
352-
env:
353-
MCPP_INDEX_MIRROR: GLOBAL
354-
run: |
355-
"$MCPP" --version
356-
timeout 1800 bash tests/smoke_imgui_module.sh
357309
358-
# ── Exception: the public `ffmpeg` C++23-module package (namespace "") ──
359-
# Same default-namespace limitation as imgui-module above — validated via a
360-
# reseeding smoke driver instead of a workspace member. Linux-only: its
361-
# compat.ffmpeg dependency ships a linux-x86_64 configure snapshot (macOS is
362-
# blocked on mcpp#229 dependency cfg-conditional sources).
363-
ffmpeg-module:
364-
runs-on: ubuntu-latest
365-
timeout-minutes: 60
366-
env:
367-
MCPP_EFFECTIVE: "0.0.96" # keep in sync with env.MCPP_VERSION
368-
steps:
369-
- uses: actions/checkout@v4
370-
- name: Restore mcpp registry cache
371-
uses: actions/cache@v4
372-
with:
373-
path: ~/.mcpp/registry
374-
key: mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-${{ hashFiles('pkgs/**/*.lua', 'tests/**', '.github/workflows/validate.yml') }}
375-
restore-keys: |
376-
mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-
377-
- name: Download mcpp
378-
run: |
379-
curl -L -fsS -o mcpp.tar.gz \
380-
"https://github.com/mcpp-community/mcpp/releases/download/v${MCPP_VERSION}/mcpp-${MCPP_VERSION}-linux-x86_64.tar.gz"
381-
tar -xzf mcpp.tar.gz
382-
root="$PWD/mcpp-${MCPP_VERSION}-linux-x86_64"
383-
mkdir -p "$HOME/.mcpp/registry"
384-
cp -a "$root/registry/." "$HOME/.mcpp/registry/"
385-
echo "MCPP=$root/bin/mcpp" >> "$GITHUB_ENV"
386-
echo "MCPP_VENDORED_XLINGS=$root/registry/bin/xlings" >> "$GITHUB_ENV"
387-
echo "$root/bin" >> "$GITHUB_PATH"
388-
- name: ffmpeg module package smoke
389-
env:
390-
MCPP_INDEX_MIRROR: GLOBAL
391-
run: |
392-
"$MCPP" --version
393-
timeout 2700 bash tests/smoke_ffmpeg_module.sh
394-
395-
# ── Exception: the public `opencv` C++23-module package (namespace "") ──
396-
# Same default-namespace limitation as imgui-module above — validated via a
397-
# reseeding smoke driver instead of a workspace member. Linux-only: its
398-
# compat.opencv5 dependency ships a linux-x86_64 config snapshot (macOS is
399-
# blocked on mcpp#229 dependency cfg-conditional sources).
400-
opencv-module:
401-
runs-on: ubuntu-latest
402-
timeout-minutes: 60
403-
env:
404-
MCPP_EFFECTIVE: "0.0.96" # keep in sync with env.MCPP_VERSION
405-
steps:
406-
- uses: actions/checkout@v4
407-
- name: Restore mcpp registry cache
408-
uses: actions/cache@v4
409-
with:
410-
path: ~/.mcpp/registry
411-
key: mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-${{ hashFiles('pkgs/**/*.lua', 'tests/**', '.github/workflows/validate.yml') }}
412-
restore-keys: |
413-
mcpp-registry-${{ runner.os }}-${{ env.MCPP_EFFECTIVE }}-
414-
- name: Download mcpp
415-
run: |
416-
curl -L -fsS -o mcpp.tar.gz \
417-
"https://github.com/mcpp-community/mcpp/releases/download/v${MCPP_VERSION}/mcpp-${MCPP_VERSION}-linux-x86_64.tar.gz"
418-
tar -xzf mcpp.tar.gz
419-
root="$PWD/mcpp-${MCPP_VERSION}-linux-x86_64"
420-
mkdir -p "$HOME/.mcpp/registry"
421-
cp -a "$root/registry/." "$HOME/.mcpp/registry/"
422-
echo "MCPP=$root/bin/mcpp" >> "$GITHUB_ENV"
423-
echo "MCPP_VENDORED_XLINGS=$root/registry/bin/xlings" >> "$GITHUB_ENV"
424-
echo "$root/bin" >> "$GITHUB_PATH"
425-
- name: opencv module package smoke
426-
env:
427-
MCPP_INDEX_MIRROR: GLOBAL
428-
run: |
429-
"$MCPP" --version
430-
timeout 2700 bash tests/smoke_opencv_module.sh

tests/smoke_ffmpeg_module.sh

Lines changed: 0 additions & 122 deletions
This file was deleted.

0 commit comments

Comments
 (0)