Skip to content

feat(react-data-query): upgrade tanstack query to v5 - #9563

Merged
n3ps merged 1 commit into
mainfrom
n3ps/react-query-5
Jul 22, 2026
Merged

feat(react-data-query): upgrade tanstack query to v5#9563
n3ps merged 1 commit into
mainfrom
n3ps/react-query-5

Conversation

@n3ps

@n3ps n3ps commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Upgrade @tanstack/query-core to v5 and update createUIQueryClient's invalidateQueries override to the v5 filters/options signature (parseFilterArgs was removed).

This unblocks clients from upgrading TanStack Query to v5

(Previously Extension was held back due to React v17, no longer applicable)

Explanation

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

High Risk
Major dependency upgrade with documented breaking changes to query client invalidation and infinite-query configuration; all consumers must migrate TanStack APIs in lockstep.

Overview
BREAKING: Bumps @tanstack/query-core and @tanstack/react-query from v4 to ^5.62.16 so downstream apps can adopt TanStack Query v5.

createUIQueryClient is updated for v5: the custom invalidateQueries wrapper now takes (filters?, options?) only (v4’s parseFilterArgs overloads are removed), and pageParam is passed to the messenger with an explicit Json cast. The useInfiniteQuery wrapper’s generics align with v5 (InfiniteData default, TPageParam, updated UseInfiniteQueryOptions arity).

Tests and changelog call out consumer migrations: gcTime instead of cacheTime, and initialPageParam (plus pagination callbacks) for infinite queries.

Reviewed by Cursor Bugbot for commit 25bb0b9. Bugbot is set up for automated code reviews on this repo. Configure here.

cursor Bot pushed a commit that referenced this pull request Jul 20, 2026
Co-authored-by: Francis Nepomuceno <n3ps@users.noreply.github.com>
@socket-security

socket-security Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​tanstack/​query-core@​5.90.20 ⏵ 5.101.297 +110075 +197100
Updated@​tanstack/​react-query@​4.43.0 ⏵ 5.101.29910087 -197100

View full report

@n3ps n3ps changed the title feat(react-data-query): upgrade TanStack Query to v5 feat(react-data-query): upgrade tanstack query to v5 Jul 20, 2026
cursor Bot pushed a commit that referenced this pull request Jul 20, 2026
Co-authored-by: Francis Nepomuceno <n3ps@users.noreply.github.com>
@cursor
cursor Bot force-pushed the n3ps/react-query-5 branch 2 times, most recently from 3f8e45a to dc3ab8b Compare July 20, 2026 20:52
@n3ps
n3ps marked this pull request as ready for review July 20, 2026 20:59
@n3ps
n3ps requested a review from a team as a code owner July 20, 2026 20:59
@n3ps
n3ps temporarily deployed to default-branch July 20, 2026 20:59 — with GitHub Actions Inactive
@mcmire

mcmire commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

@n3ps Looks generally good. Can we see PRs that integrate a preview build of react-data-query into the clients to confirm that there are no other changes needed here? See: https://github.com/MetaMask/core/blob/main/docs/processes/breaking-changes.md#3-prepare-upgrade-prs-for-dependents. (Looks like you might have an extension PR you can at least adapt? MetaMask/metamask-extension#44413. Just missing a mobile PR.)

@n3ps

n3ps commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

@n3ps Looks generally good. Can we see PRs that integrate a preview build of react-data-query into the clients to confirm that there are no other changes needed here? See: https://github.com/MetaMask/core/blob/main/docs/processes/breaking-changes.md#3-prepare-upgrade-prs-for-dependents. (Looks like you might have an extension PR you can at least adapt? MetaMask/metamask-extension#44413. Just missing a mobile PR.)

@mcmire
Correct that's the one for Extension. It will be simplified once this core update is in
For Mobile here's how it can look like: MetaMask/metamask-mobile#33549

@mcmire

mcmire commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

@n3ps Ah thanks. To be clear, can you generate preview builds on this PR, upgrade your PRs for both clients to use the preview build for @metamask/react-data-query and test it that way? That should be a little more realistic than trying to patch @metamask/react-data-query directly.

@n3ps

n3ps commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-previews

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@7.5.5-preview-dc3ab8b12
@metamask-previews/accounts-controller@39.0.5-preview-dc3ab8b12
@metamask-previews/address-book-controller@7.1.2-preview-dc3ab8b12
@metamask-previews/ai-controllers@0.8.0-preview-dc3ab8b12
@metamask-previews/analytics-controller@1.2.1-preview-dc3ab8b12
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-dc3ab8b12
@metamask-previews/announcement-controller@8.1.0-preview-dc3ab8b12
@metamask-previews/app-metadata-controller@2.0.1-preview-dc3ab8b12
@metamask-previews/approval-controller@9.0.2-preview-dc3ab8b12
@metamask-previews/assets-controller@11.0.0-preview-dc3ab8b12
@metamask-previews/assets-controllers@109.4.1-preview-dc3ab8b12
@metamask-previews/authenticated-user-storage@3.0.1-preview-dc3ab8b12
@metamask-previews/base-controller@9.1.0-preview-dc3ab8b12
@metamask-previews/base-data-service@0.1.3-preview-dc3ab8b12
@metamask-previews/bitcoin-regtest-up@1.0.0-preview-dc3ab8b12
@metamask-previews/bridge-controller@77.6.0-preview-dc3ab8b12
@metamask-previews/bridge-status-controller@74.3.0-preview-dc3ab8b12
@metamask-previews/build-utils@3.0.4-preview-dc3ab8b12
@metamask-previews/chain-agnostic-permission@1.7.0-preview-dc3ab8b12
@metamask-previews/chomp-api-service@3.1.0-preview-dc3ab8b12
@metamask-previews/claims-controller@0.5.3-preview-dc3ab8b12
@metamask-previews/client-controller@1.0.1-preview-dc3ab8b12
@metamask-previews/client-utils@1.2.0-preview-dc3ab8b12
@metamask-previews/compliance-controller@2.1.0-preview-dc3ab8b12
@metamask-previews/composable-controller@12.0.1-preview-dc3ab8b12
@metamask-previews/config-registry-controller@0.4.1-preview-dc3ab8b12
@metamask-previews/connectivity-controller@0.3.0-preview-dc3ab8b12
@metamask-previews/controller-utils@12.3.0-preview-dc3ab8b12
@metamask-previews/core-backend@6.5.0-preview-dc3ab8b12
@metamask-previews/delegation-controller@3.0.2-preview-dc3ab8b12
@metamask-previews/earn-controller@12.2.2-preview-dc3ab8b12
@metamask-previews/eip-5792-middleware@3.0.5-preview-dc3ab8b12
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-dc3ab8b12
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-dc3ab8b12
@metamask-previews/ens-controller@19.1.5-preview-dc3ab8b12
@metamask-previews/eth-block-tracker@15.0.1-preview-dc3ab8b12
@metamask-previews/eth-json-rpc-middleware@23.1.3-preview-dc3ab8b12
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-dc3ab8b12
@metamask-previews/foundryup@1.0.1-preview-dc3ab8b12
@metamask-previews/gas-fee-controller@26.2.4-preview-dc3ab8b12
@metamask-previews/gator-permissions-controller@4.2.3-preview-dc3ab8b12
@metamask-previews/geolocation-controller@0.1.3-preview-dc3ab8b12
@metamask-previews/java-tron-up@1.0.0-preview-dc3ab8b12
@metamask-previews/json-rpc-engine@10.5.0-preview-dc3ab8b12
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-dc3ab8b12
@metamask-previews/keyring-controller@27.1.0-preview-dc3ab8b12
@metamask-previews/local-node-utils@1.0.0-preview-dc3ab8b12
@metamask-previews/logging-controller@8.0.2-preview-dc3ab8b12
@metamask-previews/message-manager@14.1.2-preview-dc3ab8b12
@metamask-previews/messenger@2.0.0-preview-dc3ab8b12
@metamask-previews/messenger-cli@0.2.0-preview-dc3ab8b12
@metamask-previews/money-account-api-data-service@0.1.0-preview-dc3ab8b12
@metamask-previews/money-account-balance-service@2.2.0-preview-dc3ab8b12
@metamask-previews/money-account-controller@0.3.3-preview-dc3ab8b12
@metamask-previews/money-account-upgrade-controller@2.2.1-preview-dc3ab8b12
@metamask-previews/multichain-account-service@13.0.0-preview-dc3ab8b12
@metamask-previews/multichain-api-middleware@4.0.1-preview-dc3ab8b12
@metamask-previews/multichain-network-controller@3.2.1-preview-dc3ab8b12
@metamask-previews/multichain-transactions-controller@7.1.1-preview-dc3ab8b12
@metamask-previews/name-controller@9.1.2-preview-dc3ab8b12
@metamask-previews/network-connection-banner-controller@0.1.0-preview-dc3ab8b12
@metamask-previews/network-controller@34.0.0-preview-dc3ab8b12
@metamask-previews/network-enablement-controller@5.6.0-preview-dc3ab8b12
@metamask-previews/notification-services-controller@25.0.0-preview-dc3ab8b12
@metamask-previews/passkey-controller@2.1.0-preview-dc3ab8b12
@metamask-previews/permission-controller@13.1.1-preview-dc3ab8b12
@metamask-previews/permission-log-controller@5.1.0-preview-dc3ab8b12
@metamask-previews/perps-controller@9.2.1-preview-dc3ab8b12
@metamask-previews/phishing-controller@17.3.0-preview-dc3ab8b12
@metamask-previews/platform-api-docs@0.0.0-preview-dc3ab8b12
@metamask-previews/polling-controller@16.0.8-preview-dc3ab8b12
@metamask-previews/preferences-controller@23.1.0-preview-dc3ab8b12
@metamask-previews/profile-metrics-controller@4.0.2-preview-dc3ab8b12
@metamask-previews/profile-sync-controller@28.3.0-preview-dc3ab8b12
@metamask-previews/ramps-controller@17.0.0-preview-dc3ab8b12
@metamask-previews/rate-limit-controller@7.0.1-preview-dc3ab8b12
@metamask-previews/react-data-query@0.2.2-preview-dc3ab8b12
@metamask-previews/remote-feature-flag-controller@4.2.2-preview-dc3ab8b12
@metamask-previews/sample-controllers@5.0.3-preview-dc3ab8b12
@metamask-previews/seedless-onboarding-controller@10.0.3-preview-dc3ab8b12
@metamask-previews/selected-network-controller@26.1.5-preview-dc3ab8b12
@metamask-previews/sentinel-api-service@1.0.0-preview-dc3ab8b12
@metamask-previews/shield-controller@5.1.3-preview-dc3ab8b12
@metamask-previews/signature-controller@39.2.7-preview-dc3ab8b12
@metamask-previews/smart-transactions-controller@25.0.1-preview-dc3ab8b12
@metamask-previews/snap-account-service@2.0.0-preview-dc3ab8b12
@metamask-previews/social-controllers@2.5.0-preview-dc3ab8b12
@metamask-previews/solana-test-validator-up@1.0.0-preview-dc3ab8b12
@metamask-previews/stellar-quickstart-up@0.0.0-preview-dc3ab8b12
@metamask-previews/storage-service@1.0.2-preview-dc3ab8b12
@metamask-previews/subscription-controller@6.2.1-preview-dc3ab8b12
@metamask-previews/transaction-controller@69.0.0-preview-dc3ab8b12
@metamask-previews/transaction-pay-controller@25.0.0-preview-dc3ab8b12
@metamask-previews/user-operation-controller@41.2.7-preview-dc3ab8b12
@metamask-previews/wallet@7.0.1-preview-dc3ab8b12
@metamask-previews/wallet-cli@0.0.0-preview-dc3ab8b12

@n3ps

n3ps commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

@mcmire Done — preview builds are published from this PR, and both client upgrade PRs now consume @metamask-previews/react-data-query@0.2.2-preview-dc3ab8b12 via previewBuilds (instead of patching @metamask/react-data-query directly):

Smoke-tested with unit tests on both clients after the install remap.

@mcmire mcmire left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of comments below.

Comment thread packages/react-data-query/src/createUIQueryClient.ts Outdated
Comment thread packages/react-data-query/src/hooks.ts Outdated
@cursor
cursor Bot force-pushed the n3ps/react-query-5 branch 2 times, most recently from a1f362b to 7d90020 Compare July 22, 2026 20:01
@n3ps
n3ps requested a review from mcmire July 22, 2026 20:11
Upgrade @tanstack/query-core and @tanstack/react-query to v5 and update
createUIQueryClient's invalidateQueries override to the v5 filters/options
signature (parseFilterArgs was removed). This is a breaking change for
consumers still on TanStack Query v4.

Co-authored-by: Francis Nepomuceno <n3ps@users.noreply.github.com>
@cursor
cursor Bot force-pushed the n3ps/react-query-5 branch from 7d90020 to 25bb0b9 Compare July 22, 2026 20:13

@mcmire mcmire left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@n3ps
n3ps added this pull request to the merge queue Jul 22, 2026
Merged via the queue into main with commit e5ec236 Jul 22, 2026
427 checks passed
@n3ps
n3ps deleted the n3ps/react-query-5 branch July 22, 2026 21:44
cryptodev-2s pushed a commit that referenced this pull request Aug 3, 2026
A recent PR updated this package to v5 in one package (#9563). This PR
updates to v5 in all remaining packages.
cryptodev-2s pushed a commit that referenced this pull request Aug 4, 2026
A recent PR updated this package to v5 in one package (#9563). This PR
updates to v5 in all remaining packages.
cryptodev-2s pushed a commit that referenced this pull request Aug 4, 2026
A recent PR updated this package to v5 in one package (#9563). This PR
updates to v5 in all remaining packages.
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.

3 participants