-
-
Notifications
You must be signed in to change notification settings - Fork 638
Open
Labels
Description
Summary
Complete the final phases (7-8) of the monorepo migration with CI/CD polish and comprehensive documentation updates.
Status: Most CI work done, documentation updates needed
Background
- Phase 5 ✅ Complete (PR Phase 5: Add Pro Node Renderer Package to workspace #2069 - Node renderer package extraction)
- Phase 6 🚧 Next (Issue Phase 6: Restructure Ruby Gems to Final Monorepo Layout #2103 - Ruby gem restructuring)
- Phase 7-8 📋 Final polish (this issue)
Phase 7: CI/CD Polish
✅ Already Completed
- CircleCI to GitHub Actions migration
- Unified workflows for both packages
- Matrix builds for Ruby/Node versions
Remaining Tasks
7.1: Add Automated License Compliance Check
- Create
.github/workflows/license-check.yml - Verify Pro files have license headers (Ruby + JS/TS)
- Verify no Pro code in MIT directories
- Verify LICENSE.md lists all Pro directories
- Run on every PR
Example workflow:
name: License Compliance
on: [push, pull_request]
jobs:
license-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Pro license headers
run: |
# Check Ruby files
find lib/react_on_rails_pro packages/react-on-rails-pro* -name "*.rb" | \
while read file; do
if ! head -20 "$file" | grep -q "Pro License\|UNLICENSED"; then
echo "❌ Missing license header: $file"
exit 1
fi
done
- name: Verify no Pro code in MIT dirs
run: |
if find lib/react_on_rails packages/react-on-rails -type f \
-exec grep -l "ReactOnRailsPro" {} \; | grep .; then
exit 1
fi7.2: License Verification Scripts
- Create
bin/verify-licensesscript - Add to pre-commit hook
- Add to release checklist
7.3: CI Status Badges
- Update README.md status badges if needed
- Ensure badges reflect new workflow names
Phase 8: Documentation & Polish
8.1: Update Main README.md
- Add clear licensing section showing package breakdown
- Update installation instructions for monorepo structure
- Add section on monorepo development workflow
- Update architecture diagram (if exists)
- Clarify which packages are MIT vs Pro
Example:
## Packages
This monorepo contains:
### MIT Licensed
- `react-on-rails` (Ruby gem) - Rails integration
- `react-on-rails` (NPM package) - Client-side React integration
### Pro Licensed
- `react-on-rails-pro` (Ruby gem) - Pro Rails features
- `react-on-rails-pro` (NPM package) - Pro client features
- `react-on-rails-pro-node-renderer` (NPM package) - Node.js server rendering8.2: Create Package READMEs
-
packages/react-on-rails/README.md(MIT package)- What it does
- How to install
- License: MIT
- Link to main docs
-
packages/react-on-rails-pro/README.md(Pro package)- What it does
- How to get Pro license
- License: UNLICENSED
- Link to Pro docs
-
packages/react-on-rails-pro-node-renderer/README.md- What it does
- Dependencies
- License: UNLICENSED
8.3: Create Migration Guide
- Create
docs/monorepo-migration-guide.mdfor existing contributors - Document what changed and what didn't
- Provide step-by-step local setup instructions
- Add troubleshooting section
- Common migration issues and solutions
Topics to cover:
- Directory structure changes
- How to update local clones
- New build commands
- Workspace commands
- YALC publishing workflow
8.4: Update Examples
- Verify all example apps work with new structure
- Update example app documentation
- Ensure examples respect license boundaries
- Update generator templates if needed
8.5: Update CHANGELOG
- Create comprehensive changelog entry for monorepo migration
- Document structural changes (not breaking changes for users)
- List new package structure
- Add migration guide link
- Note for contributors about path changes
Example:
## [Unreleased]
### Changed (Internal - Contributors Only)
- Restructured repository to monorepo layout
- Ruby gems now at `lib/react_on_rails/` and `lib/react_on_rails_pro/`
- NPM packages now in `packages/` workspace
- See docs/monorepo-migration-guide.md for contributor migration guide
**Note:** This is an internal restructuring. No API changes for users.8.6: Update Contributing Guide
- Update
CONTRIBUTING.mdfor monorepo workflow - Document workspace commands
- Update local development setup
- Document YALC workflow
- Add monorepo-specific troubleshooting
8.7: Update CLAUDE.md
- Update file paths in examples
- Add monorepo-specific development notes
- Update test commands for workspace
- Add workspace management guidance
Testing Checklist
Before marking complete:
- All CI workflows pass
- License compliance check works
- Both gems build from root
- All 3 NPM packages build
- YALC publish works (after Fix TypeScript Build Errors in Node-Renderer Package #2104 fixed)
- Example apps work
- Documentation is accurate and complete
- No broken links in docs
Success Criteria
Phase 7 (CI/CD)
- Automated license compliance check in CI
- License verification script available
- No manual license checking needed
Phase 8 (Documentation)
- Main README reflects monorepo structure
- All packages have READMEs
- Migration guide exists and is comprehensive
- CHANGELOG documents the migration
- All example apps documented and working
- Contributing guide updated
Related Issues
- Phase 6: Restructure Ruby Gems to Final Monorepo Layout #2103 - Phase 6: Restructure Ruby Gems (prerequisite)
- Fix TypeScript Build Errors in Node-Renderer Package #2104 - Fix TypeScript build errors (enables full YALC workflow)
- Consolidate and Reorganize Monorepo Documentation #2105 - Consolidate documentation (cleanup task)
Estimated Effort
Phase 7: 4-6 hours (CI workflows and scripts)
Phase 8: 8-12 hours (comprehensive documentation)
Total: 2-3 days
Priority
Medium - Important for long-term maintainability, but not blocking current work
Can be done in parallel with or after Phase 6 (#2103)