Replies: 4 comments 5 replies
-
Fully agreed. |
Beta Was this translation helpful? Give feedback.
-
I suggest to use semantic-release |
Beta Was this translation helpful? Give feedback.
-
100% agree. Our code that was working before now isn't working because we've updated what we thought was a minor version, only to be surprised it included breaking changes. E.g. this happened multiple times in this Issue: dotansimha/graphql-yoga#3003 We need a semblance of SemVer here, to make working with Bun more straightforward. |
Beta Was this translation helpful? Give feedback.
-
Strict SemVer has its upsides, but it isn't the all-round solution for everything. I prefer dealing with the risk of breaking changes each update if that means the maintainers have the freedom to ship bigger changes without having to release new a "major" release like v458 because some parameter in a config was changed. Or, even worse, if that discourages them to improve things in the first place. I think the current versioning scheme works for Bun, especially when it's growing and evolving as fast as it is currently. |
Beta Was this translation helpful? Give feedback.
-
If we assume
<major>.<minor>.<patch>
is<breaking changes>.<new features>.<bug fixes>
...Major
At this point every release could be a breaking change for somebody, but maybe we reserve major bumping for when we know a significant number of developers will need to change their code if they want it to continue working.
Examples:
bunfig.toml
.Bun.*
apis.bun.lockb
format that older versions of bun can't use.Minor
1.0.1
and1.0.2
both introduced new features, so they should technically be1.1.0
and1.2.0
. This hopefully signals to developers: "It's not just bug fixes, you probably want to look at the release notes to see what's new!"Patch
For bug fixes. Nothing should break.
Reasoning
As a project maintainer, I want some consistency between developer machines and CI. I want to be able to say "we're compatible with Bun 1.x" - and then when Bun releases a breaking change, I hope to get a PR for supporting Bun 2.x, not bug reports that my project is broken.
References
I remember these being helpful when I was learning about semver:
Beta Was this translation helpful? Give feedback.
All reactions