Skip to content

Conversation

@justin808
Copy link
Member

@justin808 justin808 commented Sep 7, 2025

Updating license files in prep for React on Rails Pro merge to monorepo.


This change is Reviewable

Summary by CodeRabbit

  • Documentation
    • Clarified dual-licensing: Core under MIT; Pro under a new commercial Pro license.
    • Replaced prior Pro EULA with the new Pro license (v2.0) defining Organization, Production Use, tiers, fees, term, and termination.
    • Added Licensing Overview summarizing free non‑commercial/demo use vs paid Production Use.
    • Updated MIT formatting and disclaimer.
    • Pro restrictions added: no redistribution/resale, required HTML attribution, verification/audit and support/update terms.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 7, 2025

Warning

Rate limit exceeded

@justin808 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 4 minutes and 10 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between ed1676a and 0b0e6f0.

📒 Files selected for processing (3)
  • LICENSE.md (2 hunks)
  • LICENSES/README.md (1 hunks)
  • REACT-ON-RAILS-PRO-LICENSE.md (1 hunks)

Walkthrough

Refactors core LICENSE.md into a structured "Licensing" file, adds a LICENSES/README.md overview describing Core (MIT) vs Pro licensing, removes the old Pro EULA file, and introduces a new REACT-ON-RAILS-PRO-LICENSE.md (v2.0) with per-organization Pro terms and restrictions.

Changes

Cohort / File(s) Summary of changes
Core license documentation
LICENSE.md
Reorganized header into "Licensing", added section separators, included an explicit "MIT License" section with updated copyright years/holders, adjusted grant wording ("in the Software"), and added a formatted Disclaimer.
Licensing overview
LICENSES/README.md
New file outlining a dual-licensing model: Core MIT for general use and React on Rails Pro for Production Use; links to LICENSE.md and REACT-ON-RAILS-PRO-LICENSE.md; clarifies free vs paid tiers.
Pro license replacement
REACT-ON-RAILS-PRO-LICENSE (removed), REACT-ON-RAILS-PRO-LICENSE.md (added)
Deleted legacy Pro EULA file and added a new Pro license v2.0 (2025-09-06) specifying per-organization, non-transferable licenses, Production Use definition, consulting rules, a free non-commercial/demo tier, explicit restrictions (no redistribution/obfuscation/competing products), required HTML attribution snippet, fees/term/termination, support, verification/audit, IP/confidentiality, disclaimers, and governing law (Hawaii).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • Romex91
  • alexeyr-ci2

Poem

I hopped through the files with legal delight,
Nibbled at clauses by glow of moonlight.
Core stays MIT, Pro got its key,
“Powered by” whispers, please let it be.
A carrot of clarity — chew, tap, and write. 🥕

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/license-files

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
LICENSE.md (1)

10-33: Use the canonical MIT text to preserve license scanner compatibility.

Typographic quotes around “Software” and bolding “AS IS,” plus the added “Disclaimer” header/section breaks, can confuse SPDX/FOSS scanners. Keep the MIT block verbatim (straight quotes, no extra headers/formatting inside the license text).

Apply this minimal diff to restore canonical phrases:

- of this software and associated documentation files (the “Software”), to deal
+ of this software and associated documentation files (the "Software"), to deal
@@
- THE SOFTWARE IS PROVIDED **“AS IS”**, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

Optionally move the “Licensing” preamble and separators above/below, but keep the MIT body unchanged.

REACT-ON-RAILS-PRO-LICENSE.md (1)

54-56: Fix unclosed code fence.

The HTML code block isn’t closed; Markdown rendering will break.

 ```html
 <!-- Powered by React on Rails Pro (c) ShakaCode -->
+
+```
🧹 Nitpick comments (6)
LICENSE.md (2)

1-4: Clarify pathing for Pro license reference.

Consider making the link explicit so it renders as a clickable link on GitHub:

- - Pro: see REACT-ON-RAILS-PRO-LICENSE.md
+ - Pro: see [REACT-ON-RAILS-PRO-LICENSE.md](./REACT-ON-RAILS-PRO-LICENSE.md)

1-4: Add SPDX identifier hint for downstream tooling.

Add an SPDX expression line to guide automation without altering the MIT text.

 # Licensing
+SPDX-License-Identifier: MIT
REACT-ON-RAILS-PRO-LICENSE.md (2)

51-56: Specify that attribution must survive minification/build pipelines.

Many production builds strip HTML comments; clarify expectations and acceptable alternatives.

 ## 6. Attribution (HTML Source)
 Pages rendered using the Software must include a retained non-visual attribution comment in the HTML source:  
@@
 <!-- Powered by React on Rails Pro (c) ShakaCode -->
+```
+
+The attribution must be preserved in production (not removed by HTML/JS/CSS minifiers or compressors). If your tooling strips comments, configure it to retain this comment or include a non-visual equivalent (e.g., a meta tag or data-* attribute) that is functionally equivalent and persists in production builds.
+```

1-6: Define a reusable SPDX-style identifier for the Pro EULA.

Add a LicenseRef so repos using REUSE/SPDX can reference this EULA unambiguously.

 # 📄 ShakaCode React on Rails Pro – End User License Agreement (EULA)
 
 *Version 2.0 — 2025-09-06*  
 © 2015–2025 ShakaCode, LLC. All rights reserved.
 
+Identifier: LicenseRef-ReactOnRailsPro-2.0
LICENSES/README.md (2)

5-10: Add guidance for package manifests and REUSE/SPDX.

Call out how Core vs Pro appear in package.json/gemspec and how to reference the Pro LicenseRef, to keep third-party compliance tools happy.

 - [REACT-ON-RAILS-PRO-LICENSE.md](../REACT-ON-RAILS-PRO-LICENSE.md) – **commercial license** for React on Rails Pro  
 
 **Summary**  
 - Core (MIT) → free and open-source for any use  
 - Pro → free for non-commercial/educational/demo use; **paid subscription required for any Production Use** (including non-profits)  
+
+**Tooling notes**
+- Core packages should declare `license: "MIT"` (npm) / `spec.license = "MIT"` (gemspec).
+- Any Pro-distributed artifacts should use `license: "SEE LICENSE IN REACT-ON-RAILS-PRO-LICENSE.md"` (npm) and reference `LicenseRef-ReactOnRailsPro-2.0` in source headers where applicable.
+- For REUSE/SPDX, reference: `SPDX-License-Identifier: MIT` (Core) or `SPDX-License-Identifier: LicenseRef-ReactOnRailsPro-2.0` (Pro).

5-6: Make links explicitly relative for GitHub rendering.

Minor, but explicit relative links are clearer.

- - [LICENSE.md](../LICENSE.md) – **MIT** license for the core React on Rails library  
- - [REACT-ON-RAILS-PRO-LICENSE.md](../REACT-ON-RAILS-PRO-LICENSE.md) – **commercial license** for React on Rails Pro  
+ - [LICENSE.md](../LICENSE.md) – **MIT** license for the core React on Rails library  
+ - [REACT-ON-RAILS-PRO-LICENSE.md](../REACT-ON-RAILS-PRO-LICENSE.md) – **commercial license** for React on Rails Pro
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f17b4a0 and 3a59dc5.

📒 Files selected for processing (4)
  • LICENSE.md (1 hunks)
  • LICENSES/README.md (1 hunks)
  • REACT-ON-RAILS-PRO-LICENSE (0 hunks)
  • REACT-ON-RAILS-PRO-LICENSE.md (1 hunks)
💤 Files with no reviewable changes (1)
  • REACT-ON-RAILS-PRO-LICENSE
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: dummy-app-integration-tests (newest)
  • GitHub Check: dummy-app-integration-tests (oldest)
  • GitHub Check: rspec-package-tests (oldest)
  • GitHub Check: rspec-package-tests (newest)
  • GitHub Check: build

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (7)
REACT-ON-RAILS-PRO-LICENSE.md (7)

105-107: Fix “Choose one” placeholder in Governing Law; tighten wording

Remove the editorial placeholder and use standard venue language.

-## 15. Governing Law; Venue
-Choose one: **State of Hawaii**,  USA. Exclusive jurisdiction and venue lie in the courts located therein.
+## 15. Governing Law; Venue
+This Agreement is governed by the laws of the State of Hawaii, USA. Exclusive jurisdiction and venue lie in the state and federal courts located in Hawaii.

51-59: Attribution requirement: clarify minification/SSR and consider an attribution waiver option

Tooling often strips HTML comments; also, some customers may need white-labeling. Add explicit guidance and an optional waiver path.

 Pages rendered using the Software must include a retained non-visual attribution comment in the HTML source (provided by the software):
@@
 <!-- Powered by React on Rails Pro (c) ShakaCode -->
@@
-The Organization may not remove or obfuscate this attribution.
+The Organization may not remove or obfuscate this attribution. The Organization must configure build tooling (HTML/JS/CSS minifiers, SSR pipelines, CDNs) to preserve this comment on pages where the Software renders markup.
+
+### 6.1 Attribution Waiver (Optional)
+ShakaCode may grant a written waiver to remove or replace the attribution (e.g., for white‑label products). Any waiver must be explicitly agreed in an order and may include an additional fee.

62-66: Termination: clarify scope of “derivatives,” allow archival backups, add a remediation window

Current language can require impractical repo rewrites. Add a reasonable cure/removal window, narrow “derivatives,” and permit immutable backups.

-Upon termination or lapse, the Organization must immediately cease use and remove the Software (including derivatives) from all Production systems and repositories, except for non-commercial uses explicitly permitted in Section 4.
+Upon termination or lapse, the Organization must cease use and, within 30 days, remove the Software and any Derivative Works (i.e., works incorporating substantial portions of the Software) from all Production systems and active repositories. This does not require modification of immutable offline backups created in the ordinary course of business, provided that the Software is not restored to Production from such backups.

74-76: Audit: add notice, frequency cap, and confidentiality constraints

Reduce friction by specifying advance notice, a max frequency, and data-handling safeguards.

-If ShakaCode reasonably suspects non-compliance, the Organization will cooperate in good faith to verify compliance, including enabling inspection for attribution presence and providing a usage statement. ShakaCode will use commercially reasonable efforts to minimize disruption.
+If ShakaCode reasonably suspects non-compliance, the Organization will cooperate in good faith to verify compliance, including enabling inspection for attribution presence and providing a usage statement. ShakaCode will provide at least 10 business days’ notice (unless required by law) and will not conduct more than one audit in any 12‑month period absent discovered non-compliance. Each party will protect confidential information disclosed during verification using obligations no less protective than those in §12 and will minimize disruption.

44-48: “Competing product” restriction: narrow to avoid overbreadth

Clarify “directly competing” and “substantially similar” to reduce ambiguity and antitrust risk.

-3. use the Software to build a directly competing product exposing substantially similar functionality.
+3. use the Software to build, market, or sell a product whose primary purpose is to replace the Software by offering substantially similar core functionality to React on Rails Pro.

18-23: “Revocable” license: confirm intent or switch to “terminable for cause”

“Revocable” can imply termination at will. If the intention is termination only for breach/non‑payment, adjust wording.

-ShakaCode grants the subscribing Organization a **non-exclusive, non-transferable, revocable** license
+ShakaCode grants the subscribing Organization a **non-exclusive, non-transferable, terminable for cause** license

10-15: Production Use: explicitly include staging/pre‑prod exception

Many teams run staging with real data but not publicly accessible. Consider calling this out.

-**Production Use** – any use of the Software in connection with a live application, website, or service accessed by end users **other than**:
+**Production Use** – any use of the Software in connection with a live application, website, or service accessed by end users **other than**:
   - evaluation or testing
+  - staging or pre‑production environments not publicly accessible
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a59dc5 and ed1676a.

📒 Files selected for processing (3)
  • LICENSE.md (2 hunks)
  • LICENSES/README.md (1 hunks)
  • REACT-ON-RAILS-PRO-LICENSE.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • LICENSES/README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • LICENSE.md
🧰 Additional context used
🪛 GitHub Actions: Lint JS and Ruby
REACT-ON-RAILS-PRO-LICENSE.md

[warning] 1-1: Prettier formatting issue detected in LICENSE.md. Run 'prettier --write' to fix code style issues.


[warning] 1-1: Prettier formatting issue detected in REACT-ON-RAILS-PRO-LICENSE.md. Run 'prettier --write' to fix code style issues.

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: dummy-app-integration-tests (newest)
  • GitHub Check: dummy-app-integration-tests (oldest)
  • GitHub Check: rspec-package-tests (newest)
  • GitHub Check: rspec-package-tests (oldest)
🔇 Additional comments (1)
REACT-ON-RAILS-PRO-LICENSE.md (1)

1-112: Prettier formatting applied: Formatted both LICENSE.md and REACT-ON-RAILS-PRO-LICENSE.md using npx prettier --write. CI should now pass.

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