Skip to content

chore: Report which packages need a release in 'pnpm run changes' - #3332

Draft
iwoplaza wants to merge 1 commit into
chore/release-difffrom
chore/changes-release-plan
Draft

iwoplaza wants to merge 1 commit into
chore/release-difffrom
chore/changes-release-plan

Conversation

@iwoplaza

@iwoplaza iwoplaza commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #3331.

pnpm run changes printed every changed file (400+ lines for this release) and every package that had any file touched. Deciding what to bump still took manual filtering: private packages, test-only changes, and packages already bumped.

New packages/tgpu-dev-cli/release-plan.mjs with getReleasePlan({ base, head }) sorts each changed package into one of these statuses. base defaults to the latest release tag (see #3331), so "unchanged since base" means "unchanged since it was last published". Commits that went straight to release and were merged back into main still count as unreleased.

status meaning
needs-release public, has source changes, version unchanged since base. Comes with a suggested nextVersion (patch bump; prereleases are left to bump by hand).
new public, but not in the latest release yet, so its current version is the first one to publish
already-bumped version differs from the one in the latest release
non-source-only only tests, docs, *.md, vitest configs, tsconfig.json, or devDependencies/version in package.json changed
private not published

pnpm run changes now prints a summary. Use --verbose to also list the files, with the ones that aren't shipped greyed out:

ℹ Packages to release:
  @typegpu/cli                0.12.3 → 0.12.4   (15 source files)
  @typegpu/color              0.12.1 → 0.12.2   (2 source files)
  ...
  typegpu                     0.12.9 → 0.12.10  (69 source files)

ℹ Changed, but no release needed:
  @typegpu/algorithm          private
  @typegpu/geometry           private
  typegpu-testing-utility     private

Tested (comparing against v0.12.9) on:

Limitation: changes that only remove unused code (like #3087 in @typegpu/react and @typegpu/three this cycle) still count as source changes, since a file diff can't tell them apart.

Next in the stack: tgpu-dev-cli bump, which applies these versions.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/tgpu-gen@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/typegpu@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/color@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/gl@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/radiance-cascades@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/three@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@a66b662bb4ce5f2f1ab36b15d2c56cae70c24fee

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.75, 1.63, 3.47, 4.94, 6.07, 10.26, 21.13, 23.41]
  line [0.78, 1.52, 3.13, 5.45, 6.00, 10.21, 19.25, 24.22]
  line [1.11, 2.14, 4.97, 6.71, 8.13, 14.01, 26.15, 25.69]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.18, 0.35, 0.50, 0.66, 0.87, 0.90, 1.05, 1.17]
  line [0.24, 0.41, 0.54, 0.59, 0.78, 0.84, 1.01, 1.28]
  line [0.27, 0.61, 0.79, 0.89, 1.22, 1.31, 1.59, 1.75]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.83, 1.89, 3.19, 6.02, 10.61, 22.22, 46.64, 97.21]
  line [0.84, 1.97, 3.37, 5.88, 10.29, 21.45, 46.40, 94.66]
  line [0.90, 2.31, 4.15, 7.70, 15.67, 28.14, 59.29, 122.82]
Loading

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
0 356 0 0

No notable changes.

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

This branch has not been deployed

No deployments
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