fireproof icon indicating copy to clipboard operation
fireproof copied to clipboard

chore: standardize React 19.1.x version constraints

Open jchris opened this issue 3 months ago β€’ 3 comments

Summary

  • Updates peer dependencies to use >=19.1.0 <19.2.0 constraint across all packages
  • Changes React/React DOM versions from caret to tilde ranges (~19.1.0)
  • Updates TypeScript type definitions to match tilde range pattern
  • Ensures consistent React 19.1.x usage and prevents accidental upgrades to 19.2.x

Test plan

  • [ ] Verify all packages build successfully
  • [ ] Check that React version constraints are enforced correctly
  • [ ] Ensure no breaking changes in dependent applications

πŸ€– Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Tightened React peer dependency to ~19.1.0 across packages.
    • Switched React, React DOM, and their type defs to tilde (~19.1.0) ranges for more consistent installs.
    • Updated dashboard and example apps to React 19.1.x and matching typings; tests/utilities aligned.
    • CI workflow gains an option to skip smoke tests during publish.

jchris avatar Oct 02 '25 02:10 jchris

Walkthrough

Pinned and tightened React-related dependency ranges to ~19.1.0 across multiple packages; changed several caret (^) specifiers to tilde (~) for react-dom and type packages; added a new skip_smoke input to the base action and gated start/smoke steps, and updated CI workflow to pass skip_smoke: 'true'.

Changes

Cohort / File(s) Summary of Changes
Peer React range narrowed
cloud/base/package.json, core/core/package.json, core/tests/package.json, use-fireproof/package.json, cloud/todo-app/package.json
peerDependencies.react tightened from >=18.0.0 (or similar) to ~19.1.0 (restricting to 19.1.x)
Tilde pin for React DOM and typings
cloud/3rd-party/package.json, cloud/todo-app/package.json, dashboard/package.json, examples/react-router/package.json
Replaced caret (^) ranges with tilde (~) for react-dom, @types/react, and @types/react-dom (targeting 19.1.x)
CI workflow input & guards
.github/workflows/ci-core-publish.yaml, actions/base/action.yaml
Added skip_smoke input to actions/base; conditionalized start-esm + npm, smoke Attempt 1, and smoke Attempt 2 to run only when skip_smoke != 'true'; CI workflow now passes skip_smoke: 'true' to the base action

Sequence Diagram(s)

sequenceDiagram
  participant CI as GitHub Actions Runner
  participant Base as actions/base
  participant Steps as Build/Smoke Steps

  CI->>Base: invoke action (inputs: skip_smoke: 'true')
  alt skip_smoke == 'true'
    Note right of Base #F3F6FF: start & smoke steps are skipped
    Base-->>CI: action completes without running start/smoke
  else skip_smoke != 'true'
    Base->>Steps: run start-esm + npm
    Steps-->>Base: start result
    Base->>Steps: run smoke Attempt 1
    alt smoke Attempt 1 fails
      Base->>Steps: run smoke Attempt 2
      Steps-->>Base: smoke Attempt 2 result
    end
    Base-->>CI: action completes with smoke status
  end

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • fireproof-storage/fireproof#1056 β€” overlaps with dependency edits in cloud/3rd-party/package.json (React/react-dom/@types), likely related or conflicting.

Pre-merge checks and finishing touches

βœ… Passed checks (3 passed)
Check name Status Explanation
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check βœ… Passed The title uses the chore prefix and focuses on standardizing React 19.1.x version constraints across packages, which aligns with the primary change. It is concise, specific, and clearly communicates the core dependency update without extraneous detail, enabling teammates to understand the main change at a glance.
Docstring Coverage βœ… Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
πŸ§ͺ Generate unit tests
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch jchris/react-version

πŸ“œ Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 834313dd06e02de659ea453ee8c7686cc5d0c8a5 and ab47c322c27d49dea484f6e61f65dc2766909873.

β›” Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
πŸ“’ Files selected for processing (5)
  • cloud/base/package.json (1 hunks)
  • cloud/todo-app/package.json (1 hunks)
  • core/core/package.json (1 hunks)
  • core/tests/package.json (1 hunks)
  • use-fireproof/package.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • cloud/todo-app/package.json
  • use-fireproof/package.json
⏰ 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). (2)
  • GitHub Check: compile ci core
  • GitHub Check: ci compile

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.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 02 '25 02:10 coderabbitai[bot]

released latest tag npm package from this branch

jchris avatar Oct 02 '25 03:10 jchris

that will never land in fp

mabels avatar Oct 02 '25 07:10 mabels