Skip to content

ci: introduce changesets - #6100

Merged
KevinVandy merged 3 commits into
mainfrom
changesets
Sep 22, 2025
Merged

ci: introduce changesets#6100
KevinVandy merged 3 commits into
mainfrom
changesets

Conversation

@lachlancollins

@lachlancollinslachlancollins commented Sep 22, 2025

Copy link
Copy Markdown
Member

🎯 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

nx-cloudBot commented Sep 22, 2025

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 42bd8c7

CommandStatusDurationResult
nx affected --targets=test:format,test:sherif,t...✅ Succeeded14m 35sView ↗
nx run-many --targets=build --exclude=examples/**✅ Succeeded29sView ↗

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

@pkg-pr-new

pkg-pr-newBot commented Sep 22, 2025

Copy link
Copy Markdown
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

coderabbitaiBot commented Sep 22, 2025

Copy link
Copy Markdown
Contributor

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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe 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✅ PassedNo 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.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadscripts/getRollupConfig.js Outdated
@KevinVandy
KevinVandy merged commit bb04a1e into mainSep 22, 2025
5 checks passed
@KevinVandy
KevinVandy deleted the changesets branch September 22, 2025 13:23
@coderabbitaicoderabbitaiBot mentioned this pull request Nov 29, 2025
4 tasks
@coderabbitaicoderabbitaiBot mentioned this pull request Dec 6, 2025
4 tasks
@coderabbitaicoderabbitaiBot mentioned this pull request Jan 9, 2026
4 tasks
Sign up for freeto 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.

2 participants

@lachlancollins@KevinVandy