Skip to content

Commit e4a9a64

Browse files
Phase 3: Prepare react-on-rails package for workspace structure (#1830)
* Phase 3: Prepare core package for workspace structure - Create packages/react-on-rails/ directory structure - Move entire node_package/src/ to packages/react-on-rails/src/ (including pro/) - Create packages/react-on-rails/package.json with workspace configuration - Update root package.json to workspace manager with workspaces config - Update tsconfig.json to build from packages/react-on-rails/src/ - Update LICENSE.md with new package paths including pro directory - Update CI workflows to publish from workspace directory - Update dummy app scripts to use workspace build and publish process 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix CI failures: Update Knip config and test imports for workspace structure - Update Knip configuration to look for source files in packages/react-on-rails/src/ instead of node_package/src/ - Update all test import paths from ../src/ to ../../packages/react-on-rails/src/ - Fix dead code detection issues that were causing CI failures - Verify Knip passes locally in both normal and production modes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix package.json workspace configuration for publishing - Fixed root package.json to support both workspace management and publishing - Restored peerDependencies, files, and export fields to root package - Made workspace package private and simplified scripts - Tests pass and build successful 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix workspace configuration for publishing and CI - Made root package private workspace manager - Made workspace package publishable with proper exports - Fixed CI workflow to pack from workspace package only - Updated build to copy lib output to workspace package - Fixed all package paths to be relative to workspace package 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Knip configuration to ignore build output directories - Added ignore patterns for packages/react-on-rails/lib/** and node_package/lib/** - Added /packages/*/lib to .gitignore to exclude workspace build outputs - Resolves Knip dead code detection failures for build artifacts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix ESLint configuration for workspace package imports - Added import/extensions rule override for packages/react-on-rails/src/**/* - Allows TypeScript files to use .ts extensions in imports (ignorePackages) - Resolves 111 ESLint import/extensions violations after workspace migration - Matches existing node_package/**/* rule configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Jest configuration for workspace and testing library setup - Convert jest.config.js to jest.config.mjs for ES module compatibility - Add setupFilesAfterEnv: ['@testing-library/jest-dom'] for custom matchers - Resolves toBeInTheDocument TypeScript errors in test files - Fixes @testing-library/react import resolution issues - All JavaScript tests now pass on Node 20/22 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Jest setupFilesAfterEnv path resolution for CI - Use explicit path <rootDir>/node_modules/@testing-library/jest-dom - Resolves module resolution issues when Jest runs from workspace directory - Fixes "Module @testing-library/jest-dom was not found" error in CI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update Gemfile.lock and package.json for path corrections * Update script/convert for workspace structure - Update Jest command modification to target workspace package.json - Add workspace package peerDependencies React version updates - Add clarifying comment about dev dependencies location - Ensures convert script works correctly with Phase 3 workspace structure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove setupFilesAfterEnv from Jest configuration and clean up convert script by removing outdated React version updates for workspace packages. This streamlines the configuration and ensures compatibility with the latest React version. * Update CircleCI configuration to enhance caching strategy for node_modules directories. Added additional checksum for yarn.lock to restore cached directories, improving build performance and reliability. * Update package.json to simplify link-source script by removing redundant path navigation. This change streamlines the build process for the dummy application. * Update link-source script in package.json to target the correct directory for improved build process in the dummy application. * Update build output path to workspace package directory - Changed TypeScript outDir from node_package/lib to packages/react-on-rails/lib - Simplified workspace package build script (no more copying from old location) - Updated package-scripts.yml prepack checks to use new build path - Removed old node_package/lib reference from Knip configuration - Build output now goes directly to the publishable workspace package 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Complete workspace migration: move tests, scripts, and babel config **File Moves:** - Move node_package/tests/* -> packages/react-on-rails/tests/ - Move node_package/scripts/* -> packages/react-on-rails/scripts/ - Move node_package/babel.config.js -> packages/react-on-rails/babel.config.cjs - Remove empty node_package/ directory **Path Updates:** - Updated all test import paths from ../../packages/react-on-rails/src -> ../src - Updated jest.setup.js mock paths to use relative imports - Updated Jest config setupFiles and moduleNameMapper paths - Updated Knip babel config and ignore file paths - Updated root package.json release script paths - Updated script/convert for new workspace structure **Configuration Fixes:** - Renamed babel.config.js to babel.config.cjs for ES module compatibility - Added React and TypeScript presets to babel config - Fixed workspace package test command to run from root **Result:** - Workspace package is now fully self-contained with src/, tests/, scripts/, lib/ - All tests pass when run from root: yarn test - Git history preserved for all moved files - Build output goes to packages/react-on-rails/lib/ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Refactor package.json scripts to utilize workspaces for improved command execution - Updated scripts in both root and react-on-rails package.json to use `yarn workspaces run` for consistency and better management. - Adjusted test, clean, start, prepack, prepare, prepublishOnly, build, build-watch, check, type-check, and release scripts accordingly. This change enhances the build process and ensures all commands are executed within the context of the workspace. * Enhance package.json scripts for improved workspace management - Added new scripts for `yalc:publish`, `yalc`, and `publish` in the root package.json to streamline publishing processes. - Updated the react-on-rails package.json to utilize `yalc` commands and removed redundant `start` script for clarity. These changes improve the overall command execution and maintain consistency across the workspace. * Rename package to react-on-rails-workspace and streamline scripts in package.json - Updated the package name from `react-on-rails` to `react-on-rails-workspace` for clarity. - Adjusted script entries to maintain consistency, including reordering and removing redundant entries. These changes enhance the organization and clarity of the package configuration. * Update CircleCI configuration to streamline caching for node_modules directories * Update Knip configuration and package.json scripts for improved path consistency - Adjusted Knip configuration to point to the correct test and script directories within the packages/react-on-rails structure. - Updated package.json scripts to use relative paths for release commands, ensuring consistency across the workspace. These changes enhance the organization and clarity of the project structure. * Revert unnecessary file extension changes - Revert babel.config.cjs back to babel.config.js (CommonJS works fine in workspace) - Remove unnecessary React/TypeScript presets from babel config - Update knip.ts to reference correct babel config path - Keep jest.config.mjs (ES module extension is actually required) Testing confirmed: - babel.config.js works with CommonJS syntax in workspace package - React/TypeScript presets were unnecessary (ts-jest handles JSX/TSX) - All tests pass with simplified configuration - jest.config.js extension causes "Cannot use import statement" error 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add global Jest configuration and refactor Knip settings - Introduced a new global Jest configuration file (jest.config.base.js) for consistent testing settings across the monorepo. - Removed the outdated jest.config.mjs file to streamline configuration management. - Updated Knip configuration in knip.ts to enhance workspace management, including clearer entry and ignore patterns for the root and package-specific settings. - Adjusted package.json scripts in the react-on-rails package to simplify test execution. These changes improve the organization and maintainability of the testing setup and workspace structure. * Update ESLint configuration to reflect new package structure - Modified ESLint ignore patterns to accommodate the new directory structure, changing references from 'node_package' to 'packages/*'. - Updated file patterns for linting and testing to ensure consistency across all packages. These changes enhance the ESLint setup, aligning it with the recent restructuring of the project. * Update configuration files to reflect package structure changes - Removed references to 'node_package' in .gitignore, .prettierignore, and tsconfig.json to align with the new directory structure. - Updated Jest configuration comments for clarity. These changes enhance consistency across the project and ensure proper file management in the updated workspace. * Update MONOREPO_MERGER_PLAN.md to reflect co-located test structure - Update target architecture to show tests within package directories - Modify Phase 3-5 tasks to reflect new test organization approach - Simplify license compliance framework for co-located tests - Update documentation examples to clarify test/spec inclusion 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Update documentation and references to reflect new package structure - Updated paths in CHANGELOG.md, CLAUDE.md, CODING_AGENTS.md, CONTRIBUTING.md, LICENSE.md, and various documentation files to replace 'node_package' with 'packages/react-on-rails'. - Adjusted links and comments in the codebase to align with the new directory structure. - Enhanced clarity and consistency across documentation regarding the project's organization. These changes ensure that all references are accurate and up-to-date with the recent restructuring of the project. * Update test command in convert script for improved execution - Modified the test command in the convert script to simplify the execution process by removing unnecessary path references. - Ensured compatibility with the new test structure by updating the command to reflect the current organization. These changes enhance the clarity and efficiency of the testing setup in the project. * Update Knip configuration and package.json scripts for improved execution - Added 'nps' to the ignoreBinaries in Knip configuration to prevent unnecessary warnings. - Updated the start script in package.json to use 'nps' for better script management. These changes enhance the efficiency and clarity of the project's script execution. * Update test command in package.json for improved execution - Modified the test command in package.json to specify the 'tests' directory, enhancing clarity and ensuring compatibility with the current test structure. This change improves the testing setup by clearly defining the test location. * Update DIRECTORY_LICENSING.md to reflect new directory structure - Changed references from 'packages/react-on-rails/src/' to 'node_package/src/' for clarity and consistency with the updated project organization. - Updated the exception note to accurately describe the licensing of the Pro implementation code. These changes ensure that the licensing documentation is aligned with the recent restructuring of the project. * Update DIRECTORY_LICENSING.md to reflect new directory structure and test organization - Revised directory structure descriptions to include specifications for Ruby and NPM packages, as well as integration tests. - Clarified the organization of Pro implementation code and its associated tests. These updates ensure that the licensing documentation accurately represents the current project structure and testing framework. * Update CONTRIBUTING.md to correct link formatting - Revised the link to `clientStartup.ts` for clarity and accuracy in the testing example. - Adjusted the link for `serverRenderReactComponent.ts` to ensure proper navigation. These updates enhance the documentation by providing clearer references for contributors. * Update MONOREPO_MERGER_PLAN.md to specify new build output locations for Pro packages - Added a note indicating that Pro packages will now output to `packages/react-on-rails-pro/lib/` and `packages/react-on-rails-pro-node-renderer/lib/`. - This update clarifies the expected output structure following the initial merge, ensuring proper organization and compliance with licensing requirements. * Update MONOREPO_MERGER_PLAN.md and MONOREPO_MERGER_PLAN_REF.md to reflect completion of Phase 3 - Marked Phase 3 as complete in the merger plan reference document. - Updated task list in the main merger plan to indicate completion of all tasks related to the preparation of the core package for the workspace structure. These changes ensure that the merger plan accurately reflects the current status of the project and the progress made in restructuring. * Update MONOREPO_MERGER_PLAN.md and MONOREPO_MERGER_PLAN_REF.md to reflect changes in merger phases and package structure - Updated the implementation plan to outline an 8-phase process for merging the `react_on_rails` and `react_on_rails_pro` repositories. - Adjusted estimated durations and success criteria for various phases to align with the new structure. - Clarified tasks related to the separation of Pro packages and ensured proper licensing compliance. These updates provide a clearer roadmap for the merger process and ensure that all documentation reflects the current project status. --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 04f3d35 commit e4a9a64

File tree

100 files changed

+377
-258
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+377
-258
lines changed

.github/workflows/lint-js-and-ruby.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
yarn install --no-progress --no-emoji --frozen-lockfile
4646
sudo yarn global add yalc
4747
- name: yalc publish for react-on-rails
48-
run: yalc publish
48+
run: cd packages/react-on-rails && yalc publish
4949
- name: yalc add react-on-rails
5050
run: cd spec/dummy && yalc add react-on-rails
5151
- name: Install Node modules with Yarn for dummy app
@@ -81,12 +81,12 @@ jobs:
8181
- name: Type-check TypeScript
8282
run: yarn run type-check
8383
- name: Pack for attw and publint
84-
run: yarn pack -f react-on-rails.tgz
84+
run: cd packages/react-on-rails && yarn pack -f react-on-rails.tgz
8585
- name: Lint package types
8686
# our package is ESM-only
87-
run: yarn run attw react-on-rails.tgz --profile esm-only
87+
run: yarn run attw packages/react-on-rails/react-on-rails.tgz --profile esm-only
8888
- name: Lint package publishing
89-
run: yarn run publint --strict react-on-rails.tgz
89+
run: yarn run publint --strict packages/react-on-rails/react-on-rails.tgz
9090
# We only download and run Actionlint if there is any difference in GitHub Action workflows
9191
# https://github.com/rhysd/actionlint/blob/main/docs/usage.md#on-github-actions
9292
- name: Check GitHub Action changes

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
yarn install --no-progress --no-emoji ${{ matrix.dependency-level == 'latest' && '--frozen-lockfile' || '' }}
6262
sudo yarn global add yalc
6363
- name: yalc publish for react-on-rails
64-
run: yalc publish
64+
run: cd packages/react-on-rails && yalc publish
6565
- name: yalc add react-on-rails
6666
run: cd spec/dummy && yalc add react-on-rails
6767
- name: Install Node modules with Yarn for dummy app
@@ -159,7 +159,7 @@ jobs:
159159
yarn install --no-progress --no-emoji ${{ matrix.dependency-level == 'latest' && '--frozen-lockfile' || '' }}
160160
sudo yarn global add yalc
161161
- name: yalc publish for react-on-rails
162-
run: yalc publish
162+
run: cd packages/react-on-rails && yalc publish
163163
- name: yalc add react-on-rails
164164
run: cd spec/dummy && yalc add react-on-rails
165165
- name: Install Node modules with Yarn for dummy app

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ tmp/
2020

2121
node_modules
2222

23-
/node_package/lib
23+
/packages/*/lib
2424

2525
yarn-debug.*
2626
yarn-error.*

.prettierignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ tmp/
66
coverage/
77
**/app/assets/webpack/
88
gen-examples/examples/*
9-
node_package/lib/*
9+
packages/*/lib/*
1010
spec/react_on_rails/dummy-for-generators/app/javascript/bundles/HelloWorld/*
1111
bundle/
1212
spec/dummy/lib/bs/**

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Changes since the last non-beta release.
7171

7272
#### Pro License Features
7373

74-
- **Core/Pro separation**: Moved Pro features into dedicated `lib/react_on_rails/pro/` and `node_package/src/pro/` directories with clear licensing boundaries [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
74+
- **Core/Pro separation**: Moved Pro features into dedicated `lib/react_on_rails/pro/` and `node_package/src/pro/` directories with clear licensing boundaries (now located at `packages/react-on-rails/src/pro/`) [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
7575
- **Runtime license validation**: Implemented Pro license gating with graceful fallback to core functionality when Pro license unavailable [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
7676
- **Enhanced immediate hydration**: Improved immediate hydration functionality with Pro license validation and warning badges [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
7777
- **License documentation**: Added NOTICE files in Pro directories referencing canonical `REACT-ON-RAILS-PRO-LICENSE.md` [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
@@ -400,6 +400,8 @@ _Major bump because dropping support for Ruby 2.7 and deprecated `webpackConfigL
400400
@ ./client/app/packs/client-bundle.js 5:0-42 32:0-23 35:0-21 59:0-26
401401
```
402402

403+
_Note: The `node_package/lib/` path in these error examples is now `packages/react-on-rails/lib/` in the current structure._
404+
403405
It can be safely [suppressed](https://webpack.js.org/configuration/other-options/#ignorewarnings) in your Webpack configuration.
404406

405407
### [13.0.2] - 2022-03-09

CLAUDE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Git hooks will automatically run linting on **all changed files (staged + unstag
3636
- **Code Formatting**:
3737
- Format code with Prettier: `rake autofix`
3838
- Check formatting without fixing: `yarn start format.listDifferent`
39-
- **Build**: `yarn run build` (compiles TypeScript to JavaScript in node_package/lib)
39+
- **Build**: `yarn run build` (compiles TypeScript to JavaScript in packages/react-on-rails/lib)
4040
- **Type checking**: `yarn run type-check`
4141
- **⚠️ MANDATORY BEFORE GIT PUSH**: `bundle exec rubocop` and fix ALL violations + ensure trailing newlines
4242
- Never run `npm` commands, only equivalent Yarn Classic ones
@@ -86,7 +86,7 @@ Git hooks will automatically run linting on **all changed files (staged + unstag
8686
This project maintains both a Ruby gem and an NPM package:
8787

8888
- **Ruby gem**: Located in `lib/`, provides Rails integration and server-side rendering
89-
- **NPM package**: Located in `node_package/src/`, provides client-side React integration
89+
- **NPM package**: Located in `packages/react-on-rails/src/`, provides client-side React integration
9090

9191
### Core Components
9292

@@ -98,7 +98,7 @@ This project maintains both a Ruby gem and an NPM package:
9898
- **`engine.rb`**: Rails engine integration
9999
- **Generators**: Located in `lib/generators/react_on_rails/`
100100

101-
#### JavaScript/TypeScript Side (`node_package/src/`)
101+
#### JavaScript/TypeScript Side (`packages/react-on-rails/src/`)
102102

103103
- **`ReactOnRails.ts`**: Main entry point for client-side functionality
104104
- **`serverRenderReactComponent.ts`**: Server-side rendering logic
@@ -108,7 +108,7 @@ This project maintains both a Ruby gem and an NPM package:
108108
### Build System
109109

110110
- **Ruby**: Standard gemspec-based build
111-
- **JavaScript**: TypeScript compilation to `node_package/lib/`
111+
- **JavaScript**: TypeScript compilation to `packages/react-on-rails/lib/`
112112
- **Testing**: Jest for JS, RSpec for Ruby
113113
- **Linting**: ESLint for JS/TS, RuboCop for Ruby
114114

@@ -130,6 +130,6 @@ This project maintains both a Ruby gem and an NPM package:
130130

131131
Exclude these directories to prevent IDE slowdowns:
132132

133-
- `/coverage`, `/tmp`, `/gen-examples`, `/node_package/lib`
133+
- `/coverage`, `/tmp`, `/gen-examples`, `/packages/react-on-rails/lib`
134134
- `/node_modules`, `/spec/dummy/node_modules`, `/spec/dummy/tmp`
135135
- `/spec/dummy/app/assets/webpack`, `/spec/dummy/log`

CODING_AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ Use `gh pr create` with:
287287
When analyzing codebases, ignore these directories to avoid confusion:
288288

289289
- `/coverage`, `/tmp`, `/gen-examples`
290-
- `/node_package/lib`, `/node_modules`
290+
- `/packages/react-on-rails/lib`, `/node_modules`
291291
- `/spec/dummy/app/assets/webpack`
292292
- `/spec/dummy/log`, `/spec/dummy/node_modules`, `/spec/dummy/tmp`
293293
- `/spec/react_on_rails/dummy-for-generators`

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ It's critical to configure your IDE/editor to ignore certain directories. Otherw
4040
- /coverage
4141
- /tmp
4242
- /gen-examples
43-
- /node_package/lib
43+
- /packages/react-on-rails/lib
4444
- /node_modules
4545
- /spec/dummy/app/assets/webpack
4646
- /spec/dummy/log
@@ -121,7 +121,7 @@ Don't forget you may need to run yarn after adding packages with yalc to install
121121

122122
#### Example: Testing NPM changes with the dummy app
123123

124-
1. Add `console.log('Hello!')` to [clientStartup.ts, function render](https://github.com/shakacode/react_on_rails/blob/master/node_package/src/clientStartup.ts in `/node_package/src/clientStartup.js` to confirm we're getting an update to the node package client side. Do the same for function `serverRenderReactComponent` in `/node_package/src/serverRenderReactComponent.ts`.
124+
1. Add `console.log('Hello!')` to [clientStartup.ts, function render](https://github.com/shakacode/react_on_rails/blob/master/packages/react-on-rails/src/clientStartup.ts) in `/packages/react-on-rails/src/clientStartup.ts` to confirm we're getting an update to the node package client side. Do the same for function `serverRenderReactComponent` in [/packages/react-on-rails/src/serverRenderReactComponent.ts](https://github.com/shakacode/react_on_rails/blob/master/packages/react-on-rails/src/serverRenderReactComponent.ts).
125125
2. Refresh the browser if the server is already running or start the server using `foreman start` from `react_on_rails/spec/dummy` and navigate to `http://localhost:5000/`. You will now see the `Hello!` message printed in the browser's console. If you did not see that message, then review the steps above for the workflow of making changes and pushing them via yalc.
126126

127127
# Development Setup for Gem and Node Package Contributors
@@ -134,7 +134,7 @@ After checking out the repo, making sure you have Ruby and Node version managers
134134

135135
### Local Node Package
136136

137-
Note, the example and dummy apps will use your local `node_packages` folder as the `react-on-rails` node package. This will also be done automatically for you via the `rake examples:gen_all` rake task.
137+
Note, the example and dummy apps will use your local `packages/react-on-rails` folder as the `react-on-rails` node package. This will also be done automatically for you via the `rake examples:gen_all` rake task.
138138

139139
_Side note: It's critical to use the alias section of the Webpack config to avoid a double inclusion error. This has already been done for you in the example and dummy apps, but for reference:_
140140

LICENSE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ This repository contains code under two different licenses:
1212
The following directories and all their contents are licensed under the **MIT License** (see full text below):
1313

1414
- `lib/react_on_rails/` (excluding `lib/react_on_rails/pro/`)
15-
- `node_package/src/` (excluding `node_package/src/pro/`)
16-
- `node_package/lib/` (excluding `node_package/lib/pro/`)
15+
- `packages/react-on-rails/` (excluding `packages/react-on-rails/src/pro/`)
16+
- `packages/react-on-rails/lib/` (excluding `packages/react-on-rails/lib/pro/`)
1717
- All other directories in this repository not explicitly listed as Pro-licensed
1818

1919
### Pro Licensed Code
2020

2121
The following directories and all their contents are licensed under the **React on Rails Pro License**:
2222

2323
- `lib/react_on_rails/pro/`
24-
- `node_package/src/pro/`
25-
- `node_package/lib/pro/`
24+
- `packages/react-on-rails/src/pro/`
25+
- `packages/react-on-rails/lib/pro/`
2626
- `react_on_rails_pro/` (entire directory)
2727

2828
See [REACT-ON-RAILS-PRO-LICENSE.md](./REACT-ON-RAILS-PRO-LICENSE.md) for complete Pro license terms.

docs/DIRECTORY_LICENSING.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ After the monorepo merger, the unified repository will have clear directory-base
4848

4949
```
5050
react_on_rails/ (monorepo root)
51-
├── lib/react_on_rails/ # Core Ruby code
52-
├── packages/react-on-rails/ # Core NPM package
53-
├── spec/ruby/react_on_rails/ # Core Ruby tests
54-
── spec/packages/react-on-rails/ # Core JS tests
51+
├── lib/react_on_rails/ # Core Ruby code (including specs)
52+
├── packages/react-on-rails/ # Core NPM package (including tests)
53+
├── spec/ # Monorepo-level integration tests
54+
│ └── dummy/ # Rails dummy app for testing
5555
├── docs/ # Shared documentation
5656
├── tools/ # Shared development tools
5757
├── .github/ # Unified GitHub workflows
@@ -62,12 +62,9 @@ react_on_rails/ (monorepo root)
6262

6363
```
6464
react_on_rails/ (monorepo root)
65-
├── lib/react_on_rails_pro/ # Pro Ruby code
66-
├── packages/react-on-rails-pro/ # Pro NPM package
67-
├── packages/react-on-rails-pro-node-renderer/ # Pro Node renderer
68-
├── spec/ruby/react_on_rails_pro/ # Pro Ruby tests
69-
├── spec/packages/react-on-rails-pro/ # Pro JS tests
70-
└── spec/packages/react-on-rails-pro-node-renderer/ # Pro Node renderer tests
65+
├── lib/react_on_rails_pro/ # Pro Ruby code (including specs)
66+
├── packages/react-on-rails-pro/ # Pro NPM package (including tests)
67+
└── packages/react-on-rails-pro-node-renderer/ # Pro Node renderer (including tests)
7168
```
7269

7370
## License Compliance Rules

0 commit comments

Comments
 (0)