Skip to content

chore(licence): normalise to MPL-2.0 + CC-BY-SA-4.0 (canonical pair)#33

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/licence-normalisation-2026-06-24
Jun 24, 2026
Merged

chore(licence): normalise to MPL-2.0 + CC-BY-SA-4.0 (canonical pair)#33
hyperpolymath merged 1 commit into
mainfrom
chore/licence-normalisation-2026-06-24

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Estate licence normalisation (batch). LICENSES/={MPL-2.0,CC-BY-SA-4.0}; root LICENSE=MPL-2.0 (GitHub display); code->MPL-2.0, docs(.md/.adoc)->CC-BY-SA-4.0; metadata/badge contradictions fixed; vendored/upstream paths untouched. Residual contradiction lines after fix: 17. Manual-review licence PR.

- LICENSES/ = {MPL-2.0.txt, CC-BY-SA-4.0.txt} (canonical)
- root LICENSE = MPL-2.0 (SPDX header + full body) so GitHub displays MPL-2.0
- SPDX: code -> MPL-2.0, docs (.md/.adoc) -> CC-BY-SA-4.0
- fixed metadata license fields + licence badges; vendored/upstream paths untouched

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 42 issues detected

Severity Count
🔴 Critical 0
🟠 High 32
🟡 Medium 10
View findings
[
  {
    "reason": "Belt.Array deprecated -- use Array (12 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/TextTransform.res",
    "action": "module_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.Array2 deprecated -- use Array (1 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/TextTransform.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.String2 deprecated -- use String (9 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/TextTransform.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Belt.Array deprecated -- use Array (11 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/ByteDetector.res",
    "action": "module_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.Array2 deprecated -- use Array (2 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/ByteDetector.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.String2 deprecated -- use String (25 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/ByteDetector.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Belt.Array deprecated -- use Array (2 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/PathHandler.res",
    "action": "module_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.String2 deprecated -- use String (13 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/core/PathHandler.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Belt.Array deprecated -- use Array (6 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/bindings/Deno.res",
    "action": "module_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  },
  {
    "reason": "Js.Array2 deprecated -- use Array (2 occurrences)",
    "type": "deprecated_api",
    "file": "/home/runner/work/empty-linter/empty-linter/src/bindings/Deno.res",
    "action": "search_replace",
    "rule_module": "migration_rules",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit accf7ed into main Jun 24, 2026
14 checks passed
@hyperpolymath
hyperpolymath deleted the chore/licence-normalisation-2026-06-24 branch June 24, 2026 08:33
@sonarqubecloud

Copy link
Copy Markdown

hyperpolymath added a commit that referenced this pull request Jun 24, 2026
Replace the standalone OSSF Scorecard job with a thin wrapper around
hyperpolymath/standards scorecard-reusable.yml, matching governance.yml.

- Pinned to the estate-canonical standards commit 861b5e9 (same as
  governance.yml) so the estate moves in lockstep.
- Grants security-events:write + id-token:write on the calling job: for a
  reusable call the caller is the ceiling for the called token, so without
  this the reusable's SARIF upload is silently downgraded and fails.
- Keeps the MPL-2.0 header, existing triggers, and the concurrency guardrail.
- Leaves scorecard-enforcer.yml standalone (it owns the score-threshold gate
  and the SECURITY.md / pinned-deps checks the reusable does not cover).

Supersedes the scorecard portion of the closed, stale PR #30 (which
relicensed these files to PMPL-1.0-or-later against #33 and pinned an
older standards SHA).


Claude-Session: https://claude.ai/code/session_01AHygjxRyU3WwmXEhA9KF5L

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.

1 participant