semantic-release is neat: https://www.npmjs.com/package/semantic-release It can diff jsdoc to decide if your release is a breaking change!
Related Posts
I'm not sure if I should use the term "text diff" or "textual diff" to refer to a conventional, line-oriented diff of text in difftastic.
Any opinions? Which seems clearer to you?
I really like the MELPA model of packaging directly from git. It solves the problem of forgetting to release something -- just merge a PR and you're done.
It also makes version number bumps much less important.
You could go even further in a statically typed language and also figure out when breaking changes occur.
Shower thought: using a tool like cargo-semver, could you build a package registry where the uploader never chooses the version number?
E.g. your last release was 5.2025-09-13 and you've just changed a type, so today's release is 6.2025-11-05.