-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[RFC] Improved changelog format #13620
Comments
I'd group breaking changes together to avoid a need to go through the whole changelog just to learn about those. |
I was wondering about that as well. But what we're usually annotating as "breaking" in minor releases are only soft breaking changes, typically API deprecations. They won't actually break anything directly. So it's less relevant to learn about them right away. Compiler warnings will tell you about them if you use them. |
Yeah, I believe that warrants another label as they're two distinct situations. |
Many of the breaking changes listed there are actual breaking changes and not deprecations anyway (just not super relevant, but still). EDIT: I think it makes sense to add a Breaking change section. |
I added a section for breaking changes. For that I have created the label |
Sounds good. Can't a label be renamed? Because that would be best, in order to avoid having duplicated labels. |
Yes, renaming is possible. But so far the |
Now we have Breaking changes section I'm thinking that having a one for Deprecations would be helpful too. |
I don't think they are relevant enough for that. A deprecation isn't really a substantial change on its own. |
Deprecation is an important indicator IMO warranting a section of its own. These will become removed in future versions, so you'd like to have a clear list of 'em before that happens. |
Definitely! But I don't think the changelog is the right place for that. For practical reasons, deprecations are often merely by-products of other changes. For example #13550 is a feature addition which in the process of adding a new method signature, deprecates the old one. It makes a lot of sense to have all this in a single code change. On a higher level, it's two different changes for |
+1 to having an |
I think the changelog format could be restructured to be more useful for readers.
The current format (example for 1.8.0) is structured by topic: Language changes at the top, then stdlib changes, then compiler, tools and infrastructure. Internally, these section can be further divided into subsections. Topics correspond to the
topic:*
labels in GitHub.While this is a somewhat useful structure, it does little to communicate to the users what impact a change has for them. There are some hints on that, for example the conventional verb at the beginning of the change description ("Add", "Fix", "Refactor"), or the indicator for breaking changes.
But readers need to skim the entire changelog to find potentially relevant information. It would be much better to put the most important stuff on top to make it easily accessible.
So I'm proposing to refactor the changelog format.
kind:*
labels in GitHub, which are currently not considered in the changelog.Each type corresponds to a section which would be sorted by relevance like this:
codegen
ornetworking
). This communicates which part of the code base it affects. Entries are sorted by subtopic (to group related changes) and merge date.I have created an example in this format for the 1.9.0 changelog in https://github.com/straight-shoota/crystal/tree/feature/changelog-1.9.0-new.
Check out the preview.
There's no rush to roll this out for 1.9, but we can if the proposal is accepted in time.
The text was updated successfully, but these errors were encountered: