Skip to content

chore(license): flip 1465 PMPL→MPL-2.0 stamps (Phase 3 — SPDX-only safe subdirs)#105

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/license-phase-3-spdx-only-mpl-2-0
Jun 2, 2026
Merged

chore(license): flip 1465 PMPL→MPL-2.0 stamps (Phase 3 — SPDX-only safe subdirs)#105
hyperpolymath merged 1 commit into
mainfrom
chore/license-phase-3-spdx-only-mpl-2-0

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Phase 3 of the developer-ecosystem PMPL→MPL-2.0 sweep. Companion to #103 (Phase 1) and #104 (Phase 2 iser-tools).

This PR covers all dev-ecosystem subdirs where only the source SPDX needs flipping — i.e., subdirs that either have no own LICENSE or already have an MPL-2.0 LICENSE.

Scope (1,465 files)

No own LICENSE (treated as dev-ecosystem topical content):

  • affinescript-ecosystem/affinescript/ — 1 file
  • affinescript-ecosystem/affinescript-deno-test/ — 11
  • rescript-ecosystem/connectors/ — 1
  • rescript-ecosystem/.machine_readable/ — 6
  • rescript-ecosystem/ppx-proven-record/ — 2
  • rescript-ecosystem/rescript-deno-starter/ — 1
  • rescript-ecosystem/rescript-vite-config/ — 1
  • rescript-ecosystem/packages/ — ~1,062
  • coq-ecosystem/, zig-ecosystem/, ada-ecosystem/, zig-api/ — combined ~141

Own LICENSE already MPL-2.0 (only SPDX needs alignment):

  • affinescript-ecosystem/affinescriptiser/ — 216
  • rescript-ecosystem/rescript-string-power/ — 23

Explicitly EXCLUDED from this PR

Path Reason
asdf-augmenters/* Superseded by hyperpolymath/odds-and-sods-package-manager (opsm); skip per owner direction. opsm is already clean (0 PMPL).
affinescript-ecosystem/affinescript-vite/ Possible upstream Vite fork
affinescript-ecosystem/rattlescript/ Check-in copy of hyperpolymath/rattlescript standalone
rescript-ecosystem/rescript-tea/ Possible upstream ReScript-Tea fork
rescript-ecosystem/idaptik-rescript13-staging/ AGPL inherit from son-shared idaptik
rescript-ecosystem/cadre-router/, cadre-tea-router/ Check-in copies of hyperpolymath/* standalones
rescript-ecosystem/rescript-evangeliser/ Listed as submodule (satellites/developer-ux/rescript-evangeliser)
rescript-ecosystem/rescript/ LICENSE says "multiple licenses" — needs explicit review
rescript-ecosystem/rescript-dom-mounter/, rescript-vite/ Own PMPL LICENSE — Phase 4 (LICENSE+SPDX together)
All dev-ecosystem subdirs with own PMPL LICENSE Phase 4 (LICENSE+SPDX together)
v-ecosystem/v-*, satellites/*, julia-ecosystem/, scaffoldia/ Submodules — separate repos

Why draft

Per-subdir scoping; owner sight on coverage decisions before merge.

Verification

grep -rl 'SPDX-License-Identifier: PMPL-1.0-or-later' <phase-3-paths>
# returns: 0 files

🤖 Generated with Claude Code

…ly safe subdirs)

See PR description for full scope + exclusions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-advanced-security github-advanced-security AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hypatia found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

🔍 Hypatia Security Scan

Findings: 810 issues detected

Severity Count
🔴 Critical 217
🟠 High 384
🟡 Medium 209

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in boj-build.yml",
    "type": "missing_timeout_minutes",
    "file": "boj-build.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in codeql.yml",
    "type": "missing_timeout_minutes",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in dogfood-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "dogfood-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath marked this pull request as ready for review June 2, 2026 15:53
@hyperpolymath hyperpolymath enabled auto-merge (squash) June 2, 2026 18:45
@hyperpolymath hyperpolymath disabled auto-merge June 2, 2026 18:54
@hyperpolymath hyperpolymath merged commit daebf5a into main Jun 2, 2026
20 of 22 checks passed
@hyperpolymath hyperpolymath deleted the chore/license-phase-3-spdx-only-mpl-2-0 branch June 2, 2026 18:54
hyperpolymath added a commit that referenced this pull request Jun 2, 2026
…ase 4) (#106)

## Summary

Phase 4 of the developer-ecosystem PMPL→MPL-2.0 sweep. Companion to
#103/#104/#105.

This PR covers the **14 dev-ecosystem sub-projects that have their own
PMPL-1.0-or-later LICENSE files** (a more invasive change than the
SPDX-only flips in earlier phases — LICENSE file content is also
replaced).

## Why these sub-projects, not standalone repos

Verified via `gh api repos/hyperpolymath/<name>` that **none of these 14
sub-projects have standalone GitHub repos** — they're
dev-ecosystem-local (unlike the iser-tools/* or *iser standalones). So
fixing them in dev-ecosystem is the right place — no risk of divergence
from a parallel standalone.

## Scope

**14 subdir LICENSE files replaced** (PMPL-1.0-or-later → MPL-2.0
canonical text, sourced from the dev-ecosystem root `LICENSE`):
- `devkit-risc-v/`, `synapse/`, `bridge-nginx-zig/`,
`techstack-enforcer/`, `riscv-guix-buildsys/`, `idris2-ecosystem/`,
`packages/`, `opm-canonicalizer/`, `czech-file-knife/`, `dnfinition/`,
`well-known-ecosystem/`, `aggregate-library/`, `deno-ecosystem/`,
`rescript-ecosystem/rescript-dom-mounter/`

**Source SPDX flips** (count below — see verification).

## Explicitly EXCLUDED from this PR

- `rescript-ecosystem/rescript-vite/` — **EXCLUDED** as potential
upstream ReScript-Vite fork (same precautionary stance as
`rescript-tea/` and `affinescript-vite/`). Owner-flagged 2026-06-02.
Will be revisited separately after fork-vs-local classification.

## Verification

```sh
# All 14 Phase 4 subdir LICENSEs now MPL-2.0:
for d in <14 phase-4 subdirs>; do head -1 "$d/LICENSE"; done
# all return: SPDX-License-Identifier: MPL-2.0

# Source SPDX in Phase 4 scope:
grep -rl 'SPDX-License-Identifier: PMPL-1.0-or-later' <14 phase-4 subdirs>
# returns: 0 files
```

## Why draft

LICENSE file replacements are more invasive than SPDX flips. Owner sight
before merge.

## Pattern this PR follows

- `neurophone#102` for the SPDX-flip mechanics
- Same care-bracketing as `iser-tools/` (#104), but with the additional
LICENSE-file step
- `rescript-vite/` deliberately deferred for fork-vs-local
classification

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

Co-authored-by: Claude Opus 4.7 (1M context) <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