after using atlassian changesets for versioning at astro, i've fallen in love.
in my own time, i've mostly used it on
https://npmx.dev/package/@jasikpark/astro-svg-loaderit's a good workflow:
new changes are .changeset/*.md files, with frontmatter like:
---
"@jasikpark/astro-svg-loader": minor
---
Update to allow Astro v3 as a valid peer depon PR merge, a Github Action picks it up and rolls it up into a "Release PR", it autocalculates the next package version, collates the changes into a new addition to the CHANGELOG.md wherever you've configured it, and importantly just appends rather than requiring prior changelog formats to be consistent with it. Makes for easy migration from whatever bespoke system you had before.
A beauty of the individual changeset files in a folder approach is that w/ the autogenerated random filenames, you'll never get a file conflict, unlike manually editing CHANGELOG.md on every PR that needs to add changes.
Most times, a project only wants same-language devtools though, so luckily there's been work to port the concept to other languages:
KnopeAutomate tedious developer tasksKnope is a great tool for Rust crates, it generally replicates the full workflow and turn-key approach that changesets offers, and adds on conventional commit support as well!
monorel: changesets-style releases for Go monoreposA release tool for single-module and multi-module Go repos. Per-PR intent via .changeset files, native Go tag conventions, always-open release PR.In my survey of Golang options, I found monorel, which seems like a solid project from my glance at the docs and yapping with ChatGPT about it in the car, though it seems a bit green with the only users of it being monorel itself + a logging library for Golang by the same author.
LMK if you've had thoughts about how to automate/improve release tracking / publishing!