Skip to content

Add dependency diff workflow for pull requests#257

Merged
bartveneman merged 1 commit into
mainfrom
claude/dazzling-albattani-vjin7o
Jun 21, 2026
Merged

Add dependency diff workflow for pull requests#257
bartveneman merged 1 commit into
mainfrom
claude/dazzling-albattani-vjin7o

Conversation

@bartveneman

Copy link
Copy Markdown
Member

Summary

This PR adds a new GitHub Actions workflow that automatically generates a dependency diff report for pull requests, comparing the dependencies of the base branch against the PR branch.

Key Changes

  • Added .github/workflows/dependency-diff.yml workflow with three jobs:
    • build-base: Checks out the main branch, installs dependencies, builds the project, and packs it for comparison
    • build-pr: Checks out the PR branch, installs dependencies, builds the project, and packs it for comparison
    • diff-dependencies: Downloads both packed versions and generates a dependency diff report, posting results as a PR comment

Implementation Details

  • Uses pnpm for package management with frozen lockfile to ensure reproducible builds
  • Node.js 22 is used for both base and PR builds
  • The workflow runs on pull requests targeting the main branch
  • Artifacts are uploaded and downloaded between jobs for efficient comparison
  • Uses the e18e/action-dependency-diff action to generate the actual dependency diff
  • Pack size threshold is set to -1 to report all changes regardless of size
  • Includes appropriate permissions for reading contents and writing PR comments

https://claude.ai/code/session_016YoApD2Ax54MAE1m3G5RcL

Adds a three-job workflow using e18e/action-dependency-diff to post PR
comments about dependency changes and bundle size comparisons. Uses
pack-size-threshold: -1 to always report bundle size changes, including
decreases and no-change scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016YoApD2Ax54MAE1m3G5RcL
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Duplicate Dependencies (found: 30, threshold: 1)

📦 Package 📋 Versions
tinybench
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • vitest@4.1.6
        • tinybench@2.9.0

  • root@
    • tinybench@6.0.1

@babel/helper-validator-identifier
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • magicast@0.5.2
        • @babel/parser@7.29.3
          • @babel/types@7.29.0
            • @babel/helper-validator-identifier@7.28.5

  • root@
    • tsdown@0.22.0
      • ...
        • @babel/parser@8.0.0-rc.4
          • @babel/types@8.0.0-rc.4
            • @babel/helper-validator-identifier@8.0.0-rc.4

js-tokens
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • ast-v8-to-istanbul@1.0.0
        • js-tokens@10.0.0

  • root@
    • tailwindcss@2.2.19
      • cosmiconfig@7.1.0
        • parse-json@5.2.0
          • @babel/code-frame@7.27.1
            • js-tokens@4.0.0

@babel/parser
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • magicast@0.5.2
        • @babel/parser@7.29.3

  • root@
    • tsdown@0.22.0
      • rolldown-plugin-dts@0.25.0
        • @babel/generator@8.0.0-rc.4
          • @babel/parser@8.0.0-rc.4

@babel/types
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • magicast@0.5.2
        • @babel/parser@7.29.3
          • @babel/types@7.29.0

  • root@
    • tsdown@0.22.0
      • rolldown-plugin-dts@0.25.0
        • @babel/generator@8.0.0-rc.4
          • @babel/parser@8.0.0-rc.4
            • @babel/types@8.0.0-rc.4

@babel/helper-string-parser
2 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • magicast@0.5.2
        • @babel/parser@7.29.3
          • @babel/types@7.29.0
            • @babel/helper-string-parser@7.27.1

  • root@
    • tsdown@0.22.0
      • ...
        • @babel/parser@8.0.0-rc.4
          • @babel/types@8.0.0-rc.4
            • @babel/helper-string-parser@8.0.0-rc.4

@rolldown/binding-wasm32-wasi
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-wasm32-wasi@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-wasm32-wasi@1.0.0-rc.17

picomatch
2 versions
  • root@
    • tailwindcss@2.2.19
      • chokidar@3.6.0
        • anymatch@3.1.3
          • picomatch@2.3.2

  • root@
    • @vitest/coverage-v8@4.1.6
      • vitest@4.1.6
        • @vitest/mocker@4.1.6
          • vite@8.0.10
            • picomatch@4.0.4

postcss-value-parser
2 versions
  • root@
    • tailwindcss@2.2.19
      • reduce-css-calc@2.1.8
        • postcss-value-parser@3.3.1

  • root@
    • tailwindcss@2.2.19
      • autoprefixer@10.4.23
        • postcss-value-parser@4.2.0

glob-parent
2 versions
  • root@
    • tailwindcss@2.2.19
      • chokidar@3.6.0
        • glob-parent@5.1.2

  • root@
    • tailwindcss@2.2.19
      • glob-parent@6.0.2

yaml
2 versions
  • root@
    • tailwindcss@2.2.19
      • cosmiconfig@7.1.0
        • yaml@1.10.3

  • root@
    • @vitest/coverage-v8@4.1.6
      • vitest@4.1.6
        • @vitest/mocker@4.1.6
          • vite@8.0.10
            • yaml@2.9.0

is-arrayish
2 versions
  • root@
    • tailwindcss@2.2.19
      • cosmiconfig@7.1.0
        • parse-json@5.2.0
          • error-ex@1.3.4
            • is-arrayish@0.2.1

  • root@
    • tailwindcss@2.2.19
      • color@4.2.3
        • color-string@1.9.1
          • simple-swizzle@0.2.4
            • is-arrayish@0.3.4

get-tsconfig
2 versions
  • root@
    • knip@6.13.0
      • get-tsconfig@4.14.0

  • root@
    • tsdown@0.22.0
      • rolldown-plugin-dts@0.25.0
        • get-tsconfig@5.0.0-beta.5

@oxc-project/types
3 versions
  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @oxc-project/types@0.127.0

  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @oxc-project/types@0.129.0

  • root@
    • knip@6.13.0
      • oxc-parser@0.130.0
        • @oxc-project/types@0.130.0

rolldown
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • vitest@4.1.6
        • @vitest/mocker@4.1.6
          • vite@8.0.10
            • rolldown@1.0.0-rc.17

@rolldown/pluginutils
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/pluginutils@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/pluginutils@1.0.0-rc.17

@rolldown/binding-android-arm64
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-android-arm64@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-android-arm64@1.0.0-rc.17

@rolldown/binding-darwin-arm64
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-darwin-arm64@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-darwin-arm64@1.0.0-rc.17

@rolldown/binding-darwin-x64
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-darwin-x64@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-darwin-x64@1.0.0-rc.17

@rolldown/binding-freebsd-x64
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-freebsd-x64@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-freebsd-x64@1.0.0-rc.17

@rolldown/binding-linux-arm-gnueabihf
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-arm-gnueabihf@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17

@rolldown/binding-linux-arm64-gnu
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-arm64-gnu@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-arm64-gnu@1.0.0-rc.17

@rolldown/binding-linux-arm64-musl
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-arm64-musl@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-arm64-musl@1.0.0-rc.17

@rolldown/binding-linux-ppc64-gnu
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-ppc64-gnu@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17

@rolldown/binding-linux-s390x-gnu
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-s390x-gnu@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-s390x-gnu@1.0.0-rc.17

@rolldown/binding-linux-x64-gnu
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-x64-gnu@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-x64-gnu@1.0.0-rc.17

@rolldown/binding-linux-x64-musl
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-linux-x64-musl@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-linux-x64-musl@1.0.0-rc.17

@rolldown/binding-openharmony-arm64
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-openharmony-arm64@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-openharmony-arm64@1.0.0-rc.17

@rolldown/binding-win32-arm64-msvc
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-win32-arm64-msvc@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-win32-arm64-msvc@1.0.0-rc.17

@rolldown/binding-win32-x64-msvc
2 versions
  • root@
    • tsdown@0.22.0
      • rolldown@1.0.0
        • @rolldown/binding-win32-x64-msvc@1.0.0

  • root@
    • @vitest/coverage-v8@4.1.6
      • ...
        • vite@8.0.10
          • rolldown@1.0.0-rc.17
            • @rolldown/binding-win32-x64-msvc@1.0.0-rc.17

💡 To find out what depends on a specific package, run: pnpm -r why example-package

📦 Package Bundle Size

No bundle size changes.

@bartveneman bartveneman merged commit 0e0b3b0 into main Jun 21, 2026
7 of 8 checks passed
@bartveneman bartveneman deleted the claude/dazzling-albattani-vjin7o branch June 21, 2026 18:45
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.

2 participants