Conversation
WalkthroughReplaced Yarn commands and lockfile references with pnpm (and in many places added npm alternatives) across docs, CI/config, rake tasks, and scripts; removed one optional preinstall orchestration script. No public API or exported declarations changed. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| @@ -1,31 +0,0 @@ | |||
| #!/usr/bin/env node | |||
There was a problem hiding this comment.
It was used as a preinstall script in package.json, but isn't anymore.
| 1. Update ALL path references in configuration files | ||
| 2. Search codebase: `grep -r "old/path"` | ||
| 3. Test scripts: `yarn run prepack`, `yarn run yalc.publish` | ||
| 3. Test scripts: `yarn run prepack`, `yarn run yalc:publish` |
There was a problem hiding this comment.
The other script name doesn't exist.
Code Review: Missed yarn→pnpm replacementsSummaryThis PR completes the migration from Yarn to pnpm (PR #2121) by updating remaining yarn references in scripts and documentation. The changes are consistent, thorough, and improve the completeness of the pnpm migration. ✅ Positive Findings1. Comprehensive Coverage
2. Correct Command Mappings
3. Improved User Documentation
4. Script Consistency
5. Appropriate File Deletion
🔍 Minor Observations1. Lock File Patterns if [ -f pnpm-lock.yaml ]; then
rm pnpm-lock.yaml
fiThis could be simplified to 2. Documentation Completeness
🎯 Code Quality Assessment
✅ Best Practices FollowedAccording to CLAUDE.md requirements:
📋 RecommendationsBefore Merge:
Post-Merge:
🎉 ConclusionLGTM! This is a high-quality cleanup PR that completes the pnpm migration. The changes are:
The PR successfully addresses the technical debt left from the initial migration and ensures consistency across the entire codebase. Security & Performance
Review completed using React on Rails project guidelines from CLAUDE.md |
size-limit report 📦
|
There was a problem hiding this comment.
Actionable comments posted: 8
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
.claude/agents/pr-testing-agent.md (1)
94-97: Incomplete yarn→pnpm migration throughout the document.The "Automated (CI covers)" section (lines 79-82) correctly uses
pnpm, but multiple other sections still useyarn:
- Lines 94-97: "Before declaring 'fixed'" for JavaScript/TypeScript
- Lines 122-145: "Build Configuration Changes" checklist
- Lines 280, 283, 286, 289: "Playwright E2E Testing" section
Replace all
yarnandyarn runcommands withpnpmandpnpm runrespectively throughout the file for consistency with the learnings that require exclusive use ofpnpmfor JavaScript package management.CODING_AGENTS.md (1)
248-253: Add explicitinstallsubcommand to pnpm for clarityThe current line uses bare
pnpm, which does work but is less explicit. Align with the pattern in CLAUDE.md by adding theinstallsubcommand:-- Verify setup with `bundle && pnpm` when needed +- Verify setup with `bundle && pnpm install` when neededWARP.md (1)
13-22: Resolve PNPM-only policy vs remaining Yarn examples in WARP.mdThese edits correctly move some workflows to PNPM and explicitly state “ONLY use PNPM – never use npm,” but the doc still contains prominent Yarn-based commands (e.g., initial setup
bundle && yarn, testingyarn run test, lintingyarn run lint, buildingyarn run build, and the Scenario 2 checklist).To avoid conflicting guidance for contributors, update the remaining Yarn examples in this file to PNPM equivalents (or clearly mark them as legacy, if that’s the intent).
Also applies to: 45-59, 61-70, 199-216, 205-216, 308-310, 345-346
🧹 Nitpick comments (7)
docs/migrating/migrating-from-react-rails.md (1)
5-8: Wording tweak + optional npm example clarificationYou can avoid the apostrophe and keep the sentence clear by dropping it:
- 2. Remove `react_ujs` from `package.json` and run your package manager's install command (e.g., `pnpm install`, `yarn install`, or `npm install`). + 2. Remove `react_ujs` from `package.json` and run your package manager install command (e.g., `pnpm install` or `yarn install`).Given the repo guidance to avoid
npmcommands for JavaScript package management, consider omitting thenpm installexample unless this guide is explicitly meant to cover non-repo workflows..claude/docs/analysis/INDEX.md (1)
161-165: yalc:publish rename is consistent; confirm intentional Yarn usage hereSwitching the example to
yarn run yalc:publish(with the colon) matches the new script name used elsewhere.Given the repo is generally moving toward pnpm, double‑check whether this doc is meant to stay as a historical Yarn-based reference for the Surabaya branch or if you also want to mirror the pnpm workflow here (e.g., by mentioning both commands).
CODING_AGENTS.md (1)
28-35: Lockfile guidance is good; consider explicitly naming pnpm-lockThe new checklist item banning
package-lock.jsonandyarn.lockis helpful. You might make it slightly clearer thatpnpm-lock.yamlis the one allowed JS lockfile:-- [ ] No `package-lock.json`, `yarn.lock` or other non-PNPM lock files (except `Gemfile.lock`) +- [ ] No `package-lock.json`, `yarn.lock`, or other non-PNPM JS lock files + (only `pnpm-lock.yaml` and `Gemfile.lock` should be present)Purely a clarity tweak; behavior is already correct. As per coding guidelines, pnpm is the canonical JS package manager here.
.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md (1)
115-120: yalc:publish command name is consistent; verify Yarn vs pnpm choiceUpdating all checklist/example usages to
yarn run yalc:publish(colon form) keeps this reference in sync with the script rename.If this quick‑reference is meant to be used with the current pnpm-based workflows (not just the historical Yarn Surabaya branch), consider either:
- switching these to pnpm equivalents, or
- documenting both (
pnpm run yalc:publish/yarn run yalc:publish) so users don’t default back to Yarn for new work.If it’s intentionally a Yarn snapshot, no change needed—just confirm that’s the intent.
Also applies to: 158-163, 215-220
.claude/docs/analysis/github-issue-1765-update.md (1)
73-80: yalc:publish rename looks good; consider pnpm alignmentThe validation and “Quick Wins” examples now correctly reference
yarn run yalc:publish, matching the renamed script.As with the other analysis docs, please confirm whether these should remain Yarn-focused (capturing the original state of Issue #1765) or be updated to show the current pnpm workflow alongside/before the Yarn command.
Also applies to: 215-220
.claude/agents/pr-testing-guide.md (1)
421-433: Pre‑merge checklist is now PNPM‑based; update Scenario 2 example for consistencyThe updated checklist and JS/TS/build sections correctly use PNPM (
pnpm run test,pnpm run type-check,pnpm run build,pnpm nps build.prepack,pnpm run yalc:publish,pnpm workspaces info,cd spec/dummy && pnpm test:e2e).For consistency with this guidance and the project’s PNPM-only policy, consider updating the “Scenario 2: I updated package.json dependencies” example further down to use PNPM instead of Yarn (
pnpm install --frozen-lockfile,pnpm run build,pnpm run yalc:publish,pnpm run test, etc.).Also applies to: 447-460, 482-483
react_on_rails/spec/dummy/e2e/README.md (1)
8-16: PNPM-based Playwright commands look goodThe E2E README consistently swaps Yarn for PNPM (
pnpm playwright install --with-deps,pnpm test:e2e*, and the debug/report commands) with no remaining yarn/npm usage. If you prefer more explicit semantics, you could optionally usepnpm exec playwright install --with-deps, but the current form is fine as long asplaywrightis available via scripts/binaries.Also applies to: 155-177, 181-183
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (34)
.claude/agents/pr-testing-agent.md(1 hunks).claude/agents/pr-testing-guide.md(3 hunks).claude/docs/analysis/CI_FAILURES_2024-11-21.md(1 hunks).claude/docs/analysis/CLAUDE_MD_UPDATES.md(7 hunks).claude/docs/analysis/INDEX.md(1 hunks).claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md(2 hunks).claude/docs/analysis/MONOREPO_MIGRATION_ANALYSIS.md(1 hunks).claude/docs/analysis/claude-md-improvements.md(2 hunks).claude/docs/analysis/github-issue-1765-update.md(2 hunks).claude/docs/managing-file-paths.md(3 hunks).claude/docs/master-health-monitoring.md(1 hunks)CLAUDE.md(1 hunks)CODING_AGENTS.md(2 hunks)SWITCHING_CI_CONFIGS.md(4 hunks)WARP.md(4 hunks)analysis/monorepo/MONOREPO_MIGRATION_CHECKLIST.md(1 hunks)bin/ci-local(6 hunks)bin/ci-rerun-failures(3 hunks)bin/ci-switch-config(2 hunks)conductor-setup.sh(3 hunks)docs/getting-started/installation-into-an-existing-rails-app.md(1 hunks)docs/getting-started/quick-start.md(2 hunks)docs/migrating/migrating-from-react-rails.md(1 hunks)packages/react-on-rails-pro-node-renderer/script/preinstall.js(0 hunks)react_on_rails/spec/dummy/Procfile.dev(1 hunks)react_on_rails/spec/dummy/README.md(2 hunks)react_on_rails/spec/dummy/client/README.md(2 hunks)react_on_rails/spec/dummy/config/swc.config.js(1 hunks)react_on_rails/spec/dummy/e2e/README.md(2 hunks)react_on_rails_pro/spec/dummy/Procfile.static(1 hunks)react_on_rails_pro/spec/dummy/README.md(2 hunks)react_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb(1 hunks)react_on_rails_pro/spec/dummy/lib/tasks/assets.rake(1 hunks)script/ci-changes-detector(1 hunks)
💤 Files with no reviewable changes (1)
- packages/react-on-rails-pro-node-renderer/script/preinstall.js
🧰 Additional context used
📓 Path-based instructions (2)
**/*
📄 CodeRabbit inference engine (CLAUDE.md)
ALWAYS ensure files end with a newline character before committing/pushing
Files:
script/ci-changes-detectorCODING_AGENTS.mdreact_on_rails/spec/dummy/README.mdbin/ci-rerun-failuresSWITCHING_CI_CONFIGS.mdbin/ci-localconductor-setup.shreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbCLAUDE.mdanalysis/monorepo/MONOREPO_MIGRATION_CHECKLIST.mdreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdWARP.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsbin/ci-switch-configdocs/getting-started/quick-start.md
**/*.{rb,rake}
📄 CodeRabbit inference engine (CLAUDE.md)
ALWAYS run
bundle exec rubocopand fix ALL violations before every commit/push
Files:
react_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb
🧠 Learnings (33)
📓 Common learnings
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for user-visible changes (features, bug fixes, breaking changes, deprecations, performance improvements) to the open-source React on Rails gem and npm package
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to /CHANGELOG*.md : Use changelog format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)` (no hash in PR number)
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: NEVER use `npm` commands; only use equivalent `pnpm` commands for JavaScript package management
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to /CHANGELOG.md : Update `/CHANGELOG.md` for user-visible changes (features, bug fixes, breaking changes, deprecations, performance improvements) to the open-source React on Rails gem and npm package
Applied to files:
script/ci-changes-detectorCODING_AGENTS.mdreact_on_rails/spec/dummy/README.md.claude/docs/analysis/CLAUDE_MD_UPDATES.mdSWITCHING_CI_CONFIGS.mdreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdWARP.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsdocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Exclude `/coverage`, `/tmp`, `/gen-examples`, `/packages/react-on-rails/lib`, `/node_modules`, `/spec/dummy/node_modules`, `/spec/dummy/tmp`, `/spec/dummy/app/assets/webpack`, `/spec/dummy/log`, `/spec/dummy/e2e/playwright-report`, `/spec/dummy/test-results` from IDE indexing
Applied to files:
script/ci-changes-detectorSWITCHING_CI_CONFIGS.md.claude/docs/analysis/claude-md-improvements.mdreact_on_rails_pro/spec/dummy/Procfile.static
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: The `react_on_rails_pro/` directory has its own Prettier/ESLint configuration and must be linted separately
Applied to files:
script/ci-changes-detectorCODING_AGENTS.mdreact_on_rails/spec/dummy/README.md.claude/docs/analysis/CLAUDE_MD_UPDATES.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.mdSWITCHING_CI_CONFIGS.mdbin/ci-localconductor-setup.shreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb.claude/docs/analysis/claude-md-improvements.mdreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdWARP.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mddocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-02-12T16:38:06.537Z
Learnt from: Romex91
Repo: shakacode/react_on_rails PR: 1697
File: package-scripts.yml:28-28
Timestamp: 2025-02-12T16:38:06.537Z
Learning: The file `node_package/lib/ReactOnRails.full.js` is autogenerated during the build process and should not be present in the repository.
Applied to files:
script/ci-changes-detectorreact_on_rails/spec/dummy/README.md.claude/docs/analysis/CLAUDE_MD_UPDATES.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb.claude/docs/analysis/claude-md-improvements.mdreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsdocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to lib/react_on_rails/*.rb : Create RBS signature files for new Ruby files in `lib/react_on_rails/` by adding corresponding `.rbs` file in `sig/react_on_rails/`, adding to Steepfile, and validating before committing
Applied to files:
script/ci-changes-detectorSWITCHING_CI_CONFIGS.mdbin/ci-localreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbdocs/migrating/migrating-from-react-rails.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mddocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-04-26T21:55:55.874Z
Learnt from: alexeyr-ci2
Repo: shakacode/react_on_rails PR: 1732
File: spec/dummy/client/app-react16/startup/ReduxSharedStoreApp.client.jsx:40-44
Timestamp: 2025-04-26T21:55:55.874Z
Learning: In the react_on_rails project, files under `app-react16` directories are copied/moved to corresponding `/app` directories during the conversion process (removing the `-react16` suffix), which affects their relative import paths at runtime.
Applied to files:
script/ci-changes-detectorreact_on_rails/spec/dummy/README.md.claude/docs/analysis/CLAUDE_MD_UPDATES.mdSWITCHING_CI_CONFIGS.mdreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsdocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to **/*.{rb,rake} : ALWAYS run `bundle exec rubocop` and fix ALL violations before every commit/push
Applied to files:
script/ci-changes-detectorCODING_AGENTS.mdbin/ci-rerun-failures.claude/docs/analysis/CLAUDE_MD_UPDATES.mdbin/ci-localconductor-setup.shreact_on_rails/spec/dummy/client/README.mdWARP.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-01-23T18:20:45.824Z
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1687
File: spec/dummy/package.json:0-0
Timestamp: 2025-01-23T18:20:45.824Z
Learning: When adding or updating dependencies in spec/dummy/package.json, maintain version consistency with other package.json files in the codebase to avoid potential version conflicts.
Applied to files:
CODING_AGENTS.mdreact_on_rails/spec/dummy/README.mdSWITCHING_CI_CONFIGS.mdbin/ci-localconductor-setup.shreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdWARP.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails/spec/dummy/Procfile.devdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsbin/ci-switch-configdocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Do NOT manually format code during conflict resolution; always use `rake autofix` or `pnpm run format` for automated formatting
Applied to files:
CODING_AGENTS.md.claude/agents/pr-testing-agent.md.claude/docs/analysis/CLAUDE_MD_UPDATES.mdSWITCHING_CI_CONFIGS.mdbin/ci-localconductor-setup.shreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rake.claude/docs/managing-file-paths.md.claude/docs/master-health-monitoring.md.claude/docs/analysis/claude-md-improvements.mdreact_on_rails/spec/dummy/client/README.mdWARP.mdreact_on_rails_pro/spec/dummy/README.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: ALWAYS let Prettier and RuboCop handle ALL formatting - never manually format
Applied to files:
CODING_AGENTS.mdbin/ci-localconductor-setup.sh.claude/docs/analysis/claude-md-improvements.mdWARP.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: NEVER use `npm` commands; only use equivalent `pnpm` commands for JavaScript package management
Applied to files:
CODING_AGENTS.mdbin/ci-rerun-failuresSWITCHING_CI_CONFIGS.mdbin/ci-localconductor-setup.sh.claude/docs/managing-file-paths.mdreact_on_rails/spec/dummy/client/README.mdWARP.mdbin/ci-switch-configdocs/getting-started/quick-start.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to spec/dummy/e2e/playwright/**/*.spec.js : Use Rails helpers (`appFactories`, `appEval`) in Playwright tests instead of UI-based setup to leverage factory_bot and arbitrary Ruby code execution
Applied to files:
react_on_rails/spec/dummy/README.mdbin/ci-rerun-failuresbin/ci-localreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbreact_on_rails/spec/dummy/client/README.mdWARP.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticreact_on_rails/spec/dummy/Procfile.dev.claude/agents/pr-testing-guide.md
📚 Learning: 2025-09-16T08:01:11.146Z
Learnt from: justin808
Repo: shakacode/react_on_rails PR: 1770
File: lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx:2-2
Timestamp: 2025-09-16T08:01:11.146Z
Learning: React on Rails uses webpack CSS Modules configuration with namedExports: true, which requires the import syntax `import * as style from './file.module.css'` rather than the default export pattern. This configuration enables better tree shaking and bundle size optimization for CSS modules.
Applied to files:
react_on_rails/spec/dummy/README.mdSWITCHING_CI_CONFIGS.mdreact_on_rails_pro/spec/dummy/lib/tasks/assets.rakereact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rbreact_on_rails/spec/dummy/client/README.mddocs/migrating/migrating-from-react-rails.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.staticdocs/getting-started/installation-into-an-existing-rails-app.mdreact_on_rails/spec/dummy/config/swc.config.jsdocs/getting-started/quick-start.md
📚 Learning: 2024-07-27T10:08:35.868Z
Learnt from: theforestvn88
Repo: shakacode/react_on_rails PR: 1620
File: spec/dummy/client/app/startup/HelloTurboStream.jsx:3-3
Timestamp: 2024-07-27T10:08:35.868Z
Learning: The `RailsContext` import in `spec/dummy/client/app/startup/HelloTurboStream.jsx` is used later in the project, as clarified by the user theforestvn88.
Applied to files:
react_on_rails/spec/dummy/README.mdreact_on_rails/spec/dummy/client/README.mdreact_on_rails_pro/spec/dummy/README.mdreact_on_rails_pro/spec/dummy/Procfile.static
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to spec/dummy/e2e/playwright/**/*.spec.js : Generate test data in Playwright tests using `appFactories` function with factory_bot syntax (e.g., `appFactories([['create', 'user', { name: 'Test User' }]])`) rather than manual database manipulation
Applied to files:
react_on_rails/spec/dummy/README.mdbin/ci-localreact_on_rails/spec/dummy/e2e/README.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to spec/dummy/e2e/playwright/app_commands/**/*.rb : Add custom Playwright app commands in `e2e/playwright/app_commands/` directory as Ruby files using CypressOnRails SmartFactoryWrapper pattern
Applied to files:
bin/ci-rerun-failuresreact_on_rails/spec/dummy/e2e/README.mdreact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: For infrastructure/config changes affecting directory structure, file paths, build configurations, or CI workflows, conduct comprehensive local testing before pushing (the '15-Minute Rule')
Applied to files:
.claude/docs/analysis/CLAUDE_MD_UPDATES.md.claude/docs/analysis/MIGRATION_QUICK_REFERENCE.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdbin/ci-local.claude/docs/managing-file-paths.mdCLAUDE.md.claude/docs/master-health-monitoring.md.claude/docs/analysis/claude-md-improvements.mdWARP.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Resolve merge conflicts by: resolving logical conflicts first, verifying file paths with grep, testing affected scripts, auto-fixing formatting with `rake autofix`, and testing critical scripts if build configs changed
Applied to files:
.claude/docs/analysis/CLAUDE_MD_UPDATES.mdSWITCHING_CI_CONFIGS.md.claude/docs/analysis/CI_FAILURES_2024-11-21.mdCLAUDE.md.claude/docs/master-health-monitoring.md.claude/docs/analysis/claude-md-improvements.mdreact_on_rails/spec/dummy/client/README.mdWARP.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to /CHANGELOG_PRO.md : Update `/CHANGELOG_PRO.md` for Pro-only features, fixes, and changes affecting Pro packages
Applied to files:
bin/ci-localreact_on_rails/spec/dummy/e2e/README.md
📚 Learning: 2025-10-23T17:22:01.074Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1875
File: lib/react_on_rails/utils.rb:112-124
Timestamp: 2025-10-23T17:22:01.074Z
Learning: In React on Rails, when Pro is installed but not licensed, the intended behavior is to raise an error on boot. The `react_on_rails_pro?` method validates licenses and should raise errors early (including during path resolution in methods like `server_bundle?`) to enforce licensing requirements rather than failing later with obscure errors.
Applied to files:
bin/ci-localreact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb
📚 Learning: 2025-02-18T13:08:01.477Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: lib/react_on_rails/helper.rb:190-197
Timestamp: 2025-02-18T13:08:01.477Z
Learning: RSC support validation in React on Rails Pro is handled through a chain of validations:
1. Pro version check in `run_stream_inside_fiber`
2. RSC support check during pack generation via `ReactOnRailsPro.configuration.enable_rsc_support`
3. RSC support validation during component registration
This makes additional validation in the helper methods unnecessary.
Applied to files:
bin/ci-localreact_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: NEVER push without running full lint check first
Applied to files:
bin/ci-local
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to spec/dummy/e2e/playwright/**/*.spec.js : In Playwright E2E tests, use `app('clean')` in `beforeEach` blocks to ensure clean database state between tests
Applied to files:
bin/ci-localreact_on_rails/spec/dummy/e2e/README.md.claude/agents/pr-testing-guide.md
📚 Learning: 2025-09-15T21:24:48.207Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1781
File: node_package/src/ClientSideRenderer.ts:82-95
Timestamp: 2025-09-15T21:24:48.207Z
Learning: In React on Rails, the force_load feature includes both explicit `data-force-load="true"` usage and the ability to hydrate components during the page loading state (`document.readyState === 'loading'`). Both capabilities require a Pro license, so the condition `!railsContext.rorPro && (isComponentForceLoaded || document.readyState === 'loading')` correctly gates both scenarios.
Applied to files:
bin/ci-localreact_on_rails_pro/spec/dummy/README.mddocs/getting-started/installation-into-an-existing-rails-app.md
📚 Learning: 2025-09-29T14:45:42.687Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1833
File: lib/react_on_rails/dev/process_manager.rb:72-83
Timestamp: 2025-09-29T14:45:42.687Z
Learning: In Ruby bundler contexts, when bundler intercepts system commands for executables not in the Gemfile, both version checks (like `system("foreman", "--version")`) and execution commands (like `system("foreman", "start", ...)`) fail equally, both returning false. This means availability checks using version flags accurately reflect whether execution commands will work in the current bundler context.
Applied to files:
conductor-setup.sh
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to /CHANGELOG*.md : Use changelog format: `[PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [username](https://github.com/username)` (no hash in PR number)
Applied to files:
react_on_rails/spec/dummy/e2e/README.mddocs/migrating/migrating-from-react-rails.mdreact_on_rails_pro/spec/dummy/README.md
📚 Learning: 2025-02-13T16:50:47.848Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/clientStartup.ts:18-21
Timestamp: 2025-02-13T16:50:47.848Z
Learning: In the react_on_rails module, the `reactOnRailsPageUnloaded` function in clientStartup.ts is intentionally kept private as it's only used internally as a callback for `onPageUnloaded`.
Applied to files:
react_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Do NOT add changelog entries for linting, formatting, refactoring, tests, or documentation fixes
Applied to files:
WARP.md
📚 Learning: 2025-07-08T05:57:29.630Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1745
File: node_package/src/RSCRequestTracker.ts:8-14
Timestamp: 2025-07-08T05:57:29.630Z
Learning: The global `generateRSCPayload` function in React on Rails Pro (RORP) is provided by the framework during rendering requests, not implemented in application code. The `declare global` statements are used to document the expected interface that RORP will inject at runtime.
Applied to files:
docs/getting-started/installation-into-an-existing-rails-app.md
📚 Learning: 2025-02-13T16:50:26.861Z
Learnt from: AbanoubGhadban
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/turbolinksUtils.ts:34-36
Timestamp: 2025-02-13T16:50:26.861Z
Learning: In React on Rails, when checking for Turbolinks version 5 using `turbolinksVersion5()`, always ensure `Turbolinks` exists first by checking `turbolinksInstalled()` to prevent TypeError when accessing properties.
Applied to files:
docs/getting-started/installation-into-an-existing-rails-app.md
📚 Learning: 2024-12-12T13:07:09.929Z
Learnt from: alexeyr-ci
Repo: shakacode/react_on_rails PR: 1644
File: node_package/src/ReactOnRailsRSC.ts:87-87
Timestamp: 2024-12-12T13:07:09.929Z
Learning: When handling errors in 'node_package/src/ReactOnRailsRSC.ts', include the error stack in error messages in development and test environments to aid debugging.
Applied to files:
react_on_rails/spec/dummy/config/swc.config.js
📚 Learning: 2025-11-25T08:05:17.804Z
Learnt from: CR
Repo: shakacode/react_on_rails PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T08:05:17.804Z
Learning: Applies to sig/react_on_rails/**/*.rbs : In RBS type signature files, define type signatures that correspond to Ruby files in `lib/react_on_rails/`
Applied to files:
docs/getting-started/quick-start.md
🪛 LanguageTool
docs/migrating/migrating-from-react-rails.md
[grammar] ~7-~7: An apostrophe ‘s’ denotes possession. Did you mean to use the plural form of the noun (no apostrophe)?
Context: ...e react_ujs from package.json and run your package manager's install command (e.g., `...
(NOUN_APOSTROPHE_S_VERB)
react_on_rails_pro/spec/dummy/README.md
[uncategorized] ~6-~6: Possible missing comma found.
Context: ...RUN doctoc TO UPDATE --> Table of Contents - [Webpack Configuration](#webpack-con...
(AI_HYDRA_LEO_MISSING_COMMA)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: examples (3.4, latest)
- GitHub Check: build-dummy-app-webpack-test-bundles (3.4, 22, latest)
- GitHub Check: rspec-package-tests (3.4, latest)
- GitHub Check: build
- GitHub Check: pro-lint-js-and-ruby
- GitHub Check: build-dummy-app-webpack-test-bundles
- GitHub Check: build-dummy-app-webpack-test-bundles
- GitHub Check: check-bundle-size
- GitHub Check: claude-review
🔇 Additional comments (18)
react_on_rails_pro/spec/dummy/README.md (1)
1-77: Excellent yarn→pnpm migration — ensure file ends with newline and update CHANGELOG.md.The migration looks accurate:
pnpm install -rcorrectly handles recursive workspace installation, andpnpminstalls dependencies in the spec/dummy directory. The Running section improvements and Webpack Configuration clarifications are well-structured.However, two action items remain:
Missing trailing newline (line 77): Per coding guidelines, the file must end with a newline character.
CHANGELOG.md update required (major): These documentation changes are user-visible (new installation flow, updated Running section). Based on learnings, update
/CHANGELOG.mdusing the format:[PR 2183](https://github.com/shakacode/react_on_rails/pull/2183) by [username](https://github.com/username).Apply this diff to add the trailing newline:
### Using loadable-components and no HMR ```sh overmind start -f Procfile.static
</blockquote></details> <details> <summary>react_on_rails/spec/dummy/Procfile.dev (1)</summary><blockquote> `8-8`: **LGTM!** The Procfile correctly updates the ReScript build command from yarn to pnpm, aligning with the project-wide migration to PNPM. Based on learnings, PNPM should be used for all package management. </blockquote></details> <details> <summary>react_on_rails/spec/dummy/config/swc.config.js (1)</summary><blockquote> `7-7`: **LGTM!** The error message correctly instructs users to use `pnpm add shakapacker` instead of `yarn add shakapacker`, aligning with the project's migration to PNPM as the primary package manager. Based on learnings, PNPM should be used for all package management. </blockquote></details> <details> <summary>react_on_rails_pro/spec/dummy/lib/tasks/assets.rake (1)</summary><blockquote> `19-22`: **LGTM!** The webpack asset compilation tasks correctly update from `yarn run` to `pnpm run` for both client and server builds, aligning with the project-wide migration to PNPM. Based on learnings, PNPM should be used for all package management. </blockquote></details> <details> <summary>.claude/agents/pr-testing-agent.md (1)</summary><blockquote> `79-82`: **LGTM!** The automated testing documentation correctly updates all CI commands from `yarn` to `pnpm`, aligning with the project-wide migration. Based on learnings, PNPM should be used for all package management. </blockquote></details> <details> <summary>react_on_rails_pro/spec/dummy/config/initializers/react_on_rails.rb (1)</summary><blockquote> `56-60`: **Sample command correctly updated to pnpm** The commented `build_test_command` now points to `pnpm run build:test`, which aligns with the rest of the pnpm migration. No functional impact; good to keep this example current. </blockquote></details> <details> <summary>.claude/docs/master-health-monitoring.md (1)</summary><blockquote> `70-75`: **Master health checks correctly updated to pnpm** Switching the manual checks to: - `pnpm run yalc:publish` - `pnpm build && ls -la lib/` is consistent with the pnpm migration and yalc:publish rename. Just make sure the `build` and `yalc:publish` scripts remain defined at the expected level in `package.json` so these examples stay accurate. </blockquote></details> <details> <summary>CLAUDE.md (1)</summary><blockquote> `385-390`: **Critical scripts block correctly switched to pnpm yalc:publish** Updating the conflict‑resolution test snippet to: ```bash pnpm run prepack # Test prepack script pnpm run yalc:publish # Test yalc publish if package structure changed rake run_rspec:gem # Run relevant test suiteskeeps this high‑risk path aligned with the pnpm migration and yalc:publish rename. A future cleanup pass might also update the earlier Yarn-based examples in this file for full consistency, but this specific change looks good.
script/ci-changes-detector (1)
97-97: LGTM: Lockfile reference correctly updated.The change from
yarn.locktopnpm-lock.yamlproperly aligns the CI change detector with the repository's migration to pnpm.react_on_rails_pro/spec/dummy/Procfile.static (1)
5-8: LGTM: Procfile commands updated to pnpm.Both process definitions correctly use
pnpm runinstead ofyarn run, aligning with the repository-wide migration.docs/getting-started/installation-into-an-existing-rails-app.md (1)
62-69: LGTM: Multi-manager approach appropriate for user-facing documentation.The updated installation instructions now provide options for npm, yarn, and pnpm, giving users flexibility in their package manager choice. The clarified note about
--save-exactbehavior across different managers is helpful.docs/getting-started/quick-start.md (1)
15-15: LGTM: Inclusive package manager guidance for users.The prerequisites and build instructions now appropriately accommodate multiple package managers while leading with pnpm (the repository's standard). This provides flexibility for users while signaling the project's preference.
Also applies to: 210-212
react_on_rails/spec/dummy/README.md (1)
13-29: LGTM: Setup instructions correctly migrated to pnpm.All installation and build commands properly use
pnpmwith the correct flags (-rfor recursive workspace install). Path references topackages/react-on-railsare also accurate.bin/ci-rerun-failures (1)
191-191: LGTM: CI script commands fully migrated to pnpm.All yarn commands have been properly replaced with their pnpm equivalents in both the execution logic and help text, ensuring consistency across the CI tooling.
Also applies to: 197-197, 260-260, 292-292
react_on_rails/spec/dummy/client/README.md (1)
14-21: PNPM migration in dummy client README looks correctAll updated examples (lint, dependency updates, and add/dev-add) consistently use
pnpmand avoidnpm/yarnCLI usage; nothing further needed here.Also applies to: 26-27, 30-34, 39-40, 55-59
conductor-setup.sh (1)
16-21: Conductor setup PNPM changes look consistentTool checks, dependency installation, build, type-check, and the documented test command all now use PNPM and drop Yarn/NPM usage, without altering the surrounding flow. This script looks good.
Also applies to: 57-64, 73-84
bin/ci-switch-config (1)
268-276: PNPM lockfile handling in ci-switch-config is consistentBoth the “minimum” and “latest” paths now correctly remove
pnpm-lock.yaml(root and spec/dummy) and reinstall withpnpm installusing the appropriate--no-frozen-lockfile/--frozen-lockfileflags. This aligns with the updated docs and removes Yarn-specific behavior cleanly.Also applies to: 279-285, 409-417, 421-426
bin/ci-local (1)
154-176: Local CI script now consistently uses PNPM instead of YarnDependency bootstrap, linting (ESLint/Prettier/TS), JS tests, dummy app setup, and React on Rails Pro lint/tests all correctly use PNPM now, while preserving the previous behavior of skipping Pro checks if Pro deps can’t be installed. This matches the project’s PNPM-only policy.
Also applies to: 168-176, 181-190, 208-211, 241-247, 251-258
|
|
||
| ```bash | ||
| yarn run yalc.publish | ||
| yarn run yalc:publish |
There was a problem hiding this comment.
Package manager references should use pnpm, not yarn.
This documentation file updates the command name from yalc.publish to yalc:publish but continues to reference yarn run throughout. Given that this PR is completing the yarn→pnpm migration, all these command examples should use pnpm run instead to align with the project's standardized package manager.
Based on learnings, the repository requires using pnpm commands exclusively for JavaScript package management.
Also applies to: 106-106, 160-160, 202-202, 241-241, 262-262, 291-291
🤖 Prompt for AI Agents
In .claude/docs/analysis/CLAUDE_MD_UPDATES.md around line 70 (and also update
the other instances at lines 106, 160, 202, 241, 262, 291), the documentation
uses "yarn run" to invoke scripts; change those examples to "pnpm run" (e.g.,
replace "yarn run yalc:publish" with "pnpm run yalc:publish") so all command
examples consistently use pnpm for package management.
Code Review - PR #2183: Missed yarn->pnpm replacements✅ Overall AssessmentThis PR successfully addresses the missed yarn→pnpm replacements from PR #2121. The changes are comprehensive, well-scoped, and all CI checks are passing. This is a documentation/configuration cleanup that improves consistency across the codebase. 🎯 Strengths
📋 Changes ReviewedDocumentation Updates (✅ Good)
Script Updates (✅ Good)
Configuration Updates (✅ Good)
Analysis Documents (✅ Good)
🔍 Potential Issues FoundMinor: Remaining yarn references in docs/ directoryI found some remaining # Check these files:
docs/JS_PRO_PACKAGE_SEPARATION_PLAN.md (multiple yarn references)
docs/api-reference/configuration.md:340 ("what yarn command is run")Recommendation: These appear to be in historical/planning documents (JS_PRO_PACKAGE_SEPARATION_PLAN.md) which may be intentionally left as historical record. The one in configuration.md:340 should probably be updated to "what pnpm command is run" for consistency. Minor: yarn binaries in dummy appsThe following yarn wrapper scripts remain (which is expected):
These are Rails bin stubs and may still be needed for compatibility. Worth verifying if these should stay or be removed/updated. 🧪 Testing ValidationCI Status: All checks passing ✅
No additional testing needed since:
🎨 Code Quality
📌 Recommendations
✅ Approval RecommendationAPPROVED ✅ This PR successfully completes the yarn→pnpm migration cleanup. The changes are thorough, consistent, and all tests pass. The minor issues noted above are optional and don't block merging. Rationale:
Great work on the thorough cleanup! 🎉 |
Code Review - PR #2183: Missed yarn→pnpm replacementsSummaryExcellent cleanup work! This PR catches the remaining Yarn references that were missed in PR #2121's migration to pnpm. The changes are thorough and consistent across documentation, scripts, and configuration files. ✅ Strengths
🔍 Observations & Suggestions1. Minor Inconsistency in
|
Code Review - Missed yarn->pnpm replacementsThank you for catching these missed replacements from PR #2121! I've reviewed the changes and found both strengths and areas for improvement. ✅ Strengths
|
Code Review: Yarn to PNPM Migration CompletenessThanks for catching these missed references! This PR is a valuable cleanup from PR #2121's yarn→pnpm migration. Here's my review: ✅ Strengths
📝 Observations & Suggestions
🔍 Testing RecommendationsBefore merging, please verify:
🎯 Quality Assessment
🚀 RecommendationLGTM with manual testing. This is a solid cleanup PR. Once you've verified the critical build scripts work (especially after a clean install), this is ready to merge. The removal of the preinstall script is correct - pnpm handles workspace dependencies natively and doesn't need the yarn-specific linking workaround. Minor note: Consider running |
Code Review - PR #2183: Missed yarn->pnpm replacementsSummaryThis PR completes the yarn-to-pnpm migration by updating remaining references in scripts, documentation, and configuration files. All CI checks are passing ✅ ✅ Positive Aspects
🔍 Areas for ConsiderationMinor: Package Manager Flexibility DocumentationIn # Use your preferred package manager
npm install react-on-rails --save-exact
# or: yarn add react-on-rails --exact
# or: pnpm add react-on-rails --save-exactSuggestion: While this is good for compatibility, consider adding a note about which package manager the project itself uses (pnpm), so users understand the canonical approach. Something like: # This project uses pnpm, but you can use your preferred package manager:
pnpm add react-on-rails --save-exact
# or: npm install react-on-rails --save-exact
# or: yarn add react-on-rails --exactVerification Needed: yalc Command ConsistencyThroughout the codebase, I notice:
This appears consistent and correct. ✅ Verification: Procfile.dev rescript commandIn -rescript: yarn build:rescript:dev
+rescript: pnpm build:rescript:devQuestion: Does the package.json contain a 🔒 Security Considerations✅ No security concerns identified
🧪 Test Coverage✅ All CI checks passing:
Recommendation: Given this changes build/CI scripts, it would be ideal to verify locally: # Clean test as specified in CLAUDE.md
rm -rf node_modules pnpm-lock.yaml
pnpm install --frozen-lockfile
pnpm run build
pnpm run yalc:publish
# In conductor environment
./conductor-setup.sh📊 Performance Considerations✅ Positive impact:
🎯 Best Practices AdherenceChecking against CLAUDE.md requirements:
📝 Overall AssessmentRecommendation: APPROVE ✅ This PR successfully completes the yarn-to-pnpm migration started in PR #2121. The changes are:
Minor suggestions for improvement:
The PR is ready to merge as-is, with suggestions being optional enhancements. Great work on being thorough with the migration! 🎉 |
3763256 to
154624d
Compare
Summary
#2121 missed some changes in scripts and docs.
Pull Request checklist
Add/update test to cover these changesUpdate CHANGELOG fileSummary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.