Skip to content

Commit 804a88d

Browse files
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.
1 parent c9c406f commit 804a88d

File tree

2 files changed

+81
-33
lines changed

2 files changed

+81
-33
lines changed

docs/MONOREPO_MERGER_PLAN.md

Lines changed: 80 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This document provides the complete implementation plan for merging the `react_o
2828

2929
### Timeline
3030

31-
**Estimated Duration:** 4-5 weeks across 7 phases
31+
**Estimated Duration:** 5-6 weeks across 8 phases
3232

3333
## Current State Analysis
3434

@@ -340,70 +340,118 @@ After the initial merge, the following CI adjustments may be needed:
340340

341341
---
342342

343-
#### PR #4: Prepare Pro Package for Workspace Structure
343+
#### PR #4: Split JS Pro Code to Separate Package
344344

345-
**Branch:** `prepare-pro-workspace`
345+
**Branch:** `split-js-pro-package`
346346

347347
**Objectives:**
348348

349-
- Extract pro NPM packages to workspace structure
350-
- Create separate pro packages
351-
- Establish full workspace configuration
349+
- Extract pro JS features from react-on-rails package to separate react-on-rails-pro package
350+
- Establish proper licensing boundaries for JS packages
351+
- Maintain functionality while separating concerns
352352

353353
**Tasks:**
354354

355-
- [ ] Move `react_on_rails_pro/packages/node-renderer/` to `packages/react-on-rails-pro-node-renderer/`
356-
- [ ] Extract pro JS features from `node_package/src/pro/` to `packages/react-on-rails-pro/src/`
357-
- [ ] Create individual `package.json` files for both pro packages:
358-
- `packages/react-on-rails-pro/package.json` with `"license": "UNLICENSED"`
359-
- `packages/react-on-rails-pro-node-renderer/package.json` with `"license": "UNLICENSED"`
360-
- [ ] Update root workspace to include all 3 NPM packages
361-
- [ ] Update CI to test all packages
362-
- [ ] Setup proper dependencies between packages
363-
- [ ] Update build configurations (pro package outputs will be at `packages/react-on-rails-pro/lib/` and `packages/react-on-rails-pro-node-renderer/lib/`)
364-
- [ ] Move pro JS tests to package directories (`packages/react-on-rails-pro/tests/`, `packages/react-on-rails-pro-node-renderer/tests/`)
355+
- [ ] Extract pro JS features from `packages/react-on-rails/src/pro/` to `packages/react-on-rails-pro/src/`
356+
- [ ] Create `packages/react-on-rails-pro/package.json` with `"license": "UNLICENSED"`
357+
- [ ] Move pro JS tests from `packages/react-on-rails/tests/` to `packages/react-on-rails-pro/tests/`
358+
- [ ] Update root workspace to include `packages/react-on-rails-pro`
359+
- [ ] Setup proper dependencies between core and pro packages
360+
- [ ] Update build configurations (pro package output will be at `packages/react-on-rails-pro/lib/`)
361+
- [ ] Update TypeScript configurations for both packages
362+
- [ ] Remove pro/ directory from `packages/react-on-rails/src/`
365363

366364
**License Compliance:**
367365

368-
- [ ] **CRITICAL: Update LICENSE.md for new pro directory paths:**
366+
- [ ] **CRITICAL: Update LICENSE.md to remove pro code from MIT package:**
369367

370368
```md
371369
## MIT License applies to:
372370

373371
- `lib/react_on_rails/` (including specs)
374-
- `packages/react-on-rails/` (including tests)
372+
- `packages/react-on-rails/` (including tests) - NOW EXCLUDES pro/ subdirectory
375373

376374
## React on Rails Pro License applies to:
377375

378376
- `lib/react_on_rails_pro/` (including specs)
379377
- `packages/react-on-rails-pro/` (including tests) (NEW)
380-
- `packages/react-on-rails-pro-node-renderer/` (including tests) (NEW)
381378
- `react_on_rails_pro/` (remaining files)
382379
```
383380

384381
- [ ] Add Pro license headers to moved files
385-
- [ ] Verify all pro packages have `"license": "UNLICENSED"` in package.json
382+
- [ ] Verify react-on-rails-pro package has `"license": "UNLICENSED"` in package.json
383+
- [ ] Verify react-on-rails package no longer contains pro code
386384

387-
**Success Criteria:** ✅ All CI checks pass + All pro files properly licensed + License paths updated + All 3 NPM packages build
385+
**Success Criteria:** ✅ All CI checks pass + Pro JS code cleanly separated + License boundaries established + Both NPM packages build independently
388386

389387
**Estimated Duration:** 3-4 days
390388

391389
**Risk Level:** Medium-High (complex file movements)
392390

393391
**Developer Notes:**
394392

395-
- This is a critical step for license compliance!
396-
- When creating new pro directories (`packages/react-on-rails-pro/` and `packages/react-on-rails-pro-node-renderer/`), immediately update LICENSE.md to include these new paths
393+
- This is a critical step for license compliance and package separation!
394+
- When creating `packages/react-on-rails-pro/` directory, immediately update LICENSE.md to include this new path
397395
- Ensure all moved pro files retain their Pro license headers
398-
- Verify new package.json files have `"license": "UNLICENSED"`
399-
- **Build Output Locations**: Pro packages will now output to `packages/react-on-rails-pro/lib/` and `packages/react-on-rails-pro-node-renderer/lib/`
400-
- Test all workspace commands thoroughly
396+
- Verify new package.json has `"license": "UNLICENSED"`
397+
- **Build Output Location**: Pro package will now output to `packages/react-on-rails-pro/lib/`
398+
- After moving pro code, verify react-on-rails package is purely MIT-licensed
399+
- Test both packages build independently via workspace commands
400+
401+
---
402+
403+
#### PR #5: Add Pro Node Renderer Package
404+
405+
**Branch:** `add-pro-node-renderer`
406+
407+
**Objectives:**
408+
409+
- Extract pro node-renderer to separate workspace package
410+
- Complete NPM package workspace structure
411+
- Establish all 3 NPM packages
412+
413+
**Tasks:**
414+
415+
- [ ] Move `react_on_rails_pro/packages/node-renderer/` to `packages/react-on-rails-pro-node-renderer/`
416+
- [ ] Create `packages/react-on-rails-pro-node-renderer/package.json` with `"license": "UNLICENSED"`
417+
- [ ] Move node-renderer tests to `packages/react-on-rails-pro-node-renderer/tests/`
418+
- [ ] Update root workspace to include all 3 NPM packages
419+
- [ ] Update CI to test all packages
420+
- [ ] Update build configurations (node-renderer output will be at `packages/react-on-rails-pro-node-renderer/lib/`)
421+
422+
**License Compliance:**
423+
424+
- [ ] **CRITICAL: Update LICENSE.md for node-renderer package:**
425+
426+
```md
427+
## React on Rails Pro License applies to:
428+
429+
- `lib/react_on_rails_pro/` (including specs)
430+
- `packages/react-on-rails-pro/` (including tests)
431+
- `packages/react-on-rails-pro-node-renderer/` (including tests) (NEW)
432+
- `react_on_rails_pro/` (remaining files)
433+
```
434+
435+
- [ ] Verify node-renderer package has `"license": "UNLICENSED"` in package.json
436+
437+
**Success Criteria:** ✅ All CI checks pass + All 3 NPM packages build + Complete workspace structure established
438+
439+
**Estimated Duration:** 2-3 days
440+
441+
**Risk Level:** Medium (straightforward package extraction)
442+
443+
**Developer Notes:**
444+
445+
- This completes the NPM package workspace structure
446+
- **Build Output Location**: Node-renderer package will output to `packages/react-on-rails-pro-node-renderer/lib/`
447+
- Test all three packages build independently via workspace commands
448+
- Verify workspace commands work for all packages
401449

402450
---
403451

404-
### Phase 4: Final Monorepo Restructuring
452+
### Phase 6: Final Monorepo Restructuring
405453

406-
#### PR #5: Restructure Ruby Gems to Final Layout
454+
#### PR #6: Restructure Ruby Gems to Final Layout
407455

408456
**Branch:** `restructure-ruby-gems`
409457

@@ -468,9 +516,9 @@ After the initial merge, the following CI adjustments may be needed:
468516

469517
---
470518

471-
### Phase 5: CI/CD & Tooling Unification
519+
### Phase 7: CI/CD & Tooling Unification
472520

473-
#### PR #6: Unify CI/CD Configuration
521+
#### PR #7: Unify CI/CD Configuration
474522

475523
**Branch:** `unify-cicd`
476524

@@ -534,9 +582,9 @@ After the initial merge, the following CI adjustments may be needed:
534582
535583
---
536584
537-
### Phase 6: Documentation & Polish
585+
### Phase 8: Documentation & Polish
538586
539-
#### PR #7: Update Documentation & Examples
587+
#### PR #8: Update Documentation & Examples
540588
541589
**Branch:** `update-docs-examples`
542590

docs/MONOREPO_MERGER_PLAN_REF.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The complete React on Rails Monorepo Merger Plan is located at:
44

55
**[docs/MONOREPO_MERGER_PLAN.md](./MONOREPO_MERGER_PLAN.md)**
66

7-
This plan outlines the 7-phase implementation for merging the `react_on_rails` and `react_on_rails_pro` repositories into a unified monorepo while maintaining:
7+
This plan outlines the 8-phase implementation for merging the `react_on_rails` and `react_on_rails_pro` repositories into a unified monorepo while maintaining:
88

99
- Separate package identities (2 Ruby gems + 3 NPM packages)
1010
- Proper license compliance (MIT vs Pro)

0 commit comments

Comments
 (0)