analysis/monorepo/MONOREPO_MIGRATION_STATUS.md
Last Updated: 2025-11-19 Branch: justin808/monorepo-completion
The monorepo migration is ~60% complete. The major JavaScript package separation is done, but critical structural issues remain that need to be addressed before the migration can be considered complete.
packages/react-on-rails/)packages/react-on-rails-pro/)Current State:
yarn yalc:publish only publishes 2 packages via workspace:
packages/react-on-rails/ ✅packages/react-on-rails-pro/ ✅react_on_rails_pro/packages/node-renderer/ ❌Impact: Pro node-renderer package cannot be locally tested with yalc.
Root Cause: Node-renderer is NOT in the workspace (still in react_on_rails_pro/packages/)
Current State:
react_on_rails/ # Root (MIT)
├── packages/
│ ├── react-on-rails/ # ✅ MIT NPM package
│ └── react-on-rails-pro/ # ✅ Pro NPM package
├── lib/
│ └── react_on_rails/ # ✅ MIT Ruby gem code
└── react_on_rails_pro/ # ⚠️ SUBDIRECTORY (confusing!)
├── lib/react_on_rails_pro/ # ❌ Pro Ruby gem (should be at lib/ root)
├── packages/node-renderer/ # ❌ Pro node-renderer NPM (should be in packages/)
├── react_on_rails_pro.gemspec # ❌ Pro gemspec (should be at root)
└── spec/ # ❌ Pro specs (should be with gem code)
Target State (from MONOREPO_MERGER_PLAN.md):
react_on_rails/ # Root
├── packages/
│ ├── react-on-rails/ # MIT NPM
│ ├── react-on-rails-pro/ # Pro NPM
│ └── react-on-rails-pro-node-renderer/ # Pro node-renderer NPM ✨
├── lib/
│ ├── react_on_rails/ # MIT Ruby gem
│ └── react_on_rails_pro/ # Pro Ruby gem ✨
├── react_on_rails.gemspec # MIT gemspec
└── react_on_rails_pro.gemspec # Pro gemspec ✨
Why This Matters:
Current Issues with YALC:
yalc publish after changesBetter Alternatives:
pnpm --filter for selective buildsnpx pnpm import (converts yarn.lock)yarn link instead of yalc for local devnpm install --workspace=<name>Recommendation: Stay with yarn workspaces but use yarn link instead of yalc OR migrate to pnpm for better monorepo support.
Goal: Extract react_on_rails_pro/packages/node-renderer/ to workspace
Tasks:
packages/react-on-rails-pro-node-renderer/ directoryreact_on_rails_pro/packages/node-renderer/src/ → packages/react-on-rails-pro-node-renderer/src/react_on_rails_pro/packages/node-renderer/tests/ → packages/react-on-rails-pro-node-renderer/tests/packages/react-on-rails-pro-node-renderer/package.json:
"name": "react-on-rails-pro-node-renderer""license": "UNLICENSED"packages/react-on-rails-pro-node-renderer/tsconfig.jsonpackage.json workspaces to include new packagereact_on_rails_pro/packages/ directoryAcceptance Criteria:
yarn yalc:publish publishes all 3 NPM packagesGoal: Make react_on_rails_pro a sibling directory structure, not nested
Tasks:
react_on_rails_pro/lib/react_on_rails_pro/ → lib/react_on_rails_pro/react_on_rails_pro/spec/ → lib/react_on_rails_pro/spec/ (or keep at spec/pro/)react_on_rails_pro/react_on_rails_pro.gemspec → react_on_rails_pro.gemspec (root)gem build *.gemspecGemfile to include both gemspecs:
gemspec name: "react_on_rails"
gemspec name: "react_on_rails_pro"
bundle install and verify dependencies resolve Remove react_on_rails_pro/ directory from Pro license section
Add final paths:
## MIT License applies to:
- lib/react_on_rails/ (including specs)
- packages/react-on-rails/ (including tests)
## React on Rails Pro License applies to:
- lib/react_on_rails_pro/ (including specs)
- packages/react-on-rails-pro/ (including tests)
- packages/react-on-rails-pro-node-renderer/ (including tests)
react_on_rails_pro/ directory is emptyreact_on_rails_pro/ directoryAcceptance Criteria:
react_on_rails_pro/ subdirectory existsCompleted:
Remaining:
license-check:
runs-on: ubuntu-latest
steps:
- name: Verify Pro License Headers
run: |
# Check all pro files have proper license headers
find lib/react_on_rails_pro packages/react-on-rails-pro* \
-name "*.rb" -o -name "*.js" -o -name "*.ts" | \
while read file; do
if ! grep -q "Pro License\|UNLICENSED" "$file"; then
echo "❌ Missing license header: $file"
exit 1
fi
done
Completed:
Remaining:
packages/react-on-rails/README.md (MIT package)packages/react-on-rails-pro/README.md (Pro package)packages/react-on-rails-pro-node-renderer/README.md (Pro node-renderer)docs/monorepo-migration-guide.md for existing usersMitigation:
Mitigation:
Mitigation:
spec/pro/ or move to lib/react_on_rails_pro/spec/?Related Documents: