Skip to content

Commit caf8d34

Browse files
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 <[email protected]>
1 parent dfc1275 commit caf8d34

File tree

1 file changed

+26
-39
lines changed

1 file changed

+26
-39
lines changed

docs/MONOREPO_MERGER_PLAN.md

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,18 @@ react_on_rails_pro/
7070
react_on_rails/ (monorepo root)
7171
├── lib/
7272
│ ├── react_on_rails/ # Core Ruby (MIT)
73+
│ │ └── spec/ # Core Ruby specs
7374
│ └── react_on_rails_pro/ # Pro Ruby (Pro license)
75+
│ └── spec/ # Pro Ruby specs
7476
├── packages/ # NPM packages (yarn workspace)
7577
│ ├── react-on-rails/ # Core JS/TS (MIT)
78+
│ │ └── tests/ # Core JS/TS tests
7679
│ ├── react-on-rails-pro/ # Pro JS/TS (Pro license)
80+
│ │ └── tests/ # Pro JS/TS tests
7781
│ └── react-on-rails-pro-node-renderer/ # Pro node renderer
78-
├── spec/
79-
│ ├── ruby/ # Ruby specs organized by package
80-
│ │ ├── react_on_rails/
81-
│ │ └── react_on_rails_pro/
82-
│ └── packages/ # JS specs organized by package
83-
│ ├── react-on-rails/
84-
│ ├── react-on-rails-pro/
85-
│ └── react-on-rails-pro-node-renderer/
82+
│ └── tests/ # Pro node renderer tests
83+
├── spec/ # Monorepo-level integration tests
84+
│ └── dummy/ # Rails dummy app for testing
8685
├── tools/ # Shared development tools
8786
├── docs/ # Unified documentation
8887
├── react_on_rails.gemspec # Core gem
@@ -306,6 +305,7 @@ After the initial merge, the following CI adjustments may be needed:
306305
- [ ] Update root `package.json` to workspace manager (packages/react-on-rails only)
307306
- [ ] Update build scripts and import paths
308307
- [ ] Update TypeScript configurations
308+
- [ ] Move core JS tests to `packages/react-on-rails/tests/`
309309
- [ ] Keep `react_on_rails_pro/` directory unchanged
310310
- [ ] Update CI to build via workspace
311311
- [ ] Update LICENSE.md to include new package path
@@ -359,7 +359,7 @@ After the initial merge, the following CI adjustments may be needed:
359359
- [ ] Update root workspace to include all 3 NPM packages
360360
- [ ] Update CI to test all packages
361361
- [ ] Setup proper dependencies between packages
362-
- [ ] Move JS specs to organized structure
362+
- [ ] Move pro JS tests to package directories (`packages/react-on-rails-pro/tests/`, `packages/react-on-rails-pro-node-renderer/tests/`)
363363

364364
**License Compliance:**
365365

@@ -368,14 +368,14 @@ After the initial merge, the following CI adjustments may be needed:
368368
```md
369369
## MIT License applies to:
370370

371-
- `lib/react_on_rails/`
372-
- `packages/react-on-rails/`
371+
- `lib/react_on_rails/` (including specs)
372+
- `packages/react-on-rails/` (including tests)
373373

374374
## React on Rails Pro License applies to:
375375

376-
- `lib/react_on_rails_pro/`
377-
- `packages/react-on-rails-pro/` (NEW)
378-
- `packages/react-on-rails-pro-node-renderer/` (NEW)
376+
- `lib/react_on_rails_pro/` (including specs)
377+
- `packages/react-on-rails-pro/` (including tests) (NEW)
378+
- `packages/react-on-rails-pro-node-renderer/` (including tests) (NEW)
379379
- `react_on_rails_pro/` (remaining files)
380380
```
381381

@@ -414,13 +414,10 @@ After the initial merge, the following CI adjustments may be needed:
414414

415415
- [ ] Move `react_on_rails_pro/lib/react_on_rails_pro/` to `lib/react_on_rails_pro/`
416416
- [ ] Move `react_on_rails_pro/react_on_rails_pro.gemspec` to root as `react_on_rails_pro.gemspec`
417-
- [ ] Move all Ruby specs to organized structure:
418-
- `spec/ruby/react_on_rails/` (core specs)
419-
- `spec/ruby/react_on_rails_pro/` (pro specs)
420-
- [ ] Move JS specs to organized structure:
421-
- `spec/packages/react-on-rails/`
422-
- `spec/packages/react-on-rails-pro/`
423-
- `spec/packages/react-on-rails-pro-node-renderer/`
417+
- [ ] Move Ruby specs to gem directories:
418+
- Core specs: `lib/react_on_rails/spec/` (or keep existing `spec/` location)
419+
- Pro specs: `lib/react_on_rails_pro/spec/`
420+
- [ ] JS tests remain in package directories (already handled in previous phases)
424421
- [ ] Update root `Gemfile` to include both gemspecs
425422
- [ ] Remove empty `react_on_rails_pro/` directory
426423
- [ ] Update all require paths in Ruby code
@@ -433,19 +430,14 @@ After the initial merge, the following CI adjustments may be needed:
433430
```md
434431
## MIT License applies to:
435432

436-
- `lib/react_on_rails/`
437-
- `packages/react-on-rails/`
438-
- `spec/ruby/react_on_rails/`
439-
- `spec/packages/react-on-rails/`
433+
- `lib/react_on_rails/` (including specs)
434+
- `packages/react-on-rails/` (including tests)
440435

441436
## React on Rails Pro License applies to:
442437

443-
- `lib/react_on_rails_pro/`
444-
- `packages/react-on-rails-pro/`
445-
- `packages/react-on-rails-pro-node-renderer/`
446-
- `spec/ruby/react_on_rails_pro/`
447-
- `spec/packages/react-on-rails-pro/`
448-
- `spec/packages/react-on-rails-pro-node-renderer/`
438+
- `lib/react_on_rails_pro/` (including specs)
439+
- `packages/react-on-rails-pro/` (including tests)
440+
- `packages/react-on-rails-pro-node-renderer/` (including tests)
449441
```
450442

451443
- [ ] Update both gemspec files with correct license:
@@ -579,14 +571,14 @@ After the initial merge, the following CI adjustments may be needed:
579571
580572
- `react_on_rails` Ruby gem
581573
- `react-on-rails` NPM package
582-
- Core functionality in `lib/react_on_rails/` and `packages/react-on-rails/`
574+
- Core functionality in `lib/react_on_rails/` and `packages/react-on-rails/` (including tests/specs)
583575

584576
### Pro Licensed (Subscription Required for Production):
585577

586578
- `react_on_rails_pro` Ruby gem
587579
- `react-on-rails-pro` NPM package
588580
- `react-on-rails-pro-node-renderer` NPM package
589-
- Pro functionality in `lib/react_on_rails_pro/` and `packages/react-on-rails-pro*/`
581+
- Pro functionality in `lib/react_on_rails_pro/` and `packages/react-on-rails-pro*/` (including tests/specs)
590582

591583
See [LICENSE.md](LICENSE.md) and [REACT-ON-RAILS-PRO-LICENSE.md](REACT-ON-RAILS-PRO-LICENSE.md)
592584
```
@@ -615,7 +607,7 @@ After the initial merge, the following CI adjustments may be needed:
615607

616608
1. **Directory Classification:**
617609

618-
- **MIT Licensed:** `lib/react_on_rails/`, `packages/react-on-rails/`, core specs
610+
- **MIT Licensed:** `lib/react_on_rails/` (including specs), `packages/react-on-rails/` (including tests)
619611
- **Pro Licensed:** All directories explicitly listed in LICENSE.md under "React on Rails Pro License"
620612

621613
2. **LICENSE.md Updates:**
@@ -643,16 +635,11 @@ PRO_DIRECTORIES = %w[
643635
lib/react_on_rails_pro
644636
packages/react-on-rails-pro
645637
packages/react-on-rails-pro-node-renderer
646-
spec/ruby/react_on_rails_pro
647-
spec/packages/react-on-rails-pro
648-
spec/packages/react-on-rails-pro-node-renderer
649638
].freeze
650639

651640
MIT_DIRECTORIES = %w[
652641
lib/react_on_rails
653642
packages/react-on-rails
654-
spec/ruby/react_on_rails
655-
spec/packages/react-on-rails
656643
].freeze
657644

658645
def check_pro_license_headers

0 commit comments

Comments
 (0)