DEV Community

Cover image for Say Goodbye to Changelog Chaos: Introducing changesetgoo
Chandu Bobbili
Chandu Bobbili

Posted on

Say Goodbye to Changelog Chaos: Introducing changesetgoo

If you ship libraries or APIs, you’ve undoubtedly felt the release day pain: “What actually changed in this release?” “Did we bump major, minor, or patch correctly?” “Wait, who was supposed to update the changelog?”

Tracking these changes manually is tedious and error-prone, which is exactly why the Changesets workflow was created. By letting you record each change (along with its semver impact and a description) as you work, these entries are automatically merged into a single changelog at release time. This guarantees that users and tools know exactly what changed and how "breaking" a release actually is.

Having spent time in the JS ecosystem working heavily with frameworks like React and Next.js, I've come to rely on the standard JS Changesets workflow. It provides a fantastic developer experience. But when stepping outside of that ecosystem, I hit a snag: I wanted that exact same workflow, but I didn't want to drag Node.js and npm into non-JavaScript projects.

So, I built a solution.

Enter changesetgoo

I built changesetgoo -- a lightweight, standalone Go CLI for managing changesets and changelogs. It brings the excellent JS Changesets workflow to Go projects (and any other repository, really) without the heavy frontend tooling dependencies.

Why you might want to use it:

  • Zero Node.js Dependency: It's a single compiled binary. You can install it with go install and run it anywhere. No extra runtimes, no node_modules.
  • Centralized Semver: Add your changesets as you code (major, minor, or patch + description). When you're ready, let the tool compute the exact next version and update your CHANGELOG.md automatically.
  • Streamlined Release Workflow: You can execute a full release cycle with a single command. It will apply your changesets, bump the version, update the changelog, commit the changes, and tag the release. It's built to be equally at home in a CI pipeline or run locally.
  • Git-Friendly by Design: It creates semantic tags locally, leaving you in complete control of when to push to your remote.

Quick Usage
Getting started is as simple as running a few commands:

changesetgoo add          # Add a changeset (prompts for type + description)
changesetgoo version      # Merge changesets into CHANGELOG, bump version
changesetgoo publish --push   # Full release: apply, bump, commit, tag, push
Enter fullscreen mode Exit fullscreen mode

If you care about keeping your versioning predictable and your changelogs pristine in Go—or any other repository where you want a lightweight CLI—give it a try.

Feedback, issues, and contributions are always welcome!

🔗 GitHub: github.com/ChanduBobbili/changesetgoo
📦 pkg.go.dev: pkg.go.dev/github.com/ChanduBobbili/changesetgoo

Top comments (0)