From 1bbff7fbb9b9b6fd83294b1b9e0f0607f4f3203f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 19:52:34 +0000 Subject: [PATCH 1/2] fix(my-lsp): handle CheckError::ResourceViolation (restore workspace build) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #127 added the `CheckError::ResourceViolation` variant but missed the exhaustive `match` in `my-lsp::extract_error_location`, so `my-lsp` failed to compile in a full `cargo --workspace` build (error[E0004], non-exhaustive patterns). `cargo test -p my-lang`/`-p my-qtt` didn't catch it because they never build my-lsp. This is the true root cause of the `llvm-cov` "no profraw files" failure: the coverage job runs `cargo llvm-cov --no-report --workspace --exclude my-llvm`, which couldn't build my-lsp, so no tests ran and no profraw data was produced — surfacing only as the downstream report-step error. Adding the missing arm restores the workspace build; `cargo test --workspace --exclude my-llvm` is green again. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01BwV2DWsjkBiNP3oscimMLV --- .clusterfuzzlite/Containerfile | 10 ---------- crates/my-lsp/src/lib.rs | 1 + 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 .clusterfuzzlite/Containerfile diff --git a/.clusterfuzzlite/Containerfile b/.clusterfuzzlite/Containerfile deleted file mode 100644 index cbcc3e4..0000000 --- a/.clusterfuzzlite/Containerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM gcr.io/oss-fuzz-base/base-builder-rust -RUN apt-get update && apt-get install -y make autoconf automake libtool -<<<<<<< HEAD -COPY . $SRC/project -WORKDIR $SRC/project -======= -COPY . $SRC/my-lang -WORKDIR $SRC/my-lang ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 -COPY .clusterfuzzlite/build.sh $SRC/ diff --git a/crates/my-lsp/src/lib.rs b/crates/my-lsp/src/lib.rs index 1351baa..723749e 100644 --- a/crates/my-lsp/src/lib.rs +++ b/crates/my-lsp/src/lib.rs @@ -120,6 +120,7 @@ fn extract_error_location(error: &CheckError) -> (usize, usize) { CheckError::NonBoolCondition { line, column, .. } => (*line, *column), CheckError::ExpressionTooDeep { line, column, .. } => (*line, *column), CheckError::Other { line, column, .. } => (*line, *column), + CheckError::ResourceViolation { line, column, .. } => (*line, *column), } } From 8d908ccbb1fb2b9b877cc6468df9397c42ac4395 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 19:52:51 +0000 Subject: [PATCH 2/2] chore(repo): resolve stale conflict markers, LICENSE SPDX, ClusterFuzzLite Dockerfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes several pre-existing CI failures at their source: - LICENSE: add `SPDX-License-Identifier: MPL-2.0` header so the standards `check-licence-consistency.sh` (governance / Licence consistency) passes — it requires an SPDX header on the first lines for downstream scanners. - Resolve unresolved git merge-conflict markers left in three files: * CONTRIBUTING.md — kept the `my-lang` side (HEAD's `my-lang-archive` is a stale repo name; this repo is `my-lang`); * .clusterfuzzlite/build.sh and .clusterfuzzlite/Containerfile — kept the `$SRC/my-lang` layout (matches project.yaml main_repo). - ClusterFuzzLite (PR (address)/(undefined)): the google/clusterfuzzlite actions build from `.clusterfuzzlite/Dockerfile` by hard-coded convention, but the repo only had a (conflict-broken) `Containerfile`, so the image build failed. Replace it with a clean `Dockerfile` + a corrected `build.sh` that compiles the cargo-fuzz target in `fuzz/` and stages each binary into $OUT. (Build verified by inspection against the OSS-Fuzz Rust pattern; the full image build needs the OSS-Fuzz base image, not runnable locally.) Not addressable here (upstream): the Hypatia checks fail because the Hypatia analyzer itself does not compile — `undefined variable "real_subdirs"` at `lib/rules/structural_drift.ex:1019` in hyperpolymath/standards. The fix belongs in that repo; nothing in my-lang triggers it. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01BwV2DWsjkBiNP3oscimMLV --- .clusterfuzzlite/Dockerfile | 11 +++++++++++ .clusterfuzzlite/build.sh | 23 ++++++++++++----------- CONTRIBUTING.md | 21 --------------------- LICENSE | 2 ++ 4 files changed, 25 insertions(+), 32 deletions(-) create mode 100644 .clusterfuzzlite/Dockerfile diff --git a/.clusterfuzzlite/Dockerfile b/.clusterfuzzlite/Dockerfile new file mode 100644 index 0000000..40e763a --- /dev/null +++ b/.clusterfuzzlite/Dockerfile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: MPL-2.0 +# Copyright (c) Jonathan D.A. Jewell +# +# ClusterFuzzLite / OSS-Fuzz build image. The ClusterFuzzLite actions +# (google/clusterfuzzlite) build the project from `.clusterfuzzlite/Dockerfile` +# by hard-coded convention, so this file MUST be named `Dockerfile`. +FROM gcr.io/oss-fuzz-base/base-builder-rust +RUN apt-get update && apt-get install -y make autoconf automake libtool +COPY . $SRC/my-lang +WORKDIR $SRC/my-lang +COPY .clusterfuzzlite/build.sh $SRC/ diff --git a/.clusterfuzzlite/build.sh b/.clusterfuzzlite/build.sh index 5d01b85..8f7cb8a 100755 --- a/.clusterfuzzlite/build.sh +++ b/.clusterfuzzlite/build.sh @@ -1,14 +1,15 @@ #!/bin/bash -eu -<<<<<<< HEAD +# SPDX-License-Identifier: MPL-2.0 +# Copyright (c) Jonathan D.A. Jewell +# +# OSS-Fuzz / ClusterFuzzLite build script: compile the cargo-fuzz targets in +# `fuzz/` and stage each binary into $OUT. Run by `compile` inside the +# base-builder-rust image (see .clusterfuzzlite/Dockerfile). +cd "$SRC/my-lang" +cargo +nightly fuzz build -O -cd $SRC/project -cargo +nightly fuzz build --release -cp fuzz/target/*/release/fuzz_* $OUT/ -======= -cd $SRC/*/fuzz -cargo +nightly fuzz build -for target in fuzz_targets/*; do - target_name=$(basename ${target%.rs}) - cp target/x86_64-unknown-linux-gnu/release/$target_name $OUT/ +release="$SRC/my-lang/fuzz/target/x86_64-unknown-linux-gnu/release" +for target in fuzz/fuzz_targets/*.rs; do + name="$(basename "${target%.rs}")" + cp "$release/$name" "$OUT/" done ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9c375f..94887d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,25 +3,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell --> # Clone the repository -<<<<<<< HEAD -git clone https://github.com/hyperpolymath/my-lang-archive.git -cd my-lang-archive -======= git clone https://github.com/hyperpolymath/my-lang.git cd my-lang ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 # Using Nix (recommended for reproducibility) nix develop # Or using toolbox/distrobox -<<<<<<< HEAD -toolbox create my-lang-archive-dev -toolbox enter my-lang-archive-dev -======= toolbox create my-lang-dev toolbox enter my-lang-dev ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 # Install dependencies manually # Verify setup @@ -31,11 +21,7 @@ just test # Run test suite ### Repository Structure ``` -<<<<<<< HEAD -my-lang-archive/ -======= my-lang/ ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 ├── src/ # Source code (Perimeter 1-2) ├── lib/ # Library code (Perimeter 1-2) ├── extensions/ # Extensions (Perimeter 2) @@ -104,17 +90,10 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an Look for issues labelled: -<<<<<<< HEAD -- [`good first issue`](https://github.com/hyperpolymath/my-lang-archive/labels/good%20first%20issue) — Simple Perimeter 3 tasks -- [`help wanted`](https://github.com/hyperpolymath/my-lang-archive/labels/help%20wanted) — Community help needed -- [`documentation`](https://github.com/hyperpolymath/my-lang-archive/labels/documentation) — Docs improvements -- [`perimeter-3`](https://github.com/hyperpolymath/my-lang-archive/labels/perimeter-3) — Community sandbox scope -======= - [`good first issue`](https://github.com/hyperpolymath/my-lang/labels/good%20first%20issue) — Simple Perimeter 3 tasks - [`help wanted`](https://github.com/hyperpolymath/my-lang/labels/help%20wanted) — Community help needed - [`documentation`](https://github.com/hyperpolymath/my-lang/labels/documentation) — Docs improvements - [`perimeter-3`](https://github.com/hyperpolymath/my-lang/labels/perimeter-3) — Community sandbox scope ->>>>>>> 7f63c53cc206ad0448f9e17e5b74dde7cf393117 --- diff --git a/LICENSE b/LICENSE index 14e2f77..2a8b960 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,5 @@ +SPDX-License-Identifier: MPL-2.0 + Mozilla Public License Version 2.0 ==================================