Pin react-on-rails-rsc to stable 19.0.5 (#3634)#4080
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (10)
✅ Files skipped from review due to trivial changes (4)
🚧 Files skipped from review as they are similar to previous changes (5)
WalkthroughPromotes the ChangesStable react-on-rails-rsc@19.0.5 pin rollout
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related issues
Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Code ReviewSummary: Mechanical version-string promotion from prerelease What's good
One bug to fixCHANGELOG.md line 29 — the PR link reads Minor observations (non-blocking)
Verdict: LGTM once the CHANGELOG PR link is corrected. |
Greptile SummaryThis PR promotes the
Confidence Score: 5/5Safe to merge — a mechanical version-string promotion with no logic changes; all 10 updated files are internally consistent. The change flips one constant in the Ruby generator, updates both package.json devDependencies, regenerates the lockfile, and rewrites all matching strings in three doc pages and their derived llms file. Every spec that asserted the old RC string has been updated. The only catch is a stale PR number in the CHANGELOG link (/pull/3634 should be /pull/4080), which is a documentation nit and does not affect runtime behavior. CHANGELOG.md — the PR link number needs a one-character fix. All other files are clean. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["RSC_PACKAGE_VERSION_PIN\n'19.0.5'\n(js_dependency_manager.rb)"] --> B["react:install generator\nnpm install --save-exact\nreact-on-rails-rsc@19.0.5"]
A --> C["Root package.json\ndevDependency: 19.0.5"]
A --> D["packages/react-on-rails-pro/package.json\ndevDependency: 19.0.5"]
C --> E["pnpm-lock.yaml\nresolution: 19.0.5\nnew integrity hash"]
D --> E
A --> F["Pro RSC Docs\ncreate-without-ssr.md\nrspack-compatibility.md\nupgrading-existing-pro-app.md"]
F --> G["llms-full-pro.txt\n(regenerated)"]
style A fill:#4CAF50,color:#fff
style B fill:#2196F3,color:#fff
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A["RSC_PACKAGE_VERSION_PIN\n'19.0.5'\n(js_dependency_manager.rb)"] --> B["react:install generator\nnpm install --save-exact\nreact-on-rails-rsc@19.0.5"]
A --> C["Root package.json\ndevDependency: 19.0.5"]
A --> D["packages/react-on-rails-pro/package.json\ndevDependency: 19.0.5"]
C --> E["pnpm-lock.yaml\nresolution: 19.0.5\nnew integrity hash"]
D --> E
A --> F["Pro RSC Docs\ncreate-without-ssr.md\nrspack-compatibility.md\nupgrading-existing-pro-app.md"]
F --> G["llms-full-pro.txt\n(regenerated)"]
style A fill:#4CAF50,color:#fff
style B fill:#2196F3,color:#fff
Reviews (1): Last reviewed commit: "Pin react-on-rails-rsc to stable 19.0.5 ..." | Re-trigger Greptile |
size-limit report 📦
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d9bd87e17
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/pro/react-server-components/upgrading-existing-pro-app.md (1)
266-267: ⚡ Quick winAlign troubleshooting commands with package-manager-agnostic pattern.
Lines 26-28 exemplify the package-manager-agnostic style by providing
pnpm,yarn, andnpmalternatives. The troubleshooting section should follow the same pattern for consistency and usability.♻️ Proposed fix to add yarn and npm alternatives to troubleshooting
- **Missing `react-on-rails-rsc` package**: Run `pnpm add react-on-rails-rsc@19.0.5` + **Missing `react-on-rails-rsc` package**: Run `pnpm add react-on-rails-rsc@19.0.5` (or `yarn add react-on-rails-rsc@19.0.5` / `npm install react-on-rails-rsc@19.0.5`) - **React or `react-on-rails-rsc` version mismatch**: RSC currently requires React 19.0.x with patch >= 19.0.4 and the exact `react-on-rails-rsc@19.0.5` pin. Check with `pnpm list react react-dom react-on-rails-rsc` + **React or `react-on-rails-rsc` version mismatch**: RSC currently requires React 19.0.x with patch >= 19.0.4 and the exact `react-on-rails-rsc@19.0.5` pin. Check with `pnpm list react react-dom react-on-rails-rsc` (or `yarn why` / `npm ls`)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/pro/react-server-components/upgrading-existing-pro-app.md` around lines 266 - 267, The troubleshooting section at lines 266-267 contains two items with pnpm-only commands that should be made package-manager-agnostic. For the missing package item with the "pnpm add react-on-rails-rsc@19.0.5" command and the version check item with the "pnpm list react react-dom react-on-rails-rsc" command, add equivalent yarn and npm alternatives following the same multi-package-manager pattern demonstrated in lines 26-28 of the document. Each command should show the pnpm, yarn, and npm variations with appropriate syntax for each package manager.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@react_on_rails/lib/generators/react_on_rails/js_dependency_manager.rb`:
- Around line 163-165: The RSC_PACKAGE_VERSION_PIN constant is now pinned to a
stable release version (19.0.5), but the warning or error messaging that
references this constant still incorrectly describes it as a prerelease and
mentions waiting for stable to be published. Find the warning or informational
messages that reference RSC_PACKAGE_VERSION_PIN or mention "prerelease" or
"until stable is published" in relation to this package, and update the
messaging to accurately reflect that 19.0.5 is now a stable release rather than
a prerelease.
---
Nitpick comments:
In `@docs/pro/react-server-components/upgrading-existing-pro-app.md`:
- Around line 266-267: The troubleshooting section at lines 266-267 contains two
items with pnpm-only commands that should be made package-manager-agnostic. For
the missing package item with the "pnpm add react-on-rails-rsc@19.0.5" command
and the version check item with the "pnpm list react react-dom
react-on-rails-rsc" command, add equivalent yarn and npm alternatives following
the same multi-package-manager pattern demonstrated in lines 26-28 of the
document. Each command should show the pnpm, yarn, and npm variations with
appropriate syntax for each package manager.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: fd292337-b651-46b9-89bf-7fd11669ae80
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (9)
CHANGELOG.mddocs/pro/react-server-components/create-without-ssr.mddocs/pro/react-server-components/rspack-compatibility.mddocs/pro/react-server-components/upgrading-existing-pro-app.mdllms-full-pro.txtpackage.jsonpackages/react-on-rails-pro/package.jsonreact_on_rails/lib/generators/react_on_rails/js_dependency_manager.rbreact_on_rails/spec/react_on_rails/generators/js_dependency_manager_spec.rb
|
+ci-status |
CI StatusHead SHA: Only the required gate is active unless hosted CI is requested. |
|
+ci-run-hosted |
Hosted CI RequestedTriggered 9 workflow(s) for View progress in the Actions tab. |
- CHANGELOG: fix the changelog entry's PR link to point at PR 4080 (was pointing at the issue URL /pull/3634); keep Closes Issue 3634. - Generator messaging: make rsc_dependency_pin_info and rsc_dependency_pin_failed_warning conditional on whether RSC_PACKAGE_VERSION_PIN is a prerelease (contains "-"). A prerelease pin keeps the existing "temporarily / this prerelease / until stable {target} is published" wording; the now-stable 19.0.5 pin uses accurate wording with no prerelease/temporary framing. Add a stable-pin spec asserting the messages omit prerelease wording, and update the install_generator_spec expectation accordingly. - Docs: reword the React-19.0.x NOTE in create-without-ssr.md and upgrading-existing-pro-app.md to state the generator pins react-on-rails-rsc to exactly 19.0.5 (no ^/~) and that manual installers should record it as exactly 19.0.5 because the RSC bundler APIs are version-coupled, while react/react-dom stay on ~19.0.4. Regenerate llms-full-pro.txt to mirror the doc edits. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0d9bd87 to
922e827
Compare
Stable react-on-rails-rsc@19.0.5 is now published on npm latest, so flip every default/published pin from the 19.0.5-rc.7 prerelease to the stable 19.0.5 release. This is the v17 final pin. - Generator default RSC_PACKAGE_VERSION_PIN -> "19.0.5"; reword the pin comment to stable framing and drop the resolved TODO(#3642). - Update js_dependency_manager_spec assertions and warning-text/literal expectations from 19.0.5-rc.7 to 19.0.5 (the unrelated 19.1.0-rc.1 stub_const is left as-is). - Root package.json devDependency and pnpm-overrides comment, plus the Pro package devDependency, now pin 19.0.5. - Regenerate pnpm-lock.yaml: the react-on-rails-rsc 19.0.5-rc.7 entries become 19.0.5; the intentional 19.2.0-rc.1 soak entries are untouched. - Reword the Pro RSC install docs (rspack-compatibility, create-without-ssr, upgrading-existing-pro-app) to state stable 19.0.5 is the pin. - Regenerate llms-full-pro.txt to mirror the Pro doc edits. - Add a [Unreleased] CHANGELOG entry; note the native RSC CSS FOUC fix requires react-on-rails-rsc >= 19.0.5. Intentionally left untouched: the React 19.2 soak pins (react_on_rails_pro_dummy override + Pro dummy package, 19.2.0-rc.1 / react 19.2.7), the Pro package peerDependencies "*", and the node-renderer RSC peer-support files. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CHANGELOG: fix the changelog entry's PR link to point at PR 4080 (was pointing at the issue URL /pull/3634); keep Closes Issue 3634. - Generator messaging: make rsc_dependency_pin_info and rsc_dependency_pin_failed_warning conditional on whether RSC_PACKAGE_VERSION_PIN is a prerelease (contains "-"). A prerelease pin keeps the existing "temporarily / this prerelease / until stable {target} is published" wording; the now-stable 19.0.5 pin uses accurate wording with no prerelease/temporary framing. Add a stable-pin spec asserting the messages omit prerelease wording, and update the install_generator_spec expectation accordingly. - Docs: reword the React-19.0.x NOTE in create-without-ssr.md and upgrading-existing-pro-app.md to state the generator pins react-on-rails-rsc to exactly 19.0.5 (no ^/~) and that manual installers should record it as exactly 19.0.5 because the RSC bundler APIs are version-coupled, while react/react-dom stay on ~19.0.4. Regenerate llms-full-pro.txt to mirror the doc edits. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
922e827 to
eed3206
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eed3206881
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Review-thread triage (head
|
|
Code Review - PR 4080: Pin react-on-rails-rsc to stable 19.0.5 Summary: Clean, low-risk version-string promotion. All findings are minor or informational. What the PR does Promotes the react-on-rails-rsc pin from the pre-release 19.0.5-rc.7 to the stable 19.0.5 release everywhere the repo surfaces that version to users: the generator constant, both package.json files, pnpm-lock.yaml, three Pro RSC install docs, the LLM context blob, and CHANGELOG.md. Strengths
Minor observations
In rsc_dependency_pin_failed_warning (stable branch), RspackPlugin is already shipped in the stable release, so "adding" reads as if it is still in flight. "supporting" or "including" would be more accurate for the stable branch. The same wording appears in rsc_dependency_pin_info's else branch. Not a bug - just slightly misleading user-facing text.
The method is only called from inside the if rsc_package_version_prerelease? branches, so at runtime with RSC_PACKAGE_VERSION_PIN = "19.0.5" it is never invoked. The spec covers it via stub_const, which is correct, but a short comment that the method exists to serve future pre-release pins would help the next reader confirm it is not orphaned.
The "Changed" sub-section is inserted between the existing "Fixed" entry and the [17.0.0.rc.5] header. No sibling "Changed" block existed in the Unreleased section before, so this is structurally correct. Security / dependency integrity The pnpm-lock.yaml integrity hash change from sha512-cyQw... to sha512-EGa5... is expected when swapping package versions. CI must verify the resolved tarball matches the new hash (standard pnpm behaviour). Verdict Approve with nits. The wording fix in point 1 is the only thing worth a follow-up; it is non-blocking. The local validation described in the PR body (608 RSpec examples, type-check, lint, format, docs guard) is thorough for a mechanical pin bump. Waiting on hosted CI to confirm real npm install resolution of the stable tarball before merge, as noted by the ready-for-hosted-ci label. |
PR Review: Pin react-on-rails-rsc to stable 19.0.5 (#3634)OverviewClean, well-scoped version promotion: every RC pin of What Is Good
Minor Issues1. New spec hardcodes The test directly asserts rsc_package = "react-on-rails-rsc@#{ReactOnRails::Generators::JsDependencyManager::RSC_PACKAGE_VERSION_PIN}"When the pin next advances, this test fails on two lines instead of one. A more pin-agnostic version: it "uses accurate messaging without prerelease wording for a stable package pin" do
pin = ReactOnRails::Generators::JsDependencyManager::RSC_PACKAGE_VERSION_PIN
expect(pin).not_to include("-") # assert stable, not a specific string
info = instance.send(:rsc_dependency_pin_info)
warning = instance.send(:rsc_dependency_pin_failed_warning)
[info, warning].each do |message|
expect(message).to include("react-on-rails-rsc@#{pin}")
expect(message).to include("react-on-rails-rsc/WebpackPlugin")
expect(message).to include("react-on-rails-rsc/RspackPlugin")
expect(message).not_to include("prerelease")
expect(message).not_to include("temporarily")
expect(message).not_to include("until stable")
end
end2. Yarn/npm install commands do not use The adjacent NOTE explicitly says to record Suggesting: yarn add --exact react-on-rails-rsc@19.0.5
# npm install --save-exact react-on-rails-rsc@19.0.5This prevents users following the yarn/npm variant from storing Not BlockingBoth issues above are polish — neither affects runtime behavior or the correctness of the promoted version pin. The core change (RC → stable) is correct, complete, and well-tested. Verdict: approved with the above suggestions noted for a quick fixup or follow-up. |
|
Late review-nit triage (head
Both behavior-preserving nits; not gating the release-gate stable pin. Resolving per the merge-endgame debounce rule (main is advancing with unrelated docs PRs every few minutes). |
Why
Stable
react-on-rails-rsc@19.0.5is now published on npmlatest(verified downstream: Pro RSC test suite + e2e green on19.0.5). Until now this repo pinned the prerelease19.0.5-rc.7as the default/publishedreact-on-rails-rscfor the v17 line — most importantly in thereact_on_rails:installgenerator, which is what end users actually receive. Shipping a final major (v17) whose headline RSC CSS FOUC fix depends on an RC is not acceptable.This flips every default/published pin from
19.0.5-rc.7→ stable19.0.5. The native RSC manifest CSS fix (record.csssiblings;.mjschunk support; href normalization) that resolves the'use client'FOUC (#3211) ships in19.0.5, so the FOUC floor is now a published stable release.Changes
react_on_rails/lib/generators/react_on_rails/js_dependency_manager.rb:RSC_PACKAGE_VERSION_PIN19.0.5-rc.7→19.0.5(the generator install pin → end users); comment reworded to stable framing; resolvedTODO(#3642)removed. Asserting spec updated.package.json+packages/react-on-rails-pro/package.json:react-on-rails-rscdevDependency19.0.5-rc.7→19.0.5; pnpm-overrides comment "published/default pin" string updated.pnpm-lock.yaml: regenerated (the19.0.5-rc.7entries →19.0.5).rspack-compatibility.md,create-without-ssr.md,upgrading-existing-pro-app.md):19.0.5-rc.7→19.0.5; "keep the exact RC pin until stable ships" guidance reworded to the stable pin.llms-full-pro.txtregenerated to match.CHANGELOG.md:[Unreleased]entry; notes the native RSC CSS FOUC fix requires>= 19.0.5.Explicitly NOT touched (intentional)
package.jsonoverridereact_on_rails_pro_dummy>react-on-rails-rsc: "19.2.0-rc.1"andreact_on_rails_pro/spec/dummy/package.json— are left as-is (the coordinated 19.2 CI soak from Move Pro/RSC dummy to React 19.2 to soak-test the RSC path (#3865) #4072 / Support React 19.1/19.2: lift the RSC 19.0.x peer pin + feature-adoption tracking #3865).peerDependenciesreact-on-rails-rsc: "*"(tightening is Pin react-on-rails-rsc to an explicit version range in packages/react-on-rails-pro (currently "*") #3965) and the node-renderer peer-support files (recommendedMinbump is chore(pro): raise RSC peer recommendedMin to the stable react-on-rails-rsc release once 19.0.5-rc.6 is promoted #3632) are out of scope here.Validation (local, all green)
rubocopon the generator: no offenses. Generator specs (js_dependency_manager_spec.rb,install_generator_spec.rb): 608 examples, 0 failures (run with the gem Gemfile per AGENTS.md).pnpm run type-check(9 projects),pnpm run lint,prettier --check: clean.script/check-docs-sidebar✓;generate-llms-full.mjs --check✓ (491 KiB, well under the 2048 KiB split threshold).19.0.5-rc.7entries remain; the five19.2.0-rc.1entries unchanged.Codex Decision Log
codex review//simplifynot run for this diff.npm install) resolves the stable pin.Fixes #3634
Note
Low Risk
Mechanical version and documentation updates with no runtime logic changes; main risk is CI/npm resolving the new stable pin correctly.
Overview
Replaces the default
react-on-rails-rsc@19.0.5-rc.7prerelease pin with stable19.0.5everywhere new RSC apps and this repo are expected to resolve that package—so the v17 RSC CSS FOUC fix floor is a published release, not an RC.Generator & workspace:
RSC_PACKAGE_VERSION_PINinjs_dependency_manager.rbis now19.0.5(RC TODO removed). Install/info and failure warnings use stable wording viarsc_package_version_prerelease?instead of always describing a temporary prerelease. Root and Propackage.jsondevDependencies andpnpm-lock.yamlmatch; pnpm override comments reference19.0.5as the published default.Docs & changelog: Pro RSC guides (
create-without-ssr,upgrading-existing-pro-app,rspack-compatibility), regeneratedllms-full-pro.txt, and[Unreleased]Changed note all tell users to install and record exactly19.0.5(no “wait for stable” RC language).Specs are updated for the new pin strings and stable messaging. React 19.2 soak pins (
19.2.0-rc.1) are unchanged.Reviewed by Cursor Bugbot for commit eed3206. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
react-on-rails-rsc@19.0.5pin (create-without-SSR, upgrading Pro apps, rspack compatibility, and troubleshooting).react-on-rails-rscfrom19.0.5-rc.7to19.0.5across the workspace, Pro package, and generator defaults.19.0.5behavior.