-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changelog guidelines? #82
Comments
The only guidance I can find is the deprecation policy https://docs.stackstorm.com/development/index.html#deprecation-policy (added emphasis on Changelog)
|
We don't have a perfectly consistent policy, sometimes I take a more relaxed approach. The changelog is meant to be for humans, and specifically for humans when they are figuring out if/when they can upgrade their StackStorm instances. So every change that modifies code that a user will run (eg: "production code") should get a changelog entry. That also means that parts of the project that will not change any production code don't need changelog entries. This includes things like CI configuration changes (GitHub Actions, CircleCI, Travis CI, etc.) and anything that only modifies test code (so if a PR modifies production code and test code, it will still need a changelog entry because it touched production code). Within StackStorm Exchange, one of the reasons that I leave out a version bump and a changelog entry until the end of the PR is because there's a race condition in that - somebody else's PR might bump to the same version that I bumped to, or worse, they bump a major version where my PR only bumps a minor version. And having the last commit of a PR bump the version and update the changelog also makes it slightly more easier to figure out the last commit of a multi-commit PR when you are digging through git history. |
So, that suggests any contributor guidelines (or tips?) should suggest slightly different workflow for exchange packs vs core st2. The st2 installers are another category that might need separate treatment. |
The pack versions are really only a problem in Exchange, since the version number doesn't get bumped in the course of normal development for core ST2, and having non-continuous version numbers in Exchange isn't handled gracefully/correctly by our deployment automation (while this is technically an issue we can solve, I don't think it's a big enough deal in practice to worry about). However, it's not uncommon for the changelog in core ST2 to be a source of merge conflict. Typically if you have a long running PR that is adding a feature or changing something, if somebody else has a smaller PR that adds something or changes something and their entries go in the same list, and theirs gets committed first, then Git doesn't know which entry to take (it should take both). In ST2 Exchange, each PR pretty much always entails a new version, so merge conflicts in the changelog are less common. So you're correct - it might be good to tweak the pull request template for ST2 (and add PR templates for ST2 Exchange) that gives contributors a heads up about what to expect regarding versioning and changelog entries. I can't accurately comment on how we version and control the changelog for our installers, since I don't really contribute there at all. But if it makes sense to have slightly different guidelines for those as well, then I'm in favor of making that explicit. 👍 |
Other projects have separate changelogs per version. Others (like ansible) have one changelog snippet for each PR that needs to add one. During release, all those snippets get combined into one changelog. This has the benefit of sidestepping all the annoyingly pointless merge conflicts. |
https://keepachangelog.com/en/1.0.0/ and https://github.com/olivierlacan/keep-a-changelog looks useful. I think there are some nice fundamental questions and answers:
|
Cool. So now we need a good definition of "notable". |
Is there a policy or a contributor guideline somewhere that says when to include changelog entries?
Right now, when to require a changelog entry feels arbitrary - based only on whichever maintainer ends up reviewing a PR.
If there is no policy or guideline, could we add one somewhere so that everyone can get on the same page about what constitutes something that should hit the Changelog?
The text was updated successfully, but these errors were encountered: