Skip to content

Conversation

@lachlancollins
Copy link
Member

@lachlancollins lachlancollins commented Sep 22, 2025

🎯 Changes

See also: TanStack/config#218 and TanStack/virtual#946

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm 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

    • Adopted Changesets for automated versioning, publishing, and compact changelogs; removed legacy publish flow and scripts; added standard version/publish scripts.
    • Updated CI workflows with newer actions, deeper checkout, and stricter release conditions (official repo only); adjusted workflow permissions.
    • Expanded tooling ignore list to include an additional internal config package.
  • Documentation

    • Added a pull request template with sections for changes, checklist, and release impact.

@nx-cloud
Copy link

nx-cloud bot commented Sep 22, 2025

View your CI Pipeline Execution ↗ for commit 42bd8c7

Command Status Duration Result
nx affected --targets=test:format,test:sherif,t... ✅ Succeeded 14m 35s View ↗
nx run-many --targets=build --exclude=examples/** ✅ Succeeded 29s View ↗

☁️ Nx Cloud last updated this comment at 2025-09-22 12:20:34 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Sep 22, 2025

More templates

@tanstack/angular-table

npm i https://pkg.pr.new/@tanstack/angular-table@6100

@tanstack/lit-table

npm i https://pkg.pr.new/@tanstack/lit-table@6100

@tanstack/match-sorter-utils

npm i https://pkg.pr.new/@tanstack/match-sorter-utils@6100

@tanstack/qwik-table

npm i https://pkg.pr.new/@tanstack/qwik-table@6100

@tanstack/react-table

npm i https://pkg.pr.new/@tanstack/react-table@6100

@tanstack/react-table-devtools

npm i https://pkg.pr.new/@tanstack/react-table-devtools@6100

@tanstack/solid-table

npm i https://pkg.pr.new/@tanstack/solid-table@6100

@tanstack/svelte-table

npm i https://pkg.pr.new/@tanstack/svelte-table@6100

@tanstack/table-core

npm i https://pkg.pr.new/@tanstack/table-core@6100

@tanstack/vue-table

npm i https://pkg.pr.new/@tanstack/vue-table@6100

commit: 42bd8c7

@coderabbitai
Copy link

coderabbitai bot commented Sep 22, 2025

Walkthrough

Adds Changesets-based versioning and publishing, updates CI workflows to use actions/checkout v5 and a Changesets release job, introduces a PR template, removes legacy publish scripts and related config/types, adjusts Rollup config to compute its own rootDir, and extends knip ignored deps.

Changes

Cohort / File(s) Summary
Adopt Changesets
\.changeset/config.json, package.json
Adds .changeset/config.json; adds @changesets/cli and changelog plugin; adds scripts changeset, changeset:version, changeset:publish; removes legacy cipublish.
CI Workflow Updates
.github/workflows/autofix.yml, .github/workflows/pr.yml
Bumps actions/checkout to v5.0.0; adds fetch-depth: 0 in autofix; updates nrwl/nx-set-shas to v4.3.3; renames PR workflow to PR.
Release Flow Migration
.github/workflows/release.yml
Removes manual tag input and legacy publish steps; adds pull-requests: write permission; renames job to release; restricts run to owner TanStack; uses changesets/action@v1.5.3 with GITHUB_TOKEN and NPM_TOKEN.
Legacy Script & Types Removal
scripts/publish.js, scripts/config.js, scripts/types.d.ts
Deletes legacy publish.js, package/branch/rootDir exports, and related type definitions.
Build Config Adjustment
scripts/getRollupConfig.js
Removes import of rootDir from deleted config; inlines __dirname and computes local rootDir via fileURLToPath.
Contributor Experience
.github/pull_request_template.md
Adds PR template with sections for changes, checklist, and release impact.
Tooling Config
knip.json
Adds @tanstack/config to ignoreDependencies.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant GH as GitHub Actions
  participant CS as changesets/action
  participant NPM as npm Registry

  Dev->>GH: Push branch / open PR
  GH->>GH: Run PR workflows (checkout v5, tests)
  Note over GH: PR workflows don't publish

  Dev->>GH: Merge to main
  GH->>CS: Run Changesets action (version & publish)
  CS->>NPM: Publish packages (public)
  CS->>GH: Create tags/releases and PRs for version changes
Loading
sequenceDiagram
  participant Old as Old Flow
  participant New as New Flow

  rect rgba(230,230,230,0.3)
  note over Old: Removed legacy flow
  Old->>Old: `scripts/publish.js` + custom config/types
  end

  rect rgba(200,240,210,0.3)
  note over New: Changesets-based flow
  New->>New: `.changeset/config.json` + `package.json` scripts
  New->>New: `changesets/action@v1.5.3` in release workflow
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

In burrows of code I nudge and hop,
Old scripts sleep while changesets pop.
CI learns to check out swift and new,
Tags and publishes—clean and true.
I nibble bugs, then nap with a carrot. 🥕

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 "ci: introduce changesets" is concise, uses a conventional scope, and accurately reflects the primary change in the PR (adding changesets configuration, related package scripts, and CI/publish workflow updates), so it clearly communicates the main intent to reviewers scanning history.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch changesets

📜 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 eeea22b and 42bd8c7.

📒 Files selected for processing (2)
  • knip.json (1 hunks)
  • scripts/getRollupConfig.js (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/getRollupConfig.js
⏰ 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 (2)
knip.json (2)

3-3: No change needed — knip v5 confirmed

Root package.json declares knip ^5.23.2 and no workspace packages declare knip; keeping the v5 schema in knip.json is correct.


3-3: Leave the @tanstack/config ignore at the repo root — only the root package.json declares it.

All package.json files checked: only ./package.json contains @tanstack/config (^0.13.0), so moving the knip.json ignore into workspace blocks is unnecessary.


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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
.github/pull_request_template.md (1)

10-13: Make “Release Impact” mutually exclusive and actionable.

It’s easy to tick both boxes accidentally. Add guidance to select exactly one, and hint at the command for generating a changeset when needed.

 ## 🚀 Release Impact

-- [ ] This change affects published code, and I have generated a [changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
-- [ ] This change is docs/CI/dev-only (no release).
+- [ ] This change affects published code (select this if any package output or public types change).
+  - If selected, run: `pnpm changeset` and commit the generated changeset.
+- [ ] This change is docs/CI/dev-only (no release).
.github/workflows/autofix.yml (1)

21-23: Pin actions to a commit SHA for supply‑chain hardening.

Optional but recommended for third‑party actions (and checkout) to prevent tag drift.

-uses: actions/checkout@v5.0.0
+uses: actions/checkout@5f62d3cf… # v5.0.0 commit SHA
.github/workflows/release.yml (1)

17-18: Release flow via Changesets looks good; harden action pinning and consider setup-node for registry auth.

  • Pin changesets/action to a commit SHA (and optionally checkout) to avoid tag drift.
  • If tanstack/config setup doesn’t set the npm registry/auth, add setup-node with registry-url before publish.
-uses: actions/checkout@v5.0.0
+uses: actions/checkout@5f62d3cf… # v5.0.0 commit SHA

-uses: changesets/action@v1.5.3
+uses: changesets/action@8d2e8a4… # v1.5.3 commit SHA

Optionally (if not already handled inside tanstack/config setup):

      - name: Setup Tools
        uses: tanstack/config/.github/setup@main
+     - name: Setup Node for npm publish
+       uses: actions/setup-node@v4
+       with:
+         node-version: '20'
+         registry-url: 'https://registry.npmjs.org'

Also applies to: 20-22, 26-26, 38-47

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d538a90 and eeea22b.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (10)
  • .changeset/config.json (1 hunks)
  • .github/pull_request_template.md (1 hunks)
  • .github/workflows/autofix.yml (1 hunks)
  • .github/workflows/pr.yml (3 hunks)
  • .github/workflows/release.yml (2 hunks)
  • package.json (2 hunks)
  • scripts/config.js (0 hunks)
  • scripts/getRollupConfig.js (2 hunks)
  • scripts/publish.js (0 hunks)
  • scripts/types.d.ts (0 hunks)
💤 Files with no reviewable changes (3)
  • scripts/types.d.ts
  • scripts/publish.js
  • scripts/config.js
🧰 Additional context used
🪛 GitHub Actions: PR
scripts/getRollupConfig.js

[error] 16-16: Unused exports detected in Rollup config script.

package.json

[error] Unused devDependencies: '@tanstack/config'. Remove to fix.

🔇 Additional comments (6)
.github/workflows/autofix.yml (1)

21-23: Good upgrade to checkout v5 with full history.

scripts/getRollupConfig.js (1)

4-4: ESM dirname derivation is correct.

Using fileURLToPath(import.meta.url) is the right approach in ESM.

.changeset/config.json (1)

1-14: Config LGTM.

Base branch, changelog preset, and update strategy are appropriate for this repo.

package.json (2)

27-29: Scripts align with the new release flow.

The sequence for versioning (version → install to update lockfile → prettier) is sound.


49-83: Do not remove '@tanstack/config' blindly — it's referenced by GH Actions; either remove it after confirming it's unnecessary or teach knip to ignore it.

Occurrences: package.json (devDependencies) — package.json:62; .github/workflows/autofix.yml:25; .github/workflows/pr.yml:32,51; .github/workflows/release.yml:32; pnpm-lock.yaml entries.

.github/workflows/pr.yml (1)

1-1: Approve — PR workflow updates OK; Node ≥20 present and Nx workflow file exists.

  • node -v → v24.3.0 (satisfies checkout v5 Node≥20 requirement).
  • Found .nx/workflows/dynamic-changesets.yaml.
  • Runner image reported "unknown" in this check — if you use self-hosted runners, confirm they run Node ≥20.

@KevinVandy KevinVandy merged commit bb04a1e into main Sep 22, 2025
5 checks passed
@KevinVandy KevinVandy deleted the changesets branch September 22, 2025 13:23
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