Repository navigation
chore(license): relicense to Apache-2.0, retract SSPL-era tags - #389
Merged
Merged
Conversation
added 2 commits
August 12, 2026 16:17
The repository asserted four different licences at once: LICENSE carried SSPL-1.0, the README said MIT, go.mod's header said MIT plus "All rights reserved", and ~620 source files carried SSPL SPDX headers against 59 MIT. The decided licence (strategy revision 2026-08, licensing-readme-plan v0.2) is Apache-2.0. - Replace LICENSE with the Apache-2.0 text; add NOTICE - Correct the README licence statement and the go.mod header - Sweep all 793 source-file SPDX headers to Apache-2.0 via `star lint copyright --fix` (config enabled in star/config.yaml with license: auto, so headers now follow the LICENSE file) - Fix the generated-.golangci.yaml template and workflow YAML headers, which the linter does not cover - Add a `retract` directive covering every SSPL-era tag [v0.1.0-dev.20260127185200, v0.1.0-dev.20260812174759]; the proxy cache is immutable, so retraction is the strongest available remedy - Remove draft-llm-*.md strategy notes from the repo root - Update docs/plans/licensing-readme-plan.md to v0.2 (audit results, amended sequence) The Release workflow was disabled before this change to stop minting SSPL-era tags; it is re-enabled after merge. The next tag is the first Apache-2.0 release.
…thub/scripts star lint copyright --fix rewrites files without preserving the mode bit, which broke CI (Test-GuideFrontmatter.sh: Permission denied). Restore +x on the four affected scripts and include .github/scripts/shell-lint.sh, which the previous commit's staging list missed.
David-Noble-at-work
force-pushed
the
licensing-readme-plan
branch
from
August 12, 2026 23:26
e6c0b69 to
74d9ee0
Compare
4 of 5 tasks
David-Noble-at-work
added a commit
that referenced
this pull request
Aug 12, 2026
… root (#390) * chore(license): complete Apache-2.0 sweep; root-document triage Complete the sweep PR #389 missed: 127 tracked *.gen.go files, whose headers come from the go.render templates in star/extensions/.../templates/*.gen.go.template (skipped by the copyright linter due to the .template extension). Fix the seven templates so regeneration emits Apache-2.0, sweep the generated files to match, and correct the two extensionless stragglers (.githooks/pre-commit, .pre-commit-config.yaml). Remaining SSPL mentions are intentional: the go.mod retract rationale and a linter test fixture. Also lands the root-document triage (staged earlier by script): stale snapshots deleted (GITHUB-ISSUES, CODE-CONSOLIDATION-ANALYSIS, TEST_BREAKS, commit_msg.txt), sketches moved to docs/sketches/, ARCHITECTURE-STATUS to docs/architecture/STATUS.md. Assisted-by: Claude Signed-off-by: David Noble <[email protected]> * docs: rewrite README, add CONTRIBUTING with AI disclosure README rewritten per licensing-readme-plan v0.2 §5.3: DevLore-first framing (onboarding and roles above the fold, the Docker iceberg second), honest current-binary naming with the devlore unification noted, install paths that exist today, the genuine cross-platform statement including the PowerShell provider, the registry relationship, Apache-2.0 stated once, devlore.org links. CONTRIBUTING.md added: Apache-2.0 §5 inbound terms with DCO sign-off, and the AI-disclosure policy — assistance is welcome, must be announced via Assisted-by trailer, is acknowledged never credited, and undisclosed use is a permanent ban. go-style-guidelines.md mirrored from noblefactor-ops (header rule corrected to Apache-2.0) so public contributors can read the rules star lint enforces. Assisted-by: Claude Signed-off-by: David Noble <[email protected]> --------- Signed-off-by: David Noble <[email protected]> Co-authored-by: David Noble <[email protected]>
This was referenced Aug 13, 2026
Unix-literal "/" roots panic on Windows: four test fixtures, and writ's System layer TargetRoot
#392
Open
David-Noble-at-work
added a commit
that referenced
this pull request
Aug 13, 2026
Two plan documents, landing after the work they describe. docs/plans/fsroot-canonical-rel.md is issue #377's plan: rel canonical slash form at every construction and decode site, abs OS-native, every non-test Rel() consumer audited (two of them — walkDir and merkleRoot — were handing native-form rel to io/fs APIs whose contract requires slash paths, so the fix repaired them rather than risking them). Both rulings are recorded: existing serialized documents are greenfield, and Abs()-class test expectations are platform-correct rather than slash literals. Its Outcome section records what actually happened: the implementation landed inside PR #389 (the Apache-2.0 relicense) rather than as its own PR — it was in-flight in the same working tree when the licensing sweep staged whole directories, and the ruling was to merge with the entanglement disclosed in the PR body rather than split commits or rewrite a shared branch. Issue #377 closed by that merge. Measured on #389's own windows test leg: 85 -> 57 failures, every fsroot/triad path assertion and TestRegistry_FilePaths cleared, zero build failures. The attribution correction is recorded too: the earlier ~50-of-85 estimate was wrong (the separator-direct share was 28), and the surviving receipt/graph-resume round-trips have a second cause beyond separator form — the first thing to read in the remaining-57 triage. docs/plans/platform-test-matrix.md gains the corrected phase-2 baseline: with the three formerly-[build failed] packages compiling on Windows (PR #388), the honest count was 85, not 34 — the FAIL-line counting had silently excluded three entire suites. Documentation only; no code changes. Issues: #377 (closed), #373 Co-authored-by: David Noble <[email protected]>
This was referenced Aug 13, 2026
David-Noble-at-work
added a commit
that referenced
this pull request
Aug 13, 2026
Issue #396. The relicense (#389) stamped Apache-2.0 headers onto the two inventory.gen.go files, but make generate runs the generator under every build and test, and the generator did not emit a header — so any make invocation rewrote both files headerless, and the next commit that staged them would have silently undone the relicense on those files. Observed in practice minutes after #389 merged, and twice more since: every local build left both files modified with exactly the header lines deleted, repaired by hand each time. writeInventory now emits the SPDX and copyright lines itself, matching the repository convention exactly so star lint copyright accepts regenerated output unchanged. Same defect class, same remedy as the defaultGolangciConfig template #389 already fixed: a generator whose output must carry the header emits it from the template rather than relying on a one-time sweep. Proven by regeneration: make generate now produces output byte-identical to the committed files — the strip-restore cycle is dead. The committed inventory.gen.go files need no change in this commit. Verified: make vet, make lint-all, full make test green — zero FAIL or panic lines by count; gofmt clean. Issue: #396 Co-authored-by: David Noble <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
go.mod headers corrected in the same commit — resolves the four-way
licence conflict (LICENSE=SSPL / README=MIT / go.mod=MIT / headers mixed)
star lint copyright --fix; linterenabled in
star/config.yamlwithlicense: autoso headers are nowderived from LICENSE and future files self-correct
defaultGolangciConfigstamped MITinto emitted
.golangci.yaml) and workflow YAML headers correctedmanually (the linter skips config files)
retract [v0.1.0-dev.20260127185200, v0.1.0-dev.20260812174759]ingo.mod — every SSPL-era tag is retracted from version selection;
proxy.golang.org's cache is immutable so removal is not possible
treated as disclosed since git history persists)
docs/plans/licensing-readme-plan.md)Evidence base: business/05-licensing-model-research.md (noblefactor repo).
Test plan
go build ./...passesgo test ./cmd/star/...passesstar lint copyrightreports all 793 files correctgofmt -lclean over changed Go filesstring literals
Apache-2.0 on pkg.go.dev
Also in this PR: the #377 canonical-Rel fix (disclosed)
This commit additionally carries the #377 fsroot semantics change — in-flight in the same working tree when the licensing sweep was staged, entangled in three files, and merged here by explicit decision rather than split out:
pkg/fsroot/root.go—Path.relis now canonical slash form on every platform, applied at every construction site and enforced at JSON/YAML decode;absstays OS-native and carries all filesystem I/O.relis the half that serializes, so equal logical paths now produce equal document bytes and checksums everywhere — the same rule the Merkle-root digest already followed. Decode normalizes documents written by pre-fix Windows builds; existing documents are greenfield per ruling (2026-08-12).pkg/fsroot/root_test.go,internal/lorepackage/registry_test.go—Abs()-class expectations made platform-correct (filepath.FromSlash);Rel()expectations were already canonical and now pass on Windows.Measured effect, this PR's own
test (windows-latest)leg: 85 → 57 failures (baseline: PR #388). Allfsroot/triadpath tests andTestRegistry_FilePathsclear; zero packages fail to build. The surviving receipt/graph-resume failures (7) have a second cause beyond separator form and stay tracked under #373 phase 3e / #377 follow-up.Plan:
docs/plans/fsroot-canonical-rel.md(lands separately). Closes #377.