WeSearch

Show HN: Bumpy – versioning/changelog tool, fixed 120 open changesets issues

·7 min read · 0 reactions · 0 comments · 1 view
Show HN: Bumpy – versioning/changelog tool, fixed 120 open changesets issues

🐸 Modern monorepo friendly version management + changelog tool - dmno-dev/bumpy

Original article
GitHub
Read full at GitHub →
Full article excerpt tap to expand

Brought to you by Varlock 🧙‍♂️🔐 check it out to secure your secrets @varlock/bumpy 🐸 A modern package versioning, release, and changelog generation tool. Built for monorepos, but works great in simpler projects too. How It Works Bumpy uses bump files (you may know them as "changesets" if coming from that tool 🦋) - small markdown files that declare an intent to release packages with a bump level (patch/minor/major), and a description that ends up in changelogs. Developers create these files as part of their PRs, and these files are then used to consolidate changes, generate changelogs, and trigger publishing. Specifically: Devs/agents create bump files as part of their PRs (using bumpy add or manually) A git hook (pre-commit or pre-push) can enforce bump files exist for changed packages In CI, a workflow checks PRs for bump files, leaves a comment on the PR detailing changed packages As PRs merge to the base branch, a "release PR" is kept up to date Shows what packages will be released and their changelogs Including packages bumped automatically due to dependency relationships When release PR is merged, publishing is triggered Pending bump files are deleted and packages are published with updated versions and changelogs All of this is automated via two simple GitHub Actions workflows (see CI setup below). You can also run everything locally with bumpy status, bumpy version, and bumpy publish. Example bump file .bumpy/add-user-language.md: --- '@myorg/core': minor '@myorg/utils': patch --- Added user language preference to the core config. Fixed locale fallback logic in utils. Features All package managers - npm, pnpm, yarn, and bun workspaces Smart dependency propagation - configurable rules for how version bumps cascade through your dependency graph (see version propagation docs) Pack-then-publish - by default, publishes to npm (resolving workspace: and catalog: protocols, with OIDC/provenance support). Per-package custom publish commands let you target anything - VSCode extensions, Docker images, JSR, private registries, etc. Flexible package management - include/exclude any package individually via per-package config, glob patterns, or privatePackages setting Non-interactive CLI - bumpy add works fully non-interactively for CI/CD and AI-assisted development Aggregated GitHub releases - optionally create a single consolidated release instead of one per package Auto-generate from commits - bumpy generate creates bump files from branch commits - works with any commit style, with enhanced detection for conventional commits Pluggable changelog formatters - built-in "default" and "github" formatters, or write your own Zero runtime dependencies - dependencies are minimal and bundled at release time Getting Started # Install bun add -d @varlock/bumpy # or npm/pnpm/yarn # Initialize (creates .bumpy/ directory and config, migrates from changesets if applicable) bunx bumpy init # Create a bump file bunx bumpy add # Preview the release plan bunx bumpy status Then set up CI to automate versioning and publishing (see below). CI / GitHub Actions No GitHub App to install, no separate action to rely on - just call bumpy ci directly in your workflows. Two commands handle the entire release lifecycle: bumpy ci check - runs on every PR. Computes the release plan from pending bump files and posts/updates a comment on the PR showing what versions would be released. Warns if any changed packages are missing bump files. bumpy ci release - runs on push…

This excerpt is published under fair use for community discussion. Read the full article at GitHub.

Anonymous · no account needed
Share 𝕏 Facebook Reddit LinkedIn Email

Discussion

0 comments

More from GitHub