chore: merge main into solid-query-v6-pre, upgrade to solid v2 rc - #11174
chore: merge main into solid-query-v6-pre, upgrade to solid v2 rc#11174birkskyum merged 100 commits into
Conversation
…eries.test-d.tsx' (TanStack#10958)
…sx' (TanStack#10960) * test(solid-query/useQuery): move type-only test to 'useQuery.test-d.tsx' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…'TData' regression guard (TanStack#10961)
…ersByTimeAsync' in async 'mutateAsync' tests (TanStack#10966)
…Times' with 'toHaveBeenCalledWith' and 'toHaveBeenCalledTimes' (TanStack#10967)
…hydration (TanStack#10610) * fix(hydration): set dataUpdatedAt when pending query resolves before hydration * test(hydration): add cases for dataUpdatedAt when streamed query resolves before hydration * Add changeset --------- Co-authored-by: Fredrik Höglund <fredrik.hoglund@gmail.com>
ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…, array sources, and cleanup (TanStack#10979)
* chore: update pnpm to 11.9.0 * chore: document trust policy exclusions * chore: raise minimum release age --------- Co-authored-by: Dominik Dorfmeister 🔮 <office@dorfmeister.cc>
…TanStack#10985) Under TypeScript 5.4, `NoInfer<T>` can't match an inline object literal against the value branch of the `Updater` union in `setQueryData`, so it falls back to the function branch and reports the literal as excess properties (TS2353). TS >= 5.5 handles it correctly. This surfaces in the `test:types:ts54` legacy typecheck via the project reference chain (e.g. react-query-persist-client / react-query-devtools build query-core's test sources). It is normally masked by the Nx remote cache and only re-runs — and fails — when a dependent package's type inputs change, so it can land on `main` unnoticed. Annotate the value before passing it to `setQueryData` to sidestep the 5.4 limitation while preserving the assertions. Verified across TS 5.4–6.0. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…anStack#10722) Co-authored-by: Jonghyeon Ko <manudeli.ko@gmail.com>
…anStack#10984) Inlining a `select` on a query object passed to `useQueries` / `useSuspenseQueries` can't infer its `data` argument from the sibling `queryFn` and falls back to `unknown` — a known TypeScript limitation (TanStack#6556). Document the two workarounds (annotate the `select` parameter, or define the query with the `queryOptions` helper) in the React docs, and add type tests guarding the behavior. Scoped to React for an easier review; the other framework adapters can follow the same pattern in separate PRs. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…TanStack#10990) `isLoading` is a deprecated alias for `isPending && isFetching` and is scheduled for removal in the next major version. The overview example shows a standard (always-enabled) query, so `isPending` is the correct flag. All other framework overview docs (React, Vue, Angular, Lit, Preact) already use `isPending`. Note: `isLoading` is intentionally retained in disabling-queries guides where it is the right flag for disabled/lazy queries. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(svelte): replace deprecated isLoading with isPending in overview `isLoading` is a deprecated alias for `isPending && isFetching` and is scheduled for removal in the next major version. The overview example shows a standard (always-enabled) query, so `isPending` is the correct flag. All other framework overview docs (React, Vue, Angular, Lit, Preact) already use `isPending`. Note: `isLoading` is intentionally retained in disabling-queries guides where it is the right flag for disabled/lazy queries. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(preact): add missing polling guide The Polling guide existed for React, Vue, Solid, and Angular but was missing from the Preact docs. Added the ref stub and wired it into the nav config between Window Focus Refetching and Disabling Queries, matching the ordering used by all other frameworks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
docs: add Deno to install instructions
…ies with equal 'dataUpdatedAt' to follow the standard comparator contract (TanStack#10812)
… 'closePipWindow' so the auto-open createEffect does not reopen the window after a programmatic close (TanStack#10813)
… from 'position' to 'theme' (TanStack#10811)
… the target so a 'shadowDOMTarget' still receives its own '#_goober' style tag when 'document.head' already has one (TanStack#10815)
…ring (TanStack#10638) Safari has a known issue where overflow: hidden with border-radius doesn't work correctly without hardware acceleration. Adding transform: translateZ(0) forces GPU compositing which fixes the icon rendering issue. Fixes TanStack#10633
Currently there is a bug, which prevents proper rendering of the links if there are both MD & HTML syntax in the same line (see https://tanstack.com/query/latest/docs/framework/react/devtools), probably should be fixed in @tanstack/markdown. Not sure that the source code of this package is published? In the meantime, I just converted all links to html. Converting everything (logos) to markdown won't work because we need to set width/height, which can't be done in markdown
…rsByTimeAsync' and use 'queryKey' helper for infinite query tests (TanStack#10944)
ci: changeset release Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…tion consistently (TanStack#11091) Co-authored-by: Wonsuk Choi <sukvvon@gmail.com>
…Stack#11105) Co-authored-by: Wonsuk Choi <sukvvon@gmail.com>
…maining tests (TanStack#11093) Co-authored-by: Wonsuk Choi <sukvvon@gmail.com>
…TanStack#11121) test(angular-query): assert exact values instead of loose matchers
…alue assertions (TanStack#11122) test(lit-query): assert exact values instead of loose matchers
…act-value assertions (TanStack#11123) test({react,preact}-query): assert exact values instead of loose matchers
…anStack#11124) test(svelte-query): assert exact values instead of loose matchers
…y with a custom hash function (TanStack#11055) * Protect restored custom-hash queries in devtools Exercise the full dehydrate, hydrate, and query-row rendering path for a per-query custom queryKeyHashFn. This locks the queryHash lookup behavior introduced by TanStack#10750 and covers the persistence failure reported in TanStack#6958. Constraint: The runtime lookup fix already shipped in TanStack#10750 Rejected: Reapply queryCache.get changes | current main already contains the implementation Confidence: high Scope-risk: narrow Tested: query-devtools 246 tests; ESLint; TypeScript current; Prettier Related: TanStack#6958 * test(query-devtools/Devtools): use 'advanceTimersByTimeAsync' for consistency and remove redundant 'clear' * test(query-devtools/Devtools): move custom-hash hydration test to the end of 'query list' * test(query-devtools/Devtools): align custom-hash test title with the 'when X' convention --------- Co-authored-by: Wonsuk Choi <sukvvon@gmail.com>
…e assertion (TanStack#11126) * test(svelte-query/createQuery): assert exact queryKey instead of loose 'toBeDefined' * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…ending test by keeping 'queryFn' in-flight (TanStack#10910) * test(react-query/useQuery.promise): unskip 'cancelQueries' while suspending test by keeping 'queryFn' in-flight * test(react-query/useQuery.promise): clarify why 'sleep' is extended in cancel-while-suspending test
… 'pnpm' equivalents (TanStack#11095) docs(CONTRIBUTING): replace 'npm run test' and 'npx nx' command with 'pnpm' equivalents
…amples (TanStack#11090) * docs(angular-query): fix three broken examples in the guides * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: use the dynamic README header endpoint * docs: add README header banners to the framework adapter packages
…nStack#11156) * docs(react-query/useQuery): document 'throwOnError' default and its absence in suspense hooks * docs(react-query/useQuery): use framework-agnostic wording for suspense throwOnError note * docs(react-query/useQuery): remove inaccurate suspense-mode throwOnError note
…to rc - Bump solid-js, @solidjs/web, @solidjs/signals and babel-preset-solid 2.0.0-beta.33 -> ^2.0.0-rc.0 across the solid packages, the solid-vite integration and the solid examples, switching these from exact pins to carets so the rc line is picked up as it moves - Rename vite-plugin-solid -> @solidjs/vite-plugin ^3.0.0-next.27 (the version published under both names) in every manifest, vite config and the hydration test fixture; packages/query-devtools stays on vite-plugin-solid ^2.11.6 since it is still on solid 1.x - Drop the now-redundant `-i vite-plugin-solid` sherif ignore, since the dependency no longer resolves to more than one version - Raise the solid-query peer floor to >=2.0.0-rc.0 <3.0.0; the broader >=2.0.0-beta.0 floors on solid-query-devtools and solid-query-persist-client are left as they are - Switch the changesets prerelease tag from beta to rc, and set the solid package versions to the 6.0.0-rc sentinel so the next `changeset version` lands on 6.0.0-rc.0 rather than continuing the beta counter into 6.0.0-rc.9 - No source changes were needed; solid-query, solid-query-devtools and solid-query-persist-client pass unchanged (336 tests, no type errors), as do the solid-vite integration and solid example vite builds Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Conflicts were all in the solid packages, examples and workspace config. Resolved as follows: - examples/solid/*/package.json: kept the v6 / solid 2 side (solid-js and @solidjs/web at ^2.0.0-rc.0, @tanstack/solid-query* on the 6.0.0 line), but took main's newer ^5.101.4 for the 5.x packages that are not part of the v6 line (query-async-storage-persister, eslint-plugin-query) - packages/solid-query*/package.json: kept the 6.0.0-rc version sentinel over main's 5.101.4 - packages/solid-query*/CHANGELOG.md: kept both histories, 6.0.0-* above main's new 5.101.1-5.101.4 entries, which keeps them in descending version order ahead of the shared 5.101.0 tail - solid-query useMutation.test.tsx: kept our rewrite of the retry test; the surrounding assertions require mutationKey and `data2`, which only our mutationFn produces. Main's variant is the solid 1 version of the test that this branch had already replaced - solid-query-devtools devtools.test.tsx: kept main's five new prop-change forwarding tests, ported to this branch's solid 2 pattern by flushing after each signal write, and kept our async declaration of the unmount test, whose body awaits. Also merged the two solid-js import statements the merge left duplicated - solid-query-devtools devtoolsPanel.test.tsx: kept our flush() and took main's stronger assertion that the default onClose is a no-op - pnpm-workspace.yaml: took main's expanded trustPolicyExclude and kept this branch's minimumReleaseAgeExclude block - pnpm-lock.yaml: regenerated from the merged manifests Verified on the merged tree: test:lib, test:types, test:build and test:eslint pass for all three solid packages (369 tests, no type errors), sherif and knip are clean, and the solid-vite integration and solid basic example still build. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Brings in the squash-merged TanStack#11173, which landed the solid v2 rc upgrade upstream. Two conflicts: - examples/solid/simple/package.json: kept our ^5.101.4 for @tanstack/eslint-plugin-query. The base branch still has ^5.101.0 because it has not taken main yet, and that bump is part of the main merge this branch delivers - pnpm-lock.yaml: regenerated from the merged manifests Verified after the merge: test:lib, test:types, test:build and test:eslint pass for all three solid packages, sherif and knip are clean, and the 6.0.0-rc sentinel matches what upstream now carries. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
View your CI Pipeline Execution ↗ for commit 606d09d
☁️ Nx Cloud last updated this comment at |
|
@birkskyum we could probably merge this even if we dont do a release |
Brings in TanStack#11175, the release bot's version commit, which turned the 6.0.0-rc sentinel into the real 6.0.0-rc.0 across the solid packages. One conflict, in examples/solid/offline/package.json, where each side was right about different lines: - @tanstack/query-async-storage-persister: kept our ^5.101.4, which comes from main and is part of what this branch delivers - @tanstack/solid-query*: took the base branch's ^6.0.0-rc.0 over our now-stale ^6.0.0-beta.8 references Verified after the merge: the three solid packages are on 6.0.0-rc.0 with no stale beta.8 references anywhere, the changelogs stay in descending version order across the rc/beta/5.101 boundary, and test:lib, test:types, test:build, test:eslint, sherif and knip all pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7a980e1 to
9dbb8ca
Compare
… never starts The Test job failed post-merge with an EnvironmentTeardownError: mounting TanstackQueryDevtools(Panel) lazily imports the devtools UI, nothing in these synchronous tests awaits it, and on the slower CI agent the import was still in flight when vitest tore the environment down. Locally the import loses the race a different way: the UI chain pulls in @solid-primitives/transition-group, Solid 1 code that no longer resolves under this Solid 2 setup, surfacing as unhandled rejections. These tests only assert what the wrapper forwards to the instance, and the container element the style tests query is rendered by the wrapper itself, so mount() (and unmount(), which throws when nothing was really mounted) are stubbed in beforeEach. Rendered roots are now disposed via an explicit cleanup() before vi.restoreAllMocks(), because disposal calls unmount() and testing-library's automatic cleanup would otherwise run after the stub was already restored. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Brings
maininto the v6 prerelease branch and moves the branch onto the Solid 2.0 RC.Two commits: the Solid RC upgrade, then the
mainmerge.Solid RC, with carets
solid-js,@solidjs/web,@solidjs/signalsandbabel-preset-solidgo from the pinned2.0.0-beta.33to^2.0.0-rc.0across the three solid packages, thesolid-viteintegration and the solid examples — also flipping these from exact pins to carets so the rc line is tracked as it moves.packages/query-devtoolsis untouched; it is still on Solid 1.x.@tanstack/solid-query's peer floor moves to>=2.0.0-rc.0 <3.0.0. The deliberately broader>=2.0.0-beta.0 <3.0.0floors on the other two are left alone, matching how previous bumps handled them.vite-plugin-solid→@solidjs/vite-pluginRenamed at
^3.0.0-next.27— the version published under both names, so a clean cut-over. Covers every manifest, every vite config and the hydration test fixture.packages/query-devtoolsstays onvite-plugin-solid@^2.11.6; the scoped package has no 2.x line. The-i vite-plugin-solidsherif ignore is dropped, since the dependency no longer resolves to more than one version.Prerelease tag →
rc, landing on6.0.0-rc.0.changeset/pre.jsonmoves to"tag": "rc". No workflow change needed —solid-query-v6-prestill matches the*-preglob inrelease.yml, which setsprerelease=trueand passes no--tag, sochangeset publishtakes the dist-tag from pre.json.Changesets derives the pre number as
(prerelease[1] ?? -1) + 1, so switching the tag alone would have continued the beta counter into6.0.0-rc.9. To land on6.0.0-rc.0, the solid packages carry the sentinel version6.0.0-rc— valid semver with no numeric prerelease part, so the pre number resolves to0whilesemver.inc("6.0.0-rc", "patch")still yields6.0.0. That sentinel only lives here until the nextci: Version Packagescommit rewrites it; nothing publishes from it, since the release action runsversionbeforepublish.Verified by running the real
changeset versionagainst a throwaway copy: all three solid packages land on6.0.0-rc.0, no other package is touched, and the changelog entry lands directly above## 6.0.0-beta.8.Merge conflict resolutions
All conflicts were in the solid packages, examples and workspace config:
examples/solid/*/package.json— kept the v6 / Solid 2 side, but took main's newer^5.101.4for the 5.x packages that are not part of the v6 line (query-async-storage-persister,eslint-plugin-query)packages/solid-query*/package.json— kept the6.0.0-rcsentinel over main's5.101.4packages/solid-query*/CHANGELOG.md— kept both histories,6.0.0-*above main's new5.101.1–5.101.4entries, leaving them in descending version order ahead of the shared5.101.0tailsolid-query/useMutation.test.tsx— kept our rewrite of the retry test. The surrounding assertions requiremutationKeyanddata2, which only ourmutationFnproduces; main's variant is the Solid 1 version of the test that this branch had already replacedsolid-query-devtools/devtools.test.tsx— kept main's five new prop-change forwarding tests from test(solid-query-devtools/devtools): add tests for forwarding option changes after mount #11021, ported to this branch's Solid 2 pattern by flushing after each signal write, and kept ourasyncdeclaration of the unmount test, whose body awaits. Also merged the twosolid-jsimport statements the merge left duplicatedsolid-query-devtools/devtoolsPanel.test.tsx— kept ourflush()and took main's stronger assertion from test(solid-query-devtools/devtoolsPanel): assert the default 'onClose' is a no-op instead of 'expect.any(Function)' #11030 that the defaultonCloseis a no-oppnpm-workspace.yaml— took main's expandedtrustPolicyExcludeand kept this branch'sminimumReleaseAgeExcludeblockpnpm-lock.yaml— regenerated from the merged manifestsKnown peer warning
pnpm installreports an unmet peer for@solidjs/vite-plugin@3.0.0-next.27, which declaressolid-js/@solidjs/webas>=2.0.0-beta.32 <2.0.0-experimental.0. Prerelease identifiers sort alphabetically, so the real ordering isbeta.32 < experimental.0 < rc.0— the upper bound excludes the RC by accident. Metadata only, and warning only (nostrict-peer-dependencieshere, and pnpm defaults it tofalse). It should clear when Solid ships a plugin release with a corrected bound.Verification
On the merged tree, for all three solid packages:
test:lib— 369 tests pass, no type errors (devtools goes 28 → 33 with main's ported tests)test:types,test:build,test:eslint— passsherifandknip— cleanintegrations/solid-viteandexamples/solid/basicstill buildNo source changes were needed for the RC itself.
🤖 Generated with Claude Code