Skip to content

chore(changesets): skip private packages when versioning - #601

Merged
thiagobrez merged 1 commit into
mainfrom
t3/exclude-examples-from-versioning
Oct 20, 2026
Merged

thiagobrez merged 1 commit into
mainfrom
t3/exclude-examples-from-versioning

Conversation

@thiagobrez

Copy link
Copy Markdown
Collaborator

Summary

The release PR (#572) bumps example-swiftpm and @bottom-tabs/example-shared, two private workspaces that aren't meant to be published. Changesets versions private packages by default, and updateInternalDependents: "always" patch-bumps them because they depend on react-native-bottom-tabs. The older example app only stayed out because it was listed in ignore.

This change skips every package marked "private": true, so future private workspaces won't need an ignore entry. The two existing ignore entries (docs and the example app) are private, so they're no longer needed.

 // .changeset/config.json
-  "ignore": [
-    "react-native-bottom-tabs-docs",
-    "react-native-bottom-tabs-example"
-  ],
+  "ignore": [],
+  "privatePackages": {
+    "version": false,
+    "tag": false
+  },

Evidence

Ran locally with @changesets/cli 2.30.0:

  • Before: changeset status lists 5 packages:
    patch: @bottom-tabs/expo-template 1.1.4, example-swiftpm 0.0.2, @bottom-tabs/example-shared 0.0.1
    minor: react-native-bottom-tabs 1.5.0, @bottom-tabs/react-navigation 1.5.0
    
    After: it lists only the 3 published packages:
    patch: @bottom-tabs/expo-template 1.1.4
    minor: react-native-bottom-tabs 1.5.0, @bottom-tabs/react-navigation 1.5.0
    
  • changeset version in a throwaway worktree changed only packages/{react-native-bottom-tabs,react-navigation,expo-template}/package.json and no private package. The GitHub changelog plugin was turned off for this run because it needs a token.

After merge, the release action regenerates #572 without the example packages.

Merge Danger

Door: two-way

Only release config changes. Reverting it restores the old behavior.

Blast Radius: release-tooling

Published packages are unaffected: expo-template isn't private, so it still releases. Changesets would reject the config if a published package depended on a skipped one, and that check passes.

🤖 Generated with Claude Code

Private workspaces like example-swiftpm and @bottom-tabs/example-shared
were getting version bumps and changelogs in the release PR because they
depend on react-native-bottom-tabs. Setting privatePackages.version to
false skips every private package, which also makes the existing ignore
entries redundant.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thiagobrez
thiagobrez merged commit 375f14c into main Oct 20, 2026
10 checks passed
@thiagobrez
thiagobrez deleted the t3/exclude-examples-from-versioning branch October 20, 2026 23:24
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.

1 participant