Add complimentary OSS license policy for React on Rails Pro#3123
Add complimentary OSS license policy for React on Rails Pro#3123
Conversation
Introduces a free-tier license for qualifying open-source projects: eligible orgs (OSI-approved license, <$1M revenue) can apply for a complimentary annual "oss" license with attribution required. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
WalkthroughREACT-ON-RAILS-PRO-LICENSE.md was updated from version 2.1 to 2.2, introducing a new "Complimentary OSS License" with Section 4.1 establishing eligibility criteria and terms for open-source projects, while revising Section 4 and Section 7 to accommodate this new licensing pathway. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: af91af225e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Greptile SummaryThis PR adds Section 4.1 to the React on Rails Pro EULA, establishing a complimentary "oss" license tier for open-source organizations with public source code and annual revenue under $1M, and updates the Section 4 note to reference this new exception.
Confidence Score: 4/5The Section 7 termination clause creates a legal clarity gap with the new Section 4.1 that should be resolved before merging. One P1 legal ambiguity (Section 7 not referencing Section 4.1) could lead to disputes about Production Use obligations upon license termination or revocation. The remaining findings (heading format, missing definition, version bump, CHANGELOG) are all P2. REACT-ON-RAILS-PRO-LICENSE.md — specifically the Section 7 termination clause and Section 4.1 heading/definition consistency. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Organization wants to use\nReact on Rails Pro] --> B{Use type?}
B -->|Non-commercial / Educational / Demo| C[Section 4 – Free use\nNo Production Use]
B -->|Production Use| D{Has paid subscription?}
D -->|Yes| E[Section 2 – Licensed\nOrganization]
D -->|No| F{Qualifies for OSS\nlicense? §4.1}
F -->|Public OSS code AND\nrevenue < $1M AND\napplied via email| G[Section 4.1 – Complimentary\n'oss' License Granted]
F -->|No| H[Unauthorized Production Use\n→ Section 5 violation]
G --> I{License active?}
I -->|Yes – fixed term,\ntypically 1 year| J[Production Use permitted\nAttribution §6 required]
I -->|Revoked – criteria\nno longer met| K[Must cease Production Use\n⚠️ Section 7 gap: no\nexplicit obligation stated]
E --> L[Subscription lapses?]
L -->|No| J
L -->|Yes| M[Section 7 – Cease\nProduction Use\n⚠️ Gap: §4.1 fallback\nnot mentioned]
|
Review NotesThis is a clean, well-scoped policy addition. A few issues worth addressing before merge: CHANGELOG not updatedThe PR checklist item for CHANGELOG is unchecked. Even though this is a license-only change, a brief entry under Version number not bumped (line 3)
Missing definition in Section 1Section 1 defines Organization and Production Use, but "complimentary oss license" appears throughout Section 4.1 without a definition. A one-liner in Section 1 would make the document self-consistent:
Section 7 (Termination) interactionSection 7 requires Organizations to "immediately cease use and remove the Software from all Production systems" upon termination, with the only carve-out being "non-commercial uses explicitly permitted in Section 4." A revoked OSS license holder gets no grace period and no Section 4 carve-out (Section 4 only covers non-production use). The notice-period suggestion on line 60 helps here, but it may also be worth adding an explicit short wind-down period (e.g. 30 days) into Section 7 for complimentary license revocations. See inline comments for the specific line-level suggestions. |
… improve legal precision - Fix Section 7 fee-payment conflict with complimentary licenses by scoping "fees are paid" to paid subscriptions only and adding explicit Complimentary OSS License term/revocation language - Add 30-day notice period for eligibility-based revocations (immediate for breach) in both Section 4.1 and Section 7 - Add "Complimentary OSS License" definition to Section 1 - Make license term explicit: "one (1) year from the date of issuance" instead of "typically one year" - Bump version to 2.2 (2026-04-12) for the substantive amendment - Fix heading level for Section 4.1 to match Section 9.1 style Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Review Address Summary (1a00e6a)All substantive review feedback has been addressed in a single commit: Fixed
Not changed (intentional)
|
Review: License policy update (v2.1 → v2.2)This is a well-structured license update. The new Section 4.1 OSS tier is a good community initiative. A few issues worth addressing before merge: Issues1. Copyright year not updated (line 4) 2. Personal email for a legal/business process (line 53) 3. Section heading style inconsistency (line 47) 4. Inconsistent "oss" / "OSS" casing 5. CHANGELOG not updated Minor
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a00e6a1fa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@REACT-ON-RAILS-PRO-LICENSE.md`:
- Around line 3-4: Update the copyright year range on the license header so it
covers 2015 through 2026; locate the line containing "© 2015–2025 ShakaCode,
LLC. All rights reserved." in REACT-ON-RAILS-PRO-LICENSE.md (near the
version/date header) and change the end year from 2025 to 2026.
- Around line 93-94: The validator currently only checks JWT signature and exp
and has no way to honor the 30-day revocation grace in the license text; update
react_on_rails_pro/lib/react_on_rails_pro/license_validator.rb to implement
revocation-with-grace logic by adding a revocation registry (in-memory store or
persisted Revocation model) and extending validation to read a revocation
timestamp claim or registry entry, then have LicenseValidator.validate (and any
helper like check_status) treat a license as "revoked but within grace" for 30
days after the registry/notice timestamp (allowing usage) and as fully revoked
after 30 days (rejecting use); ensure JWT parsing still occurs, add/handle a
'revoked_at' or 'revocation_notice_sent_at' reference, and add/update unit tests
to cover revoked-within-grace and post-grace behaviors.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 07683be9-3c86-42da-b986-528342ef85be
📒 Files selected for processing (1)
REACT-ON-RAILS-PRO-LICENSE.md
…sistency - Update copyright year from 2025 to 2026 to match document date - Broaden Section 5.7 to reference "valid, active license or subscription" so Complimentary OSS License holders are not in apparent violation - Capitalize "Terms of Complimentary OSS Licenses" to match the defined term in Section 1 Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Review Address Summary (5dbdef6)Fixed
Declined with rationale
All review threads are now resolved. |
| **Note:** This clause does **not** permit any Production Use by any entity (commercial, non-profit, or individual). All Production Use requires a paid subscription under this Agreement. | ||
| **Note:** This clause does **not** permit any Production Use by any entity (commercial, non-profit, or individual). All Production Use requires a paid subscription under this Agreement, except as provided in Section 4.1. | ||
|
|
||
| **4.1 Open-Source Project License (Complimentary)** |
There was a problem hiding this comment.
Structural placement concern: Section 4.1 is nested under Section 4 "Non-Commercial / Educational / Demo Use (Free)" — but unlike everything else in Section 4, this subsection explicitly permits Production Use. A reader skimming Section 4 would reasonably assume all of it covers non-commercial/free/demo scenarios, and could miss or misread the carve-out.
Consider making this a standalone top-level section (e.g., renaming to Section 4A or moving it between Sections 4 and 5) with a clear header that signals it authorizes a distinct license tier, not merely a sub-type of the non-commercial exception.
| ShakaCode may, at its sole discretion, issue a complimentary "oss" license to an Organization that meets **all** of the following criteria: | ||
|
|
||
| 1. The Organization deploys the Software as part of a project whose source code is publicly available under an [OSI-approved license](https://opensource.org/licenses). | ||
| 2. The Organization's annual revenue (or total funding received, if pre-revenue) does not exceed USD $1,000,000. |
There was a problem hiding this comment.
Ambiguous threshold for pre-revenue organizations: "total funding received, if pre-revenue" is open to interpretation. Does it mean cumulative lifetime funding, current round size, or something else? A pre-revenue startup with $5M raised (but $4M already spent) might claim they don't currently "have" $1M, while another reading would disqualify them.
Suggest tightening to something like: "total outside investment raised to date (including grants, equity rounds, and convertible notes)" to avoid disputes at renewal or revocation time.
|
|
||
| 1. The Organization deploys the Software as part of a project whose source code is publicly available under an [OSI-approved license](https://opensource.org/licenses). | ||
| 2. The Organization's annual revenue (or total funding received, if pre-revenue) does not exceed USD $1,000,000. | ||
| 3. The Organization applies by emailing [[email protected]](mailto:[email protected]) and provides truthful information about the project and Organization. |
There was a problem hiding this comment.
Personal email in a legal document: Embedding [email protected] directly here creates a stale reference if the contact person changes roles or leaves. Consider using a role-based or alias address (e.g., [email protected]) so the application process can be re-routed without needing a EULA version bump.
| **Terms of Complimentary OSS Licenses:** | ||
|
|
||
| - The attribution requirement in Section 6 applies and may not be waived. | ||
| - Complimentary OSS Licenses are granted for a fixed term of one (1) year from the date of issuance and may be renewed upon request. |
There was a problem hiding this comment.
Renewal terms leave eligibility re-verification unspecified: The text says licenses "may be renewed upon request" but doesn't address whether eligibility is re-evaluated at renewal. If an organization's revenue grew past $1M during the term, mid-term revocation under Section 4.1(ii) covers that — but what about at renewal? Without explicit language, a licensee could argue they have a continuing right to renew even after surpassing the threshold.
Suggest adding: "Renewal is subject to re-confirmation that all eligibility criteria are still met at the time of renewal."
Review: EULA v2.2 — Complimentary OSS License (Section 4.1)The policy intent is clear and the overall structure of the changes is sound. A few issues worth addressing before merging: Must-fixCHANGELOG not updated — the PR checklist explicitly marks this unchecked. Per project contributing guidelines this should be filled in, even for non-code changes (e.g., under a "Documentation / License" heading). Should-fix (policy clarity)
Minor / FYI
|
…ages * origin/main: Fix initial page startup race for late-loading client bundles (#3151) chore: apply prettier formatting to tracked docs files (#3153) docs: comprehensive RSC API documentation and registration consolidation (#3140) Split rspec-package-tests into parallel generator/unit shards (#3134) fix: add concurrency groups to long-running CI workflows (#3133) refactor: add RenderRequest, JsCodeBuilder, and RenderingStrategy abstractions (#3094) fix: address deferred review items from PR #2849 (#3093) Add complimentary OSS license policy for React on Rails Pro (#3123) fix: centralize CI docs-only detection and add CLI flag validation (#3091) refactor: replace stub-throw + Object.assign with capability-based composition (#3096) Enhance address-review with parallel fixes, self-review, and Greptile verification (#3121) fix: Doctor no longer fails custom projects for missing bin/dev (#3117) fix: cap webpack <5.106.0 to prevent ExecJS SSR breakage (#3095) Add Rspack + RSC compatibility tests and documentation (#1828) (#3120) Add error scenarios hub and test pages (#2497) docs: document polyfill requirements for web-targeted server bundles (#3092) docs: RSC integration pitfalls from tutorial app (#3087) docs: fix render function/helper API documentation (#3088) Doctor: accept TS/TSX server bundle suffixes (#3111) feat: add CI guard requiring sidebar updates when adding docs (#3089)
### Summary Adds Section 4.1 to the React on Rails Pro license agreement, establishing a complimentary "oss" license tier for qualifying open-source projects. Eligible organizations must have publicly available source code under an OSI-approved license and annual revenue under $1M. Licenses are granted for a fixed term (typically one year), require attribution per Section 6, and may be revoked if eligibility criteria are no longer met. Also updates the note in Section 4 to reference the new Section 4.1 exception. ### Pull Request checklist - [x] ~Add/update test to cover these changes~ _(license text only, no code changes)_ - [x] ~Update documentation~ _(the license file is self-documenting)_ - [ ] Update CHANGELOG file ### Other Information No code changes — this is a license policy update only. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > License-text-only update with no code or runtime behavior changes. Risk is limited to policy/wording interpretation and downstream compliance expectations. > > **Overview** > Updates `REACT-ON-RAILS-PRO-LICENSE.md` to EULA v2.2 and adds a new **Complimentary OSS License** path (Section `4.1`) defining eligibility, application, term/renewal, attribution requirements, and revocation rules. > > Adjusts related language to recognize the new license type, including the Section 4 production-use note, the “no Pro features without a valid license” restriction, and Section 7 termination/removal obligations (including a 30-day compliance window when eligibility changes). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 5dbdef6. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Licensing Updates** * New Complimentary OSS License available for qualifying open-source projects * Production use now permitted for eligible projects meeting specific criteria (OSI-approved public code, revenue/funding limits) * 1-year renewable license terms with mandatory attribution requirement * Updated compliance and termination procedures for the new license tier <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Summary
Adds Section 4.1 to the React on Rails Pro license agreement, establishing a complimentary "oss" license tier for qualifying open-source projects. Eligible organizations must have publicly available source code under an OSI-approved license and annual revenue under $1M. Licenses are granted for a fixed term (typically one year), require attribution per Section 6, and may be revoked if eligibility criteria are no longer met.
Also updates the note in Section 4 to reference the new Section 4.1 exception.
Pull Request checklist
Add/update test to cover these changes(license text only, no code changes)Update documentation(the license file is self-documenting)Other Information
No code changes — this is a license policy update only.
Note
Low Risk
License-text-only update with no code or runtime behavior changes. Risk is limited to policy/wording interpretation and downstream compliance expectations.
Overview
Updates
REACT-ON-RAILS-PRO-LICENSE.mdto EULA v2.2 and adds a new Complimentary OSS License path (Section4.1) defining eligibility, application, term/renewal, attribution requirements, and revocation rules.Adjusts related language to recognize the new license type, including the Section 4 production-use note, the “no Pro features without a valid license” restriction, and Section 7 termination/removal obligations (including a 30-day compliance window when eligibility changes).
Reviewed by Cursor Bugbot for commit 5dbdef6. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit