Skip to content

docs: declare the bundled Geist webfonts in LICENSE - #3140

Merged
likun666661 merged 3 commits into
apache:mainfrom
Joob1n:docs/license-declare-bundled-fonts
Aug 17, 2026
Merged

docs: declare the bundled Geist webfonts in LICENSE#3140
likun666661 merged 3 commits into
apache:mainfrom
Joob1n:docs/license-declare-bundled-fonts

Conversation

@Joob1n

@Joob1n Joob1n commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Part of #2974 (Phase 3, Declare Category B dependencies in LICENSE).

What ships that LICENSE did not declare

The desktop renderer bundle emits Geist Variable and Geist Mono Variable .woff2 files, so binary artifacts redistribute OFL-1.1 material with no corresponding declaration. This adds one, in the same shape as the existing trycua/cua entry.

Why a dependency scan does not find it

Both @fontsource-variable/* packages are declared as devDependencies, and neither appears in app.asar. Only the font files vite emits into dist-renderer ship. Verified by listing dist-renderer/assets/*.woff2 — 11 files across the two families — against the packaged bundle.

Flagging it because the same reasoning narrows the rest of that checklist item:

Audit entry Verified Needs a LICENSE declaration?
@fontsource-variable/geist* — OFL-1.1 ships as .woff2 in dist-renderer yes, added here
lightningcss — MPL-2.0 build-time only, not in any artifact no
caniuse-lite build-time only, and CC-BY-4.0, not MPL-2.0 no

So the item reduces to the fonts. Happy to be corrected if the intent was to declare build-time dependencies too — my reading of the release policy is that LICENSE covers what a release artifact actually redistributes.

Checks

Lint and format pass. Source-only change, no code paths touched.

Part of apache#2974. The renderer bundle emits Geist Variable and Geist Mono
Variable `.woff2` files, so binary artifacts redistribute OFL-1.1 material
that LICENSE did not declare.

Worth noting for the checklist: a dependency scan does not find this. Both
`@fontsource-variable/*` packages are declared as devDependencies and neither
appears in `app.asar` — only the font files vite emits into `dist-renderer`
ship. Verified by listing `dist-renderer/assets/*.woff2` (11 files across both
families) against the packaged bundle.

The same check clears the other two entries the audit listed for this item.
`lightningcss` and `caniuse-lite` are build-time only and reach no artifact,
so neither needs a LICENSE declaration for binary releases; `caniuse-lite` is
also CC-BY-4.0 rather than MPL-2.0.

Claude-Session: https://claude.ai/code/session_014ajaRxC4jydavY9nYUFj5J
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Joob1n, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 22 minutes

Limit details: You’ve used all 3 included reviews currently available under your plan.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f3e1f4fd-0baa-4e16-b4d9-7986974925fb

📥 Commits

Reviewing files that changed from the base of the PR and between 210d881 and 33f0e69.

📒 Files selected for processing (1)
  • LICENSE

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 7c78a289-26ae-4915-895c-694721ca680b

📥 Commits

Reviewing files that changed from the base of the PR and between 81a4b0e and 210d881.

📒 Files selected for processing (1)
  • LICENSE
🚧 Files skipped from review as they are similar to previous changes (1)
  • LICENSE

Included review availability: Your plan includes up to 3 reviews per rolling hour; 0 remain after this review.


📝 Walkthrough

Summary

This PR adds SIL Open Font License 1.1 attribution for bundled Geist and Geist Mono .woff2 files. It closes the licensing gap for fonts shipped in the desktop renderer bundle.

The change extends the existing LICENSE source of truth. It does not create a parallel licensing path.

This is the smallest coherent solution. It changes only LICENSE and adds no runtime code, dependency, or build-path complexity. No code or tests can be removed without reducing licensing coverage.

Validation and risks

Lint and formatting checks pass. The license text includes the complete OFL-1.1 header and upstream FAQ URL. No source code paths changed.

The font packages remain development dependencies. Only generated font files in dist-renderer ship. lightningcss and caniuse-lite remain build-time-only dependencies and do not require release artifact declarations.

Review-relevant risks

The current diff changes licensing and release attribution for bundled font files. Material licensing or release changes require independent human review under repository policy.

No user-visible behavior, public contract, security, or governance effect was identified in the current diff. Required-check status remains unverified unless supported by direct evidence.

The person performing the merge must review the final diff. A maintainer makes the final determination.

Walkthrough

The LICENSE file now includes attribution and the full SIL Open Font License, Version 1.1, for bundled Geist and Geist Mono webfonts.

Changes

Font licensing

Layer / File(s) Summary
Bundled font license notice
LICENSE
Adds Geist and Geist Mono attribution and reproduces the applicable SIL Open Font License terms.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 210d8

This localized documentation change declares bundled Geist webfont materials in LICENSE without changing runtime behavior; no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the license change and verification, but it omits the required Summary, AI use, and Checklist sections. Reformat the description to include all template sections, select one AI-use option, and complete the checklist and behavior question.
Ai Use Disclosure ⚠️ Warning The PR description selects neither required AI-use declaration; both introduced commits have Claude-Session links but no standalone Generated-by trailer. Select exactly one declaration in the PR description. If Claude authored material content, name Claude and scope, add Generated-by: Claude to each affected commit, and preserve it through squash/amend. See CONTRIBUTING.md: Human ownershi...
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the main change: adding the bundled Geist webfont license declaration.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the repository’s root LICENSE file to declare redistribution of bundled Geist/Geist Mono webfont binaries (OFL-1.1) as part of Apache Incubator onboarding/license compliance work (Issue #2974, Phase 3).

Changes:

  • Adds a new third-party license entry for bundled Geist Variable and Geist Mono Variable .woff2 assets.
  • Includes the SIL Open Font License (OFL) 1.1 text in LICENSE for redistributed font material.
Suppressed comments (1)

LICENSE:251

  • The copied OFL-1.1 text starts at “PREAMBLE” and omits the standard license header block (license name/date and reference URL). For license compliance/readability, include the full upstream header immediately before the preamble.
PREAMBLE

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread LICENSE
The copied license started at PREAMBLE and dropped the standard header —
license name, version, date, and the upstream FAQ URL. For a declaration
whose whole purpose is reproducing the license the fonts ship under, a
truncated copy undercuts the point.

The embedded text is now byte-identical to the upstream
`@fontsource-variable/geist` LICENSE from the header onward, and the
introducing sentence no longer restates what that header already says.

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

The entry named a source and a copyright but no version, so the attribution
could not be checked against what actually shipped. The `trycua/cua` entry
above pins a revision for the same reason.

Records the emitting package versions from package-lock.json rather than a
font-repo revision: the `.woff2` files are built by those packages, so they
are what a reader would have to fetch to reproduce the bundled bytes.

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (1)

LICENSE:239

  • The section header says "Geist and Geist Mono" but the text below and the emitting packages are specifically the variable font families. Aligning the header to the redistributed artifacts avoids ambiguity if non-variable Geist fonts are added later.
Geist and Geist Mono (bundled webfonts)

@likun666661 likun666661 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Verified the pinned 5.3.0 package versions against package-lock.json and the published npm tarballs. The OFL text matches the upstream package licenses, the bundled .woff2 files are correctly identified, and the packaging config also carries both upstream license files. CI is green. LGTM.

@likun666661
likun666661 merged commit 9607a86 into apache:main Aug 17, 2026
13 checks passed
Astro-Han pushed a commit that referenced this pull request Aug 17, 2026
…ion (#3155)

#3140 added the Geist OFL declaration to LICENSE, and the notices generator
folds LICENSE into its output, so the committed file has been stale since that
merged. `npm run check:third-party-notices` has failed on `main` ever since.

Nothing caught it because the Windows `package` job is the only caller of this
check, it runs on pull requests alone, and its trigger paths do not include
LICENSE — so the PR that caused the drift never ran the job that would have
said so. The next PR to touch one of those paths inherited the failure.

Regenerated output only: 107 lines added, none removed, all of them the OFL
text #3140 introduced. Verified under `npm ci` so the dependency closure
matches what CI resolves.

generated by: Claude Code
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.

3 participants