Bumpy: A Modern Successor to Changesets for Streamlined Versioning and Changelogs
Managing versions, releases, and changelogs, especially in complex monorepo environments, can be a significant challenge. While tools like Changesets have provided valuable workflows, they often come with their own set of complexities and unresolved issues. Enter Bumpy, a new open-source solution designed to be a modern successor, tackling many of these pain points head-on and offering a more intuitive experience for developers.
Bumpy positions itself as a robust alternative, particularly beneficial for monorepos with numerous related packages, though it's equally effective in simpler project setups. Its core mission is to refine the file-based bump and changelog workflow, addressing hundreds of open issues that have plagued its predecessors for years.
Addressing Changesets' Limitations
The creator of Bumpy highlights that the tool directly resolves over 120 critical issues found in Changesets. This focus on stability and developer experience is evident in several key architectural and feature decisions:
Simplified Architecture and Installation
One of the most significant departures from Changesets is Bumpy's architectural simplicity. While Changesets is built as a monorepo comprising 20 subpackages, Bumpy adopts a much simpler monolith approach. This simplification extends to installation and usage:
- Single Install: Unlike Changesets, which often requires installing a GitHub app, a GitHub action, an npm module, and a separate changelog formatter, Bumpy consolidates these into a single installation.
Enhanced Flexibility and Customization
Bumpy introduces greater flexibility in how projects manage their release process:
- Flexible Include/Exclude Logic: It offers more granular control over which packages are included or excluded from the versioning process, moving beyond assumptions about private package behavior.
- Custom Publishing Commands: The tool does not assume or force npm publishing, allowing users to define custom publishing commands tailored to their specific needs.
- Sane Peer Dependency Bumping: Bumpy implements more logical and predictable handling of peer dependency version bumps.
- Built-in and Custom Formatters: It includes built-in formatters for changelogs and makes it easier for developers to write their own custom formatters.
Quality of Life Improvements
Beyond core functionality, Bumpy incorporates several quality-of-life enhancements designed to improve the developer experience:
- Non-Interactive
addCommand: A non-interactive version of theaddcommand is available, which is particularly useful for automated agents or CI/CD pipelines. - Delightful Frogs: The project also includes some whimsical touches, being