Skip to content

Commit 1db4153

Browse files
authored
ci(validate): c++fly admission WARN (v1 policy) + mcpp pin -> 0.0.91 (#71)
* ci(validate): c++fly admission WARN (design §11-Q2 v1) + mcpp pin -> 0.0.91 - lint check 5: descriptors declaring C++ standard "c++fly" (either the mcpp-segment key 'language' or embedded mcpp.toml 'standard') get a ::warning annotation — never a failure. c++fly is toolchain-dependent by design (latest level + all experimental gates), so published packages built with it are not reproducible for consumers; observe usage first. - MCPP_VERSION 0.0.87 -> 0.0.91: required for policy coherence — the grammar-parse step's older pinned mcpp hard-rejects 'c++fly' as an unknown standard (verified: 0.0.90 rc=1, 0.0.91 rc=0), which would contradict warn-not-reject. * ci(validate): derive workspace archive names from MCPP_VERSION (hardcoded 0.0.87 404'd the pin bump)
1 parent dc31c82 commit 1db4153

1 file changed

Lines changed: 27 additions & 11 deletions

File tree

.github/workflows/validate.yml

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ on:
1111
workflow_dispatch:
1212

1313
env:
14-
# Bumped to 0.0.78: carries L3 build.mcpp native build program (build-mcpp member),
15-
# compat.openblas Windows recipe (bin/libopenblas.dll staged beside the .exe).
16-
MCPP_VERSION: "0.0.87"
14+
# Bumped to 0.0.91: carries standard = "c++fly" (experimental playground
15+
# mode) in the resolver grammar — required so descriptors declaring it get
16+
# the lint WARN below instead of a hard grammar-parse rejection from an
17+
# older pinned mcpp (admission policy: warn, don't reject).
18+
MCPP_VERSION: "0.0.91"
1719

1820
jobs:
1921
lint:
@@ -56,6 +58,17 @@ jobs:
5658
if ! lua5.4 tests/check_mirror_urls.lua "$f"; then
5759
fail=1
5860
fi
61+
# 5. c++fly admission policy (mcpp design 2026-07-14 §11-Q2, v1):
62+
# c++fly means "toolchain's latest level + every experimental
63+
# gate" — deliberately toolchain-dependent, so a published
64+
# package built with it is not reproducible for consumers.
65+
# Policy: WARN (never fail) and observe ecosystem usage before
66+
# deciding whether to tighten. Two spellings: `language = ` is
67+
# the descriptor's inline mcpp-segment key; `standard = ` covers
68+
# mcpp.toml content embedded in heredoc/generated_files blocks.
69+
if grep -nE '\b(language|standard)[[:space:]]*=[[:space:]]*"c\+\+fly"' "$f" >/dev/null; then
70+
echo "::warning file=$f::declares C++ standard \"c++fly\" (experimental playground mode) — toolchain-dependent and non-reproducible for consumers; published packages should pin a concrete standard (c++23/c++26)"
71+
fi
5972
done
6073
[ $fail -eq 0 ] && echo "All package files valid."
6174
exit $fail
@@ -133,22 +146,25 @@ jobs:
133146
fail-fast: false
134147
matrix:
135148
include:
149+
# Archive names are derived from env.MCPP_VERSION in the Download
150+
# step — bumping the pin is a ONE-line change (hardcoded versions
151+
# here once 404'd a pin bump).
136152
- platform: linux
137153
os: ubuntu-latest
138-
archive: mcpp-0.0.87-linux-x86_64.tar.gz
139-
root: mcpp-0.0.87-linux-x86_64
154+
suffix: linux-x86_64
155+
ext: tar.gz
140156
mcpp: bin/mcpp
141157
xlings: registry/bin/xlings
142158
- platform: macos
143159
os: macos-15
144-
archive: mcpp-0.0.87-macosx-arm64.tar.gz
145-
root: mcpp-0.0.87-macosx-arm64
160+
suffix: macosx-arm64
161+
ext: tar.gz
146162
mcpp: bin/mcpp
147163
xlings: registry/bin/xlings
148164
- platform: windows
149165
os: windows-latest
150-
archive: mcpp-0.0.87-windows-x86_64.zip
151-
root: mcpp-0.0.87-windows-x86_64
166+
suffix: windows-x86_64
167+
ext: zip
152168
mcpp: bin/mcpp.exe
153169
xlings: registry/bin/xlings.exe
154170
steps:
@@ -165,8 +181,8 @@ jobs:
165181
- name: Download mcpp
166182
shell: bash
167183
env:
168-
MCPP_ARCHIVE: ${{ matrix.archive }}
169-
MCPP_ROOT: ${{ matrix.root }}
184+
MCPP_ARCHIVE: mcpp-${{ env.MCPP_VERSION }}-${{ matrix.suffix }}.${{ matrix.ext }}
185+
MCPP_ROOT: mcpp-${{ env.MCPP_VERSION }}-${{ matrix.suffix }}
170186
run: |
171187
curl -L -fsS -o "$MCPP_ARCHIVE" \
172188
"https://github.com/mcpp-community/mcpp/releases/download/v${MCPP_VERSION}/${MCPP_ARCHIVE}"

0 commit comments

Comments
 (0)