Skip to content

docs(repo): clarify licensing && refine docs#107

Merged
K1ngst0m merged 1 commit intomainfrom
dev/refine-gfx-docs
Mar 5, 2026
Merged

docs(repo): clarify licensing && refine docs#107
K1ngst0m merged 1 commit intomainfrom
dev/refine-gfx-docs

Conversation

@K1ngst0m
Copy link
Copy Markdown
Collaborator

@K1ngst0m K1ngst0m commented Mar 5, 2026

  • Add an MIT LICENSE file as the project's primary license.
  • Add THIRD_PART_NOTICES.md for bundled third-party code and assets.
  • Add a README license section linking first-party and third-party terms.
  • Call out key bundled components with their applicable license texts.

Summary by CodeRabbit

Release Notes

  • Documentation

    • Added formal specification documents for filter-chain C API design, library boundaries, and render pipeline architecture.
    • Reorganized maintainer guides and integration workflows with updated governance structure and contributor guidance.
    • Added third-party licensing documentation.
  • Chores

    • Added MIT License and licensing notices for third-party components.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 5, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR adds comprehensive licensing documentation, formal specifications for a filter-chain architecture redesign, and refactors internal maintainer documentation. It introduces MIT licensing, third-party compliance records, detailed C API specifications with versioning and error handling contracts, ownership boundaries, and reframes internal guides from API-focused to governance-focused content.

Changes

Cohort / File(s) Summary
Licensing & Compliance
LICENSE, README.md, THIRD_PART_NOTICES.md
Adds MIT license file, updates README with license and third-party notices sections, and creates comprehensive third-party component documentation covering fonts, shaders, Wayland protocol headers, and build dependencies.
New Specification Files
openspec/specs/filter-chain-c-api/spec.md, openspec/specs/goggles-filter-chain/spec.md
Introduces formal C API v1 specification with versioning, error handling, type contracts, threading, and edge-case scenarios; defines standalone goggles-filter-chain target ownership, boundary contracts, control semantics, and facade API surface for lifecycle, frame submission, and prechain operations.
Updated Render Pipeline Spec
openspec/specs/render-pipeline/spec.md, openspec/changes/archive/.../spec.md
Adds explicit host-backend and filter-library boundary ownership claims; introduces Async Filter Lifecycle Safety requirement preserving preset reload, chain swap, and resize safety across boundaries; defines stage ordering and semantic binding invariance.
Maintainer Documentation Restructuring
src/render/chain/README.md, src/render/chain/docs/integration_guide.md, src/render/chain/docs/spec.md
Replaces API-focused documentation with maintainer-oriented governance guides; shifts integration guide from detailed step-by-step procedures to golden-path workflow and debugging checklists; reframes spec from ABI/lifecycle detail to high-level contracts, ownership rules, and PR review guardrails.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • #106: Implements the concrete goggles_filter_chain.h public declarations and C API surface formally specified in this PR.
  • #105: Migrates backend code to use the filter-chain C API and implements the boundary contracts defined here.
  • #98: Modifies the same openspec render-pipeline specification, adding overlapping boundary and async filter lifecycle requirements.

Suggested labels

Review effort 2/5

Poem

🐰 Hopping through licenses and specs so fine,
Boundaries drawn with a boundary line,
Filter chains safe from async despair,
Documentation blooms everywhere!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(repo): clarify licensing && refine docs' accurately summarizes the main changes in the PR, which focuses on adding licensing documentation (LICENSE, THIRD_PART_NOTICES.md, README license section) and refining other documentation files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev/refine-gfx-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Add licensing documentation and refactor filter chain maintainer guides

📝 Documentation

Grey Divider

Walkthroughs

Description
• Add MIT LICENSE file establishing project's primary license terms
• Create THIRD_PART_NOTICES.md documenting bundled third-party components
• Add README license section linking first-party and third-party terms
• Refactor filter chain docs from public C API spec to internal maintainer guides
Diagram
flowchart LR
  A["Project Root"] -->|"adds"| B["LICENSE<br/>MIT Terms"]
  A -->|"adds"| C["THIRD_PART_NOTICES.md<br/>Third-party Components"]
  A -->|"updates"| D["README.md<br/>License Section"]
  E["src/render/chain/"] -->|"refactors"| F["README.md<br/>Maintainer Guide"]
  E -->|"refactors"| G["docs/integration_guide.md<br/>Workflow Guide"]
  E -->|"refactors"| H["docs/spec.md<br/>Maintainer Contracts"]
Loading

Grey Divider

File Changes

1. LICENSE 📝 Documentation +21/-0

Add MIT license file

• Add new MIT License file with copyright notice for 2025-2026 Goggles contributors
• Include full MIT license text with standard permissions and liability disclaimers

LICENSE


2. README.md 📝 Documentation +7/-0

Add license section to README

• Add new "License" section at end of document
• Link to primary MIT LICENSE file
• Reference THIRD_PART_NOTICES.md for bundled third-party components
• Call out specific third-party assets like fonts and shader files

README.md


3. THIRD_PART_NOTICES.md 📝 Documentation +46/-0

Create third-party notices documentation

• Create new file documenting all bundled third-party code and assets
• List font assets with SIL Open Font License (OFL-1.1)
• Document curated RetroArch CRT shaders under Unlicense
• Include generated Wayland protocol headers with MIT-style licenses
• Document CPM.cmake dependency manager under MIT license
• Add note about runtime/build dependencies resolved through Pixi/Conda

THIRD_PART_NOTICES.md


View more (3)
4. src/render/chain/README.md 📝 Documentation +74/-90

Refactor to internal maintainer guide

• Replace public C API documentation with internal maintainer guide
• Add "What this module owns" section describing preset parsing, pass-graph, and frame recording
• Include runtime flow mental model with 5-step pipeline
• Add "Where to edit" table mapping tasks to primary and secondary files
• Document invariants that must be preserved during changes
• Provide practical change playbooks for preset, pass execution, and control behavior
• Include verification checklist with test commands and smoke test guidance

src/render/chain/README.md


5. src/render/chain/docs/integration_guide.md 📝 Documentation +51/-224

Refactor to contributor workflow guide

• Replace detailed C API integration guide with contributor workflow guide
• Shift focus from external integrators to internal contributors
• Add primary integration points listing key source files
• Document golden path for chain resource building and frame recording
• Include frame loop, preset load/rebuild, resize, and controls flow sections
• Add failure handling expectations and quick debug checklist
• Provide verification commands for unit tests, CI-parity gate, and runtime smoke tests

src/render/chain/docs/integration_guide.md


6. src/render/chain/docs/spec.md 📝 Documentation +63/-365

Refactor to maintainer contracts

• Replace comprehensive C API specification with maintainer contracts document
• Reduce from 21 sections covering full ABI/API to 11 focused contract sections
• Document 9 core contracts: pipeline order, semantic names, graph ownership, rebuild/swap,
 record-path, controls, preset parser, integration boundary, and change-impact map
• Add practical verification baseline with test commands
• Include PR review guardrails for behavior changes and contract preservation
• Remove detailed function-by-function API contract tables and ABI versioning policy

src/render/chain/docs/spec.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review bot commented Mar 5, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Slangp license unclear 🐞 Bug ✓ Correctness
Description
THIRD_PART_NOTICES.md lists shaders/retroarch/crt/crt-lottes-fast.slangp as third-party but does
not specify an actual license (identifier/text), and the preset file itself contains no
license/attribution header. This creates ambiguity for redistribution/compliance and undermines the
PR’s goal of clarifying licensing.
Code

THIRD_PART_NOTICES.md[R18-21]

+- `shaders/retroarch/crt/crt-lottes-fast.slangp`
+  - Component: Preset metadata for the curated shader above.
+  - License: Distributed with and attributed to upstream `libretro/slang-shaders` content.
+
Evidence
The notice entry for the .slangp preset does not name a license (unlike the other entries which
do), and the preset file itself contains only configuration lines with no embedded
license/attribution. As written, readers cannot determine what terms apply to that file from
repository contents alone.

THIRD_PART_NOTICES.md[18-21]
shaders/retroarch/crt/crt-lottes-fast.slangp[1-5]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`THIRD_PART_NOTICES.md` lists `shaders/retroarch/crt/crt-lottes-fast.slangp` but does not provide an actual license identifier/text, and the preset file contains no embedded license/attribution. This leaves redistribution terms unclear.

## Issue Context
Other third-party entries in `THIRD_PART_NOTICES.md` name specific licenses (OFL-1.1, Unlicense, MIT-style, ISC-style). This one does not, making it ambiguous for compliance/audits.

## Fix Focus Areas
- THIRD_PART_NOTICES.md[18-21]
- shaders/retroarch/crt/crt-lottes-fast.slangp[1-5]

## Suggested approaches
1. If `crt-lottes-fast.slangp` is third-party: update the THIRD_PART_NOTICES entry to a specific license (e.g., SPDX ID) and ensure the corresponding license text is present in-repo (either embedded in the file, or included as a separate license file referenced from the notice).
2. If it is first-party (authored in this repo): remove it from THIRD_PART_NOTICES and optionally add a short comment header noting it is MIT-licensed under the project LICENSE.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

- Add an MIT LICENSE file as the project's primary license.
- Add THIRD_PART_NOTICES.md for bundled third-party code and assets.
- Add a README license section linking first-party and third-party terms.
- Call out key bundled components with their applicable license texts.
- Archive all completed openspec proposals
@K1ngst0m K1ngst0m force-pushed the dev/refine-gfx-docs branch from 0221b4e to 8fa5280 Compare March 5, 2026 05:09
Comment on lines +18 to +21
- `shaders/retroarch/crt/crt-lottes-fast.slangp`
- Component: Preset metadata for the curated shader above.
- License: Distributed with and attributed to upstream `libretro/slang-shaders` content.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Slangp license unclear 🐞 Bug ✓ Correctness

THIRD_PART_NOTICES.md lists shaders/retroarch/crt/crt-lottes-fast.slangp as third-party but does
not specify an actual license (identifier/text), and the preset file itself contains no
license/attribution header. This creates ambiguity for redistribution/compliance and undermines the
PR’s goal of clarifying licensing.
Agent Prompt
## Issue description
`THIRD_PART_NOTICES.md` lists `shaders/retroarch/crt/crt-lottes-fast.slangp` but does not provide an actual license identifier/text, and the preset file contains no embedded license/attribution. This leaves redistribution terms unclear.

## Issue Context
Other third-party entries in `THIRD_PART_NOTICES.md` name specific licenses (OFL-1.1, Unlicense, MIT-style, ISC-style). This one does not, making it ambiguous for compliance/audits.

## Fix Focus Areas
- THIRD_PART_NOTICES.md[18-21]
- shaders/retroarch/crt/crt-lottes-fast.slangp[1-5]

## Suggested approaches
1. If `crt-lottes-fast.slangp` is third-party: update the THIRD_PART_NOTICES entry to a specific license (e.g., SPDX ID) and ensure the corresponding license text is present in-repo (either embedded in the file, or included as a separate license file referenced from the notice).
2. If it is first-party (authored in this repo): remove it from THIRD_PART_NOTICES and optionally add a short comment header noting it is MIT-licensed under the project LICENSE.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@K1ngst0m K1ngst0m merged commit 2d9723f into main Mar 5, 2026
3 of 4 checks passed
@K1ngst0m K1ngst0m deleted the dev/refine-gfx-docs branch March 5, 2026 05:16
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