npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@izumisy/deps2changesets

v0.2.2

Published

CLI tool to automatically generate changesets from dependency changes in Git commits

Readme

deps2changesets

CLI tool to automatically generate changesets from dependency changes in Git commits.

Features

  • 🔍 Package detection - Detects all packages with dependency changes
  • 📝 Changeset generation - Parses package.json diffs to create meaningful changeset summaries
  • 📦 Monorepo support - Works with npm/yarn/pnpm workspaces using @manypkg/get-packages

Installation

npm install -g @izumisy/deps2changesets

Or use with npx:

npx @izumisy/deps2changesets

Note: The short alias deps2cs is only available when globally installed. When using npx, use the full package name @izumisy/deps2changesets.

Usage

Basic Usage

Generate changesets for dependency changes between commits:

# Compare main to HEAD (default, ideal for dependabot branches)
npx @izumisy/deps2changesets

# Compare specific commits using Git range syntax
npx @izumisy/deps2changesets --range abc123..def456

# Compare branches
npx @izumisy/deps2changesets --range main..feature-branch

# Compare from a specific ref to HEAD
npx @izumisy/deps2changesets --range main..

Options

| Option | Short | Description | Default | |--------|-------|-------------|---------| | --range | -r | Git commit range (e.g., main..HEAD, a1b2c3..d4e5f6) | main..HEAD | | --release-type | -t | Release type for changesets (patch, minor, major) | patch | | --cwd | -c | Working directory | Current directory | | --dry-run | -d | Preview changes without creating changesets | false | | --include-deps | -i | Additional dependency types to include (comma-separated: prod, dev, peer, optional) | prod |

Note: By default, only production dependencies are included in changesets. Use --include-deps to include changes from devDependencies, peerDependencies, or optionalDependencies.

Examples

# Generate patch changesets for changes from main (default)
npx @izumisy/deps2changesets

# Generate changesets for a specific range
npx @izumisy/deps2changesets --range HEAD~3..HEAD

# Generate minor changesets
npx @izumisy/deps2changesets --range main..HEAD --release-type minor

# Run in a specific directory
npx @izumisy/deps2changesets --cwd /path/to/repo

# Preview changes without creating changesets
npx @izumisy/deps2changesets --dry-run

# Include devDependencies changes
npx @izumisy/deps2changesets --include-deps=dev

# Include both devDependencies and peerDependencies changes
npx @izumisy/deps2changesets --include-deps=dev,peer

How it Works

  1. Detects changed files - Uses Git to get changed files between commits
  2. Filters package.json files - Identifies which packages have dependency changes
  3. Parses diffs - Extracts dependency changes (added/updated/removed) from package.json files
  4. Maps to workspace packages - Uses @manypkg/get-packages to match files to workspace packages
  5. Generates changesets - Creates changesets with human-readable summaries

Generated changeset:

---
"my-package": patch
---

Dependencies updated

- Updated [lodash](https://www.npmjs.com/package/lodash) (^4.17.19 -> ^4.17.21)
- Added [axios](https://www.npmjs.com/package/axios) (^1.4.0)

GitHub Actions

You can automate changeset generation for Dependabot PRs using the provided GitHub Action.

# .github/workflows/dependabot-changeset.yml
name: Dependabot Changeset

on:
  pull_request:
    types: [opened, synchronize]

permissions:
  contents: write
  pull-requests: write

jobs:
  generate-changeset:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: ${{ github.head_ref }}

      - name: Generate and commit changeset
        uses: izumisy/deps2changesets@v1

Remember to set versioning-strategy: increase to reflect version updates on package.json file.

Action Inputs

| Input | Description | Default | |-------|-------------|---------| | release-type | Release type for changesets (patch, minor, major) | patch | | include-deps | Dependency types to include (comma-separated: prod, dev, peer, optional) | prod | | commit-message | Commit message for the changeset | chore: add changeset for dependency update |

Example with Options

- name: Generate and commit changeset
  uses: izumisy/deps2changesets@v1
  with:
    release-type: minor
    include-deps: prod,dev
    commit-message: 'chore: add changeset for deps update'

Usecase

License

See LICENSE file for details.