Skip to content

ci/licence: re-pin setup-dlang + SHA-pin trufflehog + add LICENSE SPDX header#174

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/proven-ci-pins-czncaj
Jun 26, 2026
Merged

ci/licence: re-pin setup-dlang + SHA-pin trufflehog + add LICENSE SPDX header#174
hyperpolymath merged 2 commits into
mainfrom
claude/proven-ci-pins-czncaj

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes three pre-existing governance/CI failures on proven (all independent of any source change; they fail on every PR). Verified locally.

1. Workflow security lintertrufflehog@main unpinned → fixed

secret-scanner.yml:26 pinned to @main. Pinned to d411fff7… (# v3.95.5), an estate-vetted SHA. Linter's own check now reports all actions SHA-pinned.

2. d-build action resolution — vanished setup-dlang SHA → fixed

d-ci.yml pinned setup-dlang@4071ba8… # v1.6.0, but that tag was removed upstream, so GitHub failed at "Prepare all required actions". Re-pinned all 3 uses to v2.0.0 (0a7469b9…); the only input (compiler:) is unchanged across v1→v2.

Note: with the action now resolving, d-build proceeds to the actual D compile and surfaces a separate, pre-existing failure — nothrow violations in source/proven/safe_{color,currency,datetime,phone,url}.d (functions marked nothrow that may throw). That's a D-source bug, not part of this PR; flagged for a follow-up.

3. Licence consistency — root LICENSE missing SPDX header → fixed

check-licence-consistency.sh errored: root LICENSE had MPL-2.0 body text but no SPDX-License-Identifier: header. Added SPDX-License-Identifier: MPL-2.0 (owner-authorised; identical to standards#431). Check now passes.

Still red on proven (pre-existing, out of scope here)

  • d-build — the D nothrow compile errors above (real code bug)
  • scan / Hypatia Neurosymbolic Analysis + governance / Validate Hypatia Baseline — proven's own scanner findings / empty-baseline gate (scanner-dependent, like standards' baseline)
  • Enforce Trustfile Policies — not yet diagnosed

🤖 Generated with Claude Code

claude added 2 commits June 26, 2026 21:30
Two pre-existing CI-infra breakages, independent of any source change:

- .github/workflows/d-ci.yml: dlang-community/setup-dlang was pinned to
  4071ba8 (# v1.6.0), but that tag/SHA no longer exists upstream (v1.6.0 was
  removed; the action-resolution step failed → 'unable to find version'),
  breaking d-build on every PR. Re-pinned all 3 uses to v2.0.0
  (0a7469b93f791d83f30932c6fd105796c6966e20). The 'compiler:' input is
  unchanged across v1→v2, so the jobs are unaffected.

- .github/workflows/secret-scanner.yml: trufflesecurity/trufflehog was used
  at @main (unpinned), failing the governance 'Workflow security linter'
  SHA-pin gate. Pinned to d411fff7b8879a62509f3fa98c07f247ac089a51 (# v3.95.5),
  the SHA already vetted/used elsewhere in the estate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SuLNP87x3i5YXdq2wYERRK
proven's root LICENSE had MPL-2.0 body text but no SPDX header, failing the
governance 'Licence consistency' check (standards/scripts/check-licence-
consistency.sh). Added 'SPDX-License-Identifier: MPL-2.0' (owner-authorised;
same fix as standards#431). Check now passes:
  [OK] SPDX header: MPL-2.0
  [OK] LICENSE body text matches SPDX header.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SuLNP87x3i5YXdq2wYERRK
@hyperpolymath hyperpolymath changed the title ci: re-pin setup-dlang to a live SHA + SHA-pin trufflehog ci/licence: re-pin setup-dlang + SHA-pin trufflehog + add LICENSE SPDX header Jun 26, 2026
@hyperpolymath
hyperpolymath marked this pull request as ready for review June 26, 2026 21:48
@hyperpolymath
hyperpolymath merged commit 72d2020 into main Jun 26, 2026
25 of 29 checks passed
@hyperpolymath
hyperpolymath deleted the claude/proven-ci-pins-czncaj branch June 26, 2026 21:49
@sonarqubecloud

Copy link
Copy Markdown

hyperpolymath added a commit that referenced this pull request Jun 26, 2026
…0 docs (#175)

## Summary

Fixes the two pre-existing proven CI failures that #174 surfaced (and
which were out of #174's pin-scope).

### 1. `d-build` compile — D `nothrow` violations
`parseHexColor` / `parseCurrency` / `parseIsoDateTime` / `parsePhone` /
`parseUrl` are marked `nothrow`, but called the `*Result.success` /
`.failure` factory methods, which were **not** `nothrow` → `ldc2`
errors. Those factories only construct and return a struct (no throwing
operations), so marking all **10** methods `nothrow` is the correct,
minimal fix (across `safe_{color,currency,datetime,phone,url}.d`).

### 2. `Enforce Trustfile Policies` — SPDX gate vs docs licence
The gate required `MPL-2.0` on every file under `src/ffi/bindings`,
flagging **27 README docs** that correctly carry **`CC-BY-SA-4.0`** (the
estate docs licence). Changed it to accept **either** `MPL-2.0` (code)
**or** `CC-BY-SA-4.0` (docs), flagging only headers that are neither —
so it still catches stray PMPL/Apache/etc.

## Verification
- Trustfile SPDX check simulated locally against the tree → **0 files
flagged** (PASS).
- `nothrow` fix is sound by construction (factory bodies do only struct
construction); I couldn't run `ldc2` in this environment, so CI's
`d-build` is the final confirmation.

## Note
The pre-existing Hypatia `scan` / `Validate Hypatia Baseline` reds are
**not** addressed here (scanner-dependent, owner-territory) and remain
as on standards.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
_Generated by [Claude
Code](https://claude.ai/code/session_01SuLNP87x3i5YXdq2wYERRK)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants