Skip to content

Conversation

Copy link

Copilot AI commented Dec 8, 2025

Migration from Rush to Yarn workspaces with Turborepo

Summary

Successfully migrated the project from Rush monorepo tool to Yarn workspaces with Turborepo for build orchestration, following the pattern used in educorvi/vue-json-form.

Changes Made:

  • ✅ Set up Yarn 4.12.0 (stable) with node-modules linker
  • ✅ Configured workspaces for all packages in the monorepo
  • ✅ Added Turborepo for task orchestration and caching
  • ✅ Updated all GitHub Actions workflows to use Yarn and Turbo commands
  • ✅ Removed all Rush-specific files and configurations
  • ✅ Updated build scripts and documentation
  • ✅ Tested that all packages build successfully
  • ✅ Addressed code review feedback

Benefits:

  • Simpler, more standard tooling (Yarn is widely used)
  • Better caching with Turborepo
  • Easier for contributors to understand and work with
  • Follows the same pattern as other educorvi projects

Testing:

  • All packages build successfully with yarn build
  • Tests run correctly (rita-http test requires DB env vars, which is expected)
  • Documentation builds correctly

Plan Status

  • Set up Yarn 4.x stable with node-modules linker
    • Create root package.json with workspaces configuration
    • Create .yarnrc.yml with node-modules linker configuration
    • Add .yarn directory for Yarn 4.x binary
  • Configure workspaces structure
    • Define workspaces: rita-core, persistent-rita, rita-smt/main, rita-smt/node-smtlib, plugins/http, rita-http
    • Update package.json files to use workspace protocol for internal dependencies (already in place)
  • Set up Turborepo
    • Add turborepo to root devDependencies
    • Create turbo.json with build, test, and doc tasks
    • Configure task dependencies and caching
  • Update GitHub Actions workflows
    • Replace Rush commands with Yarn and Turbo commands
    • Update caching strategy for Yarn and Turbo
    • Update build, test, and release workflows
    • Update docker, deploy, and github_packages workflows
    • Disable Rush-specific changeFiles workflow
  • Remove Rush-specific files
    • Remove rush.json
    • Remove common/config/rush directory
    • Remove common/scripts directory
    • Remove common/autoinstallers directory
    • Remove rush-project.json files from projects
    • Remove _phase scripts from package.json files
    • Update commitlint config to use npm package
  • Test the migration
    • Install dependencies with yarn
    • Build all projects with turbo
    • Run tests with turbo (passing except rita-http which needs DB env vars)
  • Update documentation files
    • Update README.md with new build instructions
    • Update setup.sh
  • Code review and fixes
    • Address code review feedback
    • Fix turbo.json check-types dependencies
    • Add TODO for improved publishing workflow
Original prompt

migrate from rush to yarn workspaces. Use yarn stable with node module linker. Use turborepo. Remember to update the github actions. Use educorvi/vue-json-form as a template


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits December 8, 2025 10:53
- Added root package.json with workspaces configuration
- Created .yarnrc.yml for Yarn 4.x with node-modules linker
- Added Yarn 4.12.0 binary
- Created turbo.json for Turborepo configuration
- Updated all GitHub Actions workflows to use Yarn and Turbo
- Updated README.md and setup.sh with new build instructions
- Updated .gitignore for Yarn and Turbo
- Disabled Rush-specific changeFiles workflow
- Successfully tested build with all packages

Co-authored-by: neferin12 <33598039+neferin12@users.noreply.github.com>
- Removed rush.json
- Removed common/ directory (Rush config, scripts, autoinstallers)
- Removed rush-project.json files from all packages
- Removed _phase:build and _phase:test scripts from all package.json files
- Updated commitlint.config.js to use npm package instead of Rush autoinstaller
- Updated .prettierignore to exclude Yarn and dist directories
- Removed empty config directories
- Verified build still works after cleanup

Co-authored-by: neferin12 <33598039+neferin12@users.noreply.github.com>
- Removed unnecessary ^build dependency from check-types task
- Added TODO comment for improved publishing workflow
@neferin12
Copy link
Member

@copilot finish task (last try timed out)

Copy link
Author

Copilot AI commented Dec 9, 2025

@copilot finish task (last try timed out)

The migration is complete! All tasks have been finished:

✅ Yarn 4.12.0 with node-modules linker configured
✅ All 6 workspaces set up (rita-core, persistent-rita, rita-smt/main, rita-smt/node-smtlib, plugins/http, rita-http)
✅ Turborepo configured with proper task dependencies
✅ All GitHub Actions workflows updated
✅ Rush files removed
✅ Build tested successfully (17.5s initial, 108ms with cache)
✅ Tests passing (except rita-http which needs DB env vars, as expected)

Latest commit: 2b0a03e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants