Test: add packaged Pro smokes for React 16 and 17 - #4652
Conversation
WalkthroughAdds a packed-package smoke test for React on Rails Pro against React 16.14.0 and 17.0.2. It installs isolated consumers, verifies non-RSC package resolution, bundles the Node entry with webpack, and executes SSR output. ChangesPacked React compatibility
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant pnpm
participant ConsumerProject
participant webpack
participant Node
pnpm->>ConsumerProject: Install packed packages with React 16 or React 17
ConsumerProject->>webpack: Build the Node-target server bundle
webpack-->>ConsumerProject: Return module graph and bundle
ConsumerProject->>Node: Execute the generated server bundle
Node-->>ConsumerProject: Return SSR output
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
Greptile SummaryThis PR adds packaged React compatibility smokes for the Pro package. The main changes are:
Confidence Score: 5/5This looks safe to merge after a small smoke-test hardening cleanup.
packages/react-on-rails-pro/scripts/packed-react-compatibility-smoke.mjs Important Files Changed
Reviews (1): Last reviewed commit: "Test packaged Pro compatibility on React..." | Re-trigger Greptile |
size-limit report 📦
|
ReviewOverviewThis adds Strengths
Concerns
Other notes
|
|
+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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3db219a728
ℹ️ 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".
Address-review summaryScan scope: full review history; no previous address-review cutoff. Mattered
Optional
Skipped
Deferred-work tracking: dropped as not worth tracking; the declined items are non-blocking test-harness policy choices with rationale recorded in their original threads. Next default scan starts after this comment. Say |
|
+ci-status |
|
+ci-run-hosted |
CI StatusHead SHA: Optimized hosted CI is enabled for this PR. |
Hosted CI RequestedTriggered 9 workflow(s) for View progress in the Actions tab. |
Independent QA — PASSExact head:
Findings: none. Confidence: high. Known limitation: Environment: macOS arm64, Node |
Review: Test: add packaged Pro smokes for React 16 and 17OverviewAdds Strengths
Issues / suggestions (posted inline)
None of these are correctness bugs in the assertions themselves — the verification logic (Node export resolution, dependency-tree/webpack-graph absence checks, SSR runtime output matching) looks correct and I didn't find false-positive/false-negative risks in it. The concerns above are about CI reliability/hermeticity and are worth considering before merge, but aren't blocking if the team is comfortable with the current tradeoffs (e.g., CI already has reliable registry access). SecurityNo concerns — this only installs public npm packages and locally-built tarballs in an isolated temp directory, with |
Address-review summaryScan scope: activity after the previous address-review summary at 2026-07-14T02:33:42Z. Mattered
Optional
Skipped
Deferred-work tracking: dropped as not worth tracking; each non-blocking design decision is recorded in its original thread. Next default scan starts after this comment. Say |
|
Review: Test: add packaged Pro smokes for React 16 and 17 (#4652) Overview Findings
Nothing here is a correctness blocker - the script's assertions themselves (module resolution, RSC absence, webpack graph, SSR runtime output) are well constructed. The main concern is scope: baking a two-version network install plus webpack build into the default test command for the package. |
QA evidence — exact final headHead: Fresh independent QA replayed the packaged compatibility path on the exact PR head:
Hosted checks and current-head review/audit gates remain separate merge requirements. |
|
+ci-status |
CI StatusHead SHA: Optimized hosted CI is enabled for this PR. |
|
+ci-run-hosted |
Hosted CI RequestedTriggered 9 workflow(s) for View progress in the Actions tab. |
Address-review summaryScan scope: review activity after 2026-07-14T02:39:44Z on head Mattered
Optional
Skipped
All review threads are resolved. Future default scans should start after this comment unless |
Current-head Codex reviewVerdict: clean — no accepted/actionable findings.
Review result: the smoke builds and packs current artifacts, installs isolated consumers, proves dependency/RSC isolation and Pro-to-core package identity, and executes bundled SSR without an identified correctness regression. |
Independent pre-merge audit
Exact head:
The documented registry dependence and unchanged aggregate-validator wrapper defect are non-blocking because the intended underlying checks, exact-head QA, and hosted workflows passed. The coordinator may merge under the batch's |
Final replayable QA evidenceThis record makes the already-completed exact-head QA and priority-finding disposition mechanically replayable for the completed-batch audit. |
Backports #4652 to the 17.0.0 release train with release-specific package metadata preserved.
…t-policy * origin/main: (33 commits) Release: add auditable accelerated RC async gates (#4669) Release: handle optional required-check metadata (#4685) Release: forward-port post-pull prerelease guard (#4680) Forward-port stable RSC 19.2.1 to main (#4672) Forward-port Pro license metadata to main (#4668) Docs: clarify local benchmark workflow (#4665) Fix Hacker News demo-fleet smoke path (#4664) Release: reuse verified ShakaPerf pre-run evidence (#4662) Release: require strict HEAD evidence before retry guidance (#4661) Fix: support React 18 non-RSC streaming (#4658) Docs: compare Next.js with Rails async-props streaming (#4651) Docs: add reusable demo fleet RC update prompt (#4649) CI: run Pro compatibility smokes in hosted tests (#4656) Fix ambiguous prerelease retries (#4654) Test: add packaged Pro smokes for React 16 and 17 (#4652) docs: clarify release version ownership and RSC promotion (#4650) [Pro] Keep react-on-rails-rsc out of non-RSC entry graphs (fixes React 18 builds on rc.9) (#4641) ci: make benchmark proof gates replayable (#4626) Test: keep React 19 coverage out of the React 18 lane (#4635) Redact prerender secrets and harden service checks (#4624) ... # Conflicts: # internal/contributor-info/release-train-runbook.md
…taller * origin/main: (33 commits) Release: add auditable accelerated RC async gates (#4669) Release: handle optional required-check metadata (#4685) Release: forward-port post-pull prerelease guard (#4680) Forward-port stable RSC 19.2.1 to main (#4672) Forward-port Pro license metadata to main (#4668) Docs: clarify local benchmark workflow (#4665) Fix Hacker News demo-fleet smoke path (#4664) Release: reuse verified ShakaPerf pre-run evidence (#4662) Release: require strict HEAD evidence before retry guidance (#4661) Fix: support React 18 non-RSC streaming (#4658) Docs: compare Next.js with Rails async-props streaming (#4651) Docs: add reusable demo fleet RC update prompt (#4649) CI: run Pro compatibility smokes in hosted tests (#4656) Fix ambiguous prerelease retries (#4654) Test: add packaged Pro smokes for React 16 and 17 (#4652) docs: clarify release version ownership and RSC promotion (#4650) [Pro] Keep react-on-rails-rsc out of non-RSC entry graphs (fixes React 18 builds on rc.9) (#4641) ci: make benchmark proof gates replayable (#4626) Test: keep React 19 coverage out of the React 18 lane (#4635) Redact prerender secrets and harden service checks (#4624) ...
Summary
React on Rails Pro releases now prove that plain, non-RSC server rendering still installs, bundles, and runs with React 16.14 and React 17.0. Each matrix case consumes packed core and Pro tarballs in an isolated project, selects the Pro Node export, confirms
react-on-rails-rscis absent from both the installed dependency tree and webpack module graph, then executes the generated SSR bundle.The compatibility smoke is part of the standard Pro package test command so future packaging or export regressions fail the normal Pro test lane.
Fixes #4644.
Validation
pnpm --filter react-on-rails-pro test— 620 existing tests passed; packed React 16.14.0 and 17.0.2 webpack/SSR smokes passed.pnpm run nps check-typescript— core, Pro, and Node renderer TypeScript checks passed.script/check-pro-license-headerspassed; all 857 in-scope Pro files have current headers.script/ci-changes-detector origin/mainselected the expected Pro lint, unit, dummy-app, Node-renderer, and benchmark lanes.Decision log
.agents/bin/validate --changedcould not complete because its unchanged Pro JavaScript step invokespnpm run nps testfrom the package directory, where the root-onlynpsscript is unavailable. The exact package test and workspace TypeScript gates above were run directly and passed.Merge qualification
mainbeta phase with release tracker Release gate: react_on_rails 17.0.0 #3823 indevelopmentmode; the standard merge qualification applies.auto_merge_when_gates_passfrom the active maintainer batch.edcdba5527db19e66423f6b20b9312e0065ee105.ready-for-hosted-cibecause packaged Pro compatibility needs remote installation/build/runtime confirmation.Confidence note:
.agents/bin/validate --changedwrapper remains unavailable because of the unchanged package-localnpslookup defect described above; every intended underlying gate was run directly and passed. Greptile final-head liveness is degraded as recorded above.