We need a more rigorous versioning and release process #199
Replies: 5 comments 7 replies
-
There are no go-tuf releases yet. I would still argue for semver. Instead of bumping the MAJOR version all the time you can bump the MINOR version. Go-Tuf is still heavily in development, I think every party would be ok with having a few 0.X.Y releases before go-tuf gets a stable release with v1.0.0. If you want to be very explicit abou this you can add a suffix to the version like: v0.1.0-alpha.1. In my opinion, the most important part is providing a good changelog. It might make sense to switch to conventional commits: https://www.conventionalcommits.org/en/v1.0.0/ With conventional commits it's very convenient to read the changelog and identify breaking changes, feature additions, bug fixes etc. But this means that every developer has to add a prefix to the commit messages. That's just my small experience as package maintainer at a Linux distribution :) There might be better ideas. |
Beta Was this translation helpful? Give feedback.
-
Great discussion topic. Completely agree that we should be making releases of go-tuf and trying to pay more attention to our API stability such that changes are intentional and communicated. SemVer feels like a sane approach, we aren't making an API stability promise until we make a release with a major version greater than 0 – from item 4 of the SemVer spec:
With explicit releases, users can pin to a release and choose when to update. Changelogs help them understand what they are getting in that release and conventional commits are a great way to help collect the information. Once we have caught up with the spec, defined any refactoring we might want to do, and intentionally groomed the API we want to support we can start communicating intent to make a 1.0 release. |
Beta Was this translation helpful? Give feedback.
-
See #200 for a community resolution. |
Beta Was this translation helpful? Give feedback.
-
Should we close this discussion now that we have an issue open for it? Otherwise, easy to have orphaned discussions. I think a pathway should be discussion -> issue -> PR. |
Beta Was this translation helpful? Give feedback.
-
Oh, ideally, we should have created an issue from this discussion. We will try to remember doing that going forward. Also, doesn't look like you can close discussions, so we'll just leave it as it is for now. |
Beta Was this translation helpful? Give feedback.
-
As @arbll has observed, go-tuf is going through a lot of breaking changes quite regularly now. This is good as in the project is seeing a lot of healthy development to meet the community's needs. However, it is also bad in that if we don't inform our consumers about breaking changes, they are unable to decide how much work they to do in order to consume a new release.
Therefore, I highly recommend that we define and agree on a versioning and release process. It does not have to be SemVer (partly because the MAJOR version will regularly get bumped now, which makes no sense either), but we do need to come up with a process, preferably as automated as possible.
@joshuagl, any thoughts, as you have a lot of experience in this area?
Beta Was this translation helpful? Give feedback.
All reactions