Skip to content

fix(d,ci): D nothrow compile fix + Trustfile gate accepts CC-BY-SA-4.0 docs#175

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/proven-d-trustfile-czncaj
Jun 26, 2026
Merged

fix(d,ci): D nothrow compile fix + Trustfile gate accepts CC-BY-SA-4.0 docs#175
hyperpolymath merged 1 commit into
mainfrom
claude/proven-d-trustfile-czncaj

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

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 nothrowldc2 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


Generated by Claude Code

…in Trustfile gate

Two pre-existing proven CI failures (surfaced once #174 unblocked d-build):

D nothrow (d-build compile):
  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 ops), so marking the 10 methods 'nothrow' is correct and minimal.

Trustfile 'Enforce Trustfile Policies' gate:
  The SPDX check required MPL-2.0 on every file under src/ffi/bindings, flagging
  27 documentation READMEs that correctly carry CC-BY-SA-4.0 (estate docs licence).
  Changed the gate to accept either MPL-2.0 (code) or CC-BY-SA-4.0 (docs) and flag
  only headers that are neither -- still catches stray PMPL/Apache/etc.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SuLNP87x3i5YXdq2wYERRK
@hyperpolymath
hyperpolymath merged commit 2427525 into main Jun 26, 2026
23 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the claude/proven-d-trustfile-czncaj branch June 26, 2026 21:58
@sonarqubecloud

Copy link
Copy Markdown

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