Skip to content

Conversation

@lachlancollins
Copy link
Member

@lachlancollins lachlancollins commented Nov 29, 2025

🎯 Changes

  • Replaces all-in-one @tanstack/config with individual packages
  • Removes @tanstack/publish-config (replaced by changesets)

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm run test:pr.

🚀 Release Impact

  • This change affects published code, and I have generated a changeset.
  • This change is docs/CI/dev-only (no release).

Summary by CodeRabbit

  • Chores
    • Replaced a consolidated tooling config with separate ESLint, Vite, and Typedoc dev configs and updated related tooling imports.
    • Adjusted build/tooling configuration across examples and packages; no functional or runtime changes for end users.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Nov 29, 2025

⚠️ No Changeset found

Latest commit: 7ef32ba

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 29, 2025

Walkthrough

Replaced the monolithic devDependency @tanstack/config with three focused packages and updated all import paths to the new package names across lint, vite, and typedoc-related configs and scripts.

Changes

Cohort / File(s) Change Summary
Dependency update
package.json
Removed @tanstack/config and added devDependencies: @tanstack/eslint-config (0.3.2), @tanstack/typedoc-config (0.2.1), @tanstack/vite-config (0.2.1).
ESLint config imports
eslint.config.js, examples/react/algolia/eslint.config.js, examples/react/basic-graphql-request/eslint.config.js, examples/react/basic/eslint.config.js, examples/react/shadow-dom/eslint.config.js
Updated import source for tanstackConfig from @tanstack/config/eslint@tanstack/eslint-config.
Vite config imports
packages/angular-query-experimental/vite.config.ts, packages/eslint-plugin-query/vite.config.ts, packages/vue-query-devtools/vite.config.ts
Updated import source for tanstackViteConfig / Options types from @tanstack/config/vite@tanstack/vite-config.
Typedoc script import
scripts/generateDocs.ts
Updated import source for generateReferenceDocs from @tanstack/config/typedoc@tanstack/typedoc-config.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Pay attention to package versions in package.json and confirm import specifiers match the new packages' exported symbols.
  • Verify TypeScript type import changes compile for the vite config files.

Suggested labels

package: angular-query-experimental, package: eslint-plugin-query, package: vue-query-devtools

Suggested reviewers

  • TkDodo

Poem

🐰 I swapped a giant config for three so fine,
ESLint, Vite, TypeDoc—each now on its line.
I hop through imports with a cheerful spin,
Modular carrots for the dev tree within! 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: removing @tanstack/publish-config and replacing the monolithic @tanstack/config package with individual packages.
Description check ✅ Passed The description includes all required sections with substantive content and correctly indicates this is a CI/dev-only change requiring no release changeset.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch tanstack-config

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0017c0a and 7ef32ba.

📒 Files selected for processing (9)
  • eslint.config.js (1 hunks)
  • examples/react/algolia/eslint.config.js (1 hunks)
  • examples/react/basic-graphql-request/eslint.config.js (1 hunks)
  • examples/react/basic/eslint.config.js (1 hunks)
  • examples/react/shadow-dom/eslint.config.js (1 hunks)
  • packages/angular-query-experimental/vite.config.ts (1 hunks)
  • packages/eslint-plugin-query/vite.config.ts (1 hunks)
  • packages/vue-query-devtools/vite.config.ts (1 hunks)
  • scripts/generateDocs.ts (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-19T03:18:18.303Z
Learnt from: oscartbeaumont
Repo: TanStack/query PR: 9564
File: packages/solid-query-devtools/src/production.tsx:2-3
Timestamp: 2025-08-19T03:18:18.303Z
Learning: In the solid-query-devtools package, the codebase uses a pattern of type-only default imports combined with typeof for component type annotations (e.g., `import type SolidQueryDevtoolsComp from './devtools'` followed by `typeof SolidQueryDevtoolsComp`). This pattern is consistently used across index.tsx and production.tsx files, and the maintainers prefer consistency over changing this approach.

Applied to files:

  • packages/angular-query-experimental/vite.config.ts
  • examples/react/algolia/eslint.config.js
  • packages/eslint-plugin-query/vite.config.ts
  • examples/react/basic-graphql-request/eslint.config.js
  • packages/vue-query-devtools/vite.config.ts
📚 Learning: 2025-09-02T17:57:33.184Z
Learnt from: TkDodo
Repo: TanStack/query PR: 9612
File: packages/query-async-storage-persister/src/asyncThrottle.ts:0-0
Timestamp: 2025-09-02T17:57:33.184Z
Learning: When importing from tanstack/query-core in other TanStack Query packages like query-async-storage-persister, a workspace dependency "tanstack/query-core": "workspace:*" needs to be added to the package.json.

Applied to files:

  • examples/react/basic/eslint.config.js
  • examples/react/shadow-dom/eslint.config.js
  • examples/react/algolia/eslint.config.js
  • packages/eslint-plugin-query/vite.config.ts
  • examples/react/basic-graphql-request/eslint.config.js
  • packages/vue-query-devtools/vite.config.ts
⏰ 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: Test
  • GitHub Check: Preview
🔇 Additional comments (9)
examples/react/shadow-dom/eslint.config.js (1)

1-9: Import path migration to @tanstack/eslint-config looks correct

Config usage is unchanged and should behave the same provided tanstackConfig is exported identically from the new package and the devDependency is wired up.

packages/angular-query-experimental/vite.config.ts (1)

6-108: Type source switch to @tanstack/vite-config is consistent with the PR

Using type { Options } from @tanstack/vite-config while keeping the local tanstackViteConfig implementation is sound; TS will enforce shape compatibility. Just make sure the Options export in @tanstack/vite-config stays aligned with this function’s expected fields (entry, srcDir, exclude, tsconfigPath, etc.).

eslint.config.js (1)

3-56: Root ESLint config now sourcing from @tanstack/eslint-config

Spreading tanstackConfig plus project-specific overrides is unchanged; swapping the module path should be transparent if the new package’s export matches the old one.

examples/react/basic-graphql-request/eslint.config.js (1)

1-9: Example ESLint config import updated consistently

The example now pulls tanstackConfig from @tanstack/eslint-config, matching the rest of the repo examples; usage is unchanged.

packages/eslint-plugin-query/vite.config.ts (1)

1-36: Vite config now reuses shared tanstackViteConfig helper

Switching tanstackViteConfig to come from @tanstack/vite-config keeps the existing options intact and should reduce duplication across packages.

examples/react/basic/eslint.config.js (1)

1-9: Basic example ESLint config matches new config package

The import path migration to @tanstack/eslint-config mirrors other examples; spreading tanstackConfig remains the same.

packages/vue-query-devtools/vite.config.ts (1)

1-26: Vue devtools Vite config correctly switched to @tanstack/vite-config

Reusing tanstackViteConfig from the dedicated package with the same options object keeps behavior consistent while centralizing config logic.

scripts/generateDocs.ts (1)

4-66: Docs generator now depends on @tanstack/typedoc-config

Switching generateReferenceDocs to the dedicated typedoc config package keeps the call site and options the same; runtime behavior should match the previous setup assuming the export is equivalent.

examples/react/algolia/eslint.config.js (1)

1-9: Import swap to @tanstack/eslint-config looks correct

This matches the PR’s goal (moving off @tanstack/config/eslint) and keeps the config shape the same (...tanstackConfig with the existing plugin configs). Just make sure the package is present in this example’s dependency graph and on the same version as other updated configs in the repo.


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

@nx-cloud
Copy link

nx-cloud bot commented Nov 29, 2025

View your CI Pipeline Execution ↗ for commit 7ef32ba

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 4m 24s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 24s View ↗

☁️ Nx Cloud last updated this comment at 2025-11-29 05:22:14 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 29, 2025

More templates

@tanstack/angular-query-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-experimental@9930

@tanstack/eslint-plugin-query

npm i https://pkg.pr.new/@tanstack/eslint-plugin-query@9930

@tanstack/query-async-storage-persister

npm i https://pkg.pr.new/@tanstack/query-async-storage-persister@9930

@tanstack/query-broadcast-client-experimental

npm i https://pkg.pr.new/@tanstack/query-broadcast-client-experimental@9930

@tanstack/query-core

npm i https://pkg.pr.new/@tanstack/query-core@9930

@tanstack/query-devtools

npm i https://pkg.pr.new/@tanstack/query-devtools@9930

@tanstack/query-persist-client-core

npm i https://pkg.pr.new/@tanstack/query-persist-client-core@9930

@tanstack/query-sync-storage-persister

npm i https://pkg.pr.new/@tanstack/query-sync-storage-persister@9930

@tanstack/react-query

npm i https://pkg.pr.new/@tanstack/react-query@9930

@tanstack/react-query-devtools

npm i https://pkg.pr.new/@tanstack/react-query-devtools@9930

@tanstack/react-query-next-experimental

npm i https://pkg.pr.new/@tanstack/react-query-next-experimental@9930

@tanstack/react-query-persist-client

npm i https://pkg.pr.new/@tanstack/react-query-persist-client@9930

@tanstack/solid-query

npm i https://pkg.pr.new/@tanstack/solid-query@9930

@tanstack/solid-query-devtools

npm i https://pkg.pr.new/@tanstack/solid-query-devtools@9930

@tanstack/solid-query-persist-client

npm i https://pkg.pr.new/@tanstack/solid-query-persist-client@9930

@tanstack/svelte-query

npm i https://pkg.pr.new/@tanstack/svelte-query@9930

@tanstack/svelte-query-devtools

npm i https://pkg.pr.new/@tanstack/svelte-query-devtools@9930

@tanstack/svelte-query-persist-client

npm i https://pkg.pr.new/@tanstack/svelte-query-persist-client@9930

@tanstack/vue-query

npm i https://pkg.pr.new/@tanstack/vue-query@9930

@tanstack/vue-query-devtools

npm i https://pkg.pr.new/@tanstack/vue-query-devtools@9930

commit: 7ef32ba

@github-actions
Copy link
Contributor

Sizes for commit 7ef32ba:

Branch Bundle Size
Main
This PR

@lachlancollins lachlancollins merged commit b7b452e into main Nov 29, 2025
7 checks passed
@lachlancollins lachlancollins deleted the tanstack-config branch November 29, 2025 05:22
@codecov
Copy link

codecov bot commented Nov 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 45.89%. Comparing base (73eb629) to head (7ef32ba).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #9930   +/-   ##
=======================================
  Coverage   45.89%   45.89%           
=======================================
  Files         200      200           
  Lines        8437     8437           
  Branches     1942     1938    -4     
=======================================
  Hits         3872     3872           
  Misses       4116     4116           
  Partials      449      449           
Components Coverage Δ
@tanstack/angular-query-experimental 93.85% <ø> (ø)
@tanstack/eslint-plugin-query 83.59% <ø> (ø)
@tanstack/query-async-storage-persister 43.85% <ø> (ø)
@tanstack/query-broadcast-client-experimental 24.39% <ø> (ø)
@tanstack/query-codemods 0.00% <ø> (ø)
@tanstack/query-core 97.39% <ø> (ø)
@tanstack/query-devtools 3.48% <ø> (ø)
@tanstack/query-persist-client-core 80.00% <ø> (ø)
@tanstack/query-sync-storage-persister 84.61% <ø> (ø)
@tanstack/query-test-utils 77.77% <ø> (ø)
@tanstack/react-query 96.01% <ø> (ø)
@tanstack/react-query-devtools 9.25% <ø> (ø)
@tanstack/react-query-next-experimental ∅ <ø> (∅)
@tanstack/react-query-persist-client 100.00% <ø> (ø)
@tanstack/solid-query 77.81% <ø> (ø)
@tanstack/solid-query-devtools 64.17% <ø> (ø)
@tanstack/solid-query-persist-client 100.00% <ø> (ø)
@tanstack/svelte-query ∅ <ø> (∅)
@tanstack/svelte-query-devtools ∅ <ø> (∅)
@tanstack/svelte-query-persist-client ∅ <ø> (∅)
@tanstack/vue-query 71.91% <ø> (ø)
@tanstack/vue-query-devtools ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants