-
-
Notifications
You must be signed in to change notification settings - Fork 638
Fix licensing vulnerabilities and strengthen freemium model legal protections #1823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
6734c2a
a7c6aaf
39bd5bf
55c349a
a22230b
c98118b
f408946
ca4d093
37d1f26
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,17 +1,41 @@ | ||
| # Licensing | ||
|
|
||
| - **Core**: MIT (this file) | ||
| - **Pro**: see [REACT-ON-RAILS-PRO-LICENSE.md](./REACT-ON-RAILS-PRO-LICENSE.md) | ||
| This repository contains code under two different licenses: | ||
|
|
||
| --- | ||
| - **Core**: MIT License (applies to most files) | ||
| - **Pro**: React on Rails Pro License (applies to specific directories) | ||
|
|
||
| ## License Scope | ||
|
|
||
| ### MIT Licensed Code | ||
|
|
||
| The following directories and all their contents are licensed under the **MIT License** (see full text below): | ||
|
|
||
| ## MIT License for Core React on Rails | ||
| - `lib/react_on_rails/` (excluding `lib/react_on_rails/pro/`) | ||
| - `node_package/src/` (excluding `node_package/src/pro/`) | ||
| - All other directories in this repository not explicitly listed as Pro-licensed | ||
|
|
||
|
Comment on lines
12
to
18
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. π§© Analysis chainConsistency checks: align metadata and license text with docs
Also applies to: 24-31, 66-77 π Script executed: #!/bin/bash
set -euo pipefail
# 1) Inspect package.json license fields across the repo
rg -n --type=json -H '"license"\s*:\s*' -C1
# 2) Validate that the Pro license file exists and includes key terms
fd -a '^REACT-ON-RAILS-PRO-LICENSE\.md$' -x realpath
rg -n --heading -C2 -e 'educational|classroom|personal|non-?production|evaluation' \
-e 'anti[- ]?circumvent|circumvention|bypass|reverse engineer' \
REACT-ON-RAILS-PRO-LICENSE.md
# 3) Cross-check that directories listed here match docs/DIRECTORY_LICENSING.md
echo "Dirs listed in LICENSE.md (MIT vs Pro):"
rg -n 'lib/react_on_rails/pro/|node_package/src/pro/' LICENSE.md
rg -n 'lib/react_on_rails/|node_package/src/' LICENSE.md
echo "Compare with DIRECTORY_LICENSING.md:"
rg -n 'lib/react_on_rails/pro/|node_package/src/pro/' docs/DIRECTORY_LICENSING.md
rg -n 'lib/react_on_rails/|node_package/src/' docs/DIRECTORY_LICENSING.mdLength of output: 188 π Script executed: #!/bin/bash
set -euo pipefail
# 1) List Pro license files in the repo
echo "Pro license files:"
fd -e md -g '*PRO-LICENSE.md'
# 2) Search for educational/personal/non-production and anti-circumvention terms in each Pro license file
echo
echo "Key terms in Pro license:"
for file in $(fd -e md -g '*PRO-LICENSE.md'); do
echo "== $file =="
rg -n --heading -C2 -e 'educational|classroom|personal|non-?production|evaluation' \
-e 'anti[- ]?circumvent|circumvention|bypass|reverse engineer' "$file" || echo " (no matches)"
echo
done
# 3) Verify LICENSE.md directory listings
echo "LICENSE.md directory entries:"
rg -n -C1 'lib/react_on_rails' LICENSE.md
rg -n -C1 'node_package/src' LICENSE.md
# 4) Verify docs/DIRECTORY_LICENSING.md directory listings
echo
echo "docs/DIRECTORY_LICENSING.md directory entries:"
rg -n -C1 'lib/react_on_rails' docs/DIRECTORY_LICENSING.md
rg -n -C1 'node_package/src' docs/DIRECTORY_LICENSING.mdLength of output: 3429 π Script executed: #!/bin/bash
set -euo pipefail
echo "1) License field context in package.json:"
rg -n -C2 '"license"\s*:' package.json || echo "license field not found"
echo
echo "2) Presence of custom license file reference:"
rg -n '"licenseFile"\s*:' package.json || echo "no \"licenseFile\" key"
rg -n '"licenseFilename"\s*:' package.json || echo "no \"licenseFilename\" key"Length of output: 321 Sync package.json and LICENSE.md with SPDX expression and docs
|
||
| This license applies to all files within this repository, with the exception of the code located in the following directories, which are licensed separately under the React on Rails Pro License: | ||
| ### Pro Licensed Code | ||
|
|
||
| ```text | ||
| SPDX-License-Identifier: LicenseRef-Proprietary | ||
| ``` | ||
|
|
||
| The following directories and all their contents are licensed under the **React on Rails Pro License**: | ||
|
|
||
| - `lib/react_on_rails/pro/` | ||
| - `node_package/src/pro/` | ||
AbanoubGhadban marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| See [REACT-ON-RAILS-PRO-LICENSE.md](./REACT-ON-RAILS-PRO-LICENSE.md) for complete Pro license terms. | ||
|
|
||
| **Important:** Pro-licensed code is included in this package but requires a valid React on Rails Pro subscription to use. Using Pro features without a valid license violates the React on Rails Pro License. | ||
|
|
||
| --- | ||
|
|
||
| ## MIT License | ||
|
|
||
| This license applies to all MIT-licensed code as defined above. | ||
|
|
||
| Copyright (c) 2017, 2018 Justin Gordon and ShakaCode | ||
| Copyright (c) 2015β2025 ShakaCode, LLC | ||
|
|
||
|
|
@@ -41,7 +65,12 @@ SOFTWARE. | |
|
|
||
| ## React on Rails Pro License | ||
|
|
||
| The code in the directories listed above is part of the React on Rails Pro framework and is licensed under the React on Rails Pro License. | ||
|
|
||
| You can find the full text of the license agreement here: | ||
| For Pro-licensed code (as defined in the "License Scope" section above), see: | ||
| [REACT-ON-RAILS-PRO-LICENSE.md](./REACT-ON-RAILS-PRO-LICENSE.md) | ||
|
|
||
| **Key Points:** | ||
|
|
||
| - Pro features require a valid React on Rails Pro subscription for production use | ||
| - Free use is permitted for educational, personal, and non-production purposes | ||
| - Modifying MIT-licensed interface files is permitted under MIT terms | ||
| - However, using those modifications to access Pro features without a valid license violates the Pro License | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,14 +12,19 @@ All directories in the `react_on_rails` repository are MIT licensed: | |
| react_on_rails/ | ||
| βββ lib/react_on_rails/ # Core Ruby code (MIT) | ||
| βββ node_package/src/ # Core JS/TS code (MIT) | ||
| β βββ pro/ # Pro features placeholder (MIT but references pro) | ||
| β βββ pro/ # Pro features with license validation (Pro licensed) | ||
| βββ spec/ # Core tests (MIT) | ||
| βββ docs/ # Documentation (MIT) | ||
| βββ .github/ # GitHub workflows (MIT) | ||
| βββ [all other directories] # MIT | ||
| ``` | ||
|
|
||
| **Exception:** The `node_package/src/pro/` directory contains placeholder code that references Pro features, but the actual Pro implementation is in the separate `react_on_rails_pro` repository. | ||
| **Exception:** The `node_package/src/pro/` directory contains Pro implementation code licensed under the React on Rails Pro License. This code is included in the package but requires a valid Pro license to use. | ||
|
|
||
| **Important Distinction:** | ||
| - **MIT-licensed interface files** (outside `pro/` directories) can be freely modified under MIT terms | ||
| - **Using those modifications to access Pro features** without a license violates the Pro License | ||
| - **Pro-licensed files** (inside `pro/` directories) require a Pro license to use in any way | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "in any way." "Note, ShakaCode offers FREE licenses for educational and demonstration purposes." There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Claude finished @justin808's task ββ View job β’ β Task Completed
SummarySuccessfully added the note about free educational and demonstration licenses to
This clarification helps users understand that while Pro features require a license, ShakaCode offers free options for educational and demonstration use cases. Branch: |
||
|
|
||
| ### react_on_rails_pro Repository - Pro Licensed | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -95,7 +95,7 @@ react_on_rails/ (monorepo root) | |
|
|
||
| **A:** We maintain two separate repositories: | ||
|
|
||
| - **react_on_rails** (MIT) - Core functionality, completely free except pro directories as stated in LICENSE.md | ||
| - **react_on_rails** (MIT + Pro) - Core functionality is MIT-licensed and completely free. Pro features (in `pro/` directories) are Pro-licensed and require a subscription for production use | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing period. Add: Note, ShakaCode offers FREE licenses for educational and demonstration purposes. |
||
| - **react_on_rails_pro** (Pro License) - Advanced features, subscription required for production | ||
|
|
||
| ### Q: What requires a Pro subscription? | ||
|
|
@@ -110,6 +110,14 @@ react_on_rails/ (monorepo root) | |
|
|
||
| See [REACT-ON-RAILS-PRO-LICENSE.md](../REACT-ON-RAILS-PRO-LICENSE.md) for complete Pro license terms. | ||
|
|
||
| ### Q: Can I modify the MIT-licensed interface files? | ||
|
|
||
| **A:** Yes! Under the MIT license, you can freely modify any MIT-licensed files (those outside `pro/` directories). However: | ||
|
|
||
| - **Permitted:** Modifying MIT-licensed code for your own purposes | ||
| - **Not Permitted:** Using those modifications to access Pro features without a valid license | ||
| - **Distinction:** The MIT license grants you modification rights, but the Pro License restricts unauthorized use of Pro features | ||
|
|
||
| ### Q: Can I try Pro features for free? | ||
|
|
||
| **A:** Yes! Pro license allows free use for: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -118,7 +118,7 @@ | |
| "Rails" | ||
| ], | ||
| "author": "[email protected]", | ||
| "license": "MIT", | ||
| "license": "MIT AND LicenseRef-Proprietary", | ||
| "bugs": { | ||
| "url": "https://github.com/shakacode/react_on_rails/issues" | ||
| }, | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.