-
Notifications
You must be signed in to change notification settings - Fork 9
FEEDBACK WANTED: Crafting better changelog fragments #64
Comments
Sweet, thanks for starting this topic! Are you planning to link the materials from the earlier conversations? |
This comment will be updated regularly based on the feedback received in this issue or other discussions. Today, Ansible provides:
Proposal for crafting better changelog fragmentsChangelogs are predominantly for end users of Ansible or a collection. As such, add details about the change as if you were a user of Ansible. All changelog fragments should include a link to the issue tracker that the PR resolves. Use RST formatting as described in the Ansible Style guide. > possibly we should list out common markup instead of pointing to the whole guide. URLs and module/plugin names etc are easier to read if marked up properly for example
Use the following guidelines to maintain consistency across projects and collections. breaking_changesMUST include changes that break existing playbooks or roles. This includes any change to existing behavior that forces users to update tasks. Breaking changes means the user MUST make a change when they update. Breaking changes MUST only happen in a major release of the collection. Displayed in both the changelogs and the Porting Guides. Write in present tense and clearly describe the new behavior that the end user must now follow. core example collection example major_changesMajor changes to core example collection example minor_changesMinor changes to core example collection example deprecated_featuresFeatures that have been deprecated and are scheduled for removal in a future release. Displayed in both the changelogs and the Porting Guides. Use past tense and include an alternative, where available for what is being deprecated. core example collection example removed_featuresFeatures that were previously deprecated and are now removed. Displayed in both the changelogs and the Porting Guides. Use past tense and include an alternative, where available for what is being deprecated. core example collection example security_fixesFixes that address CVEs or resolve security concerns. MUST use core example collection example bugfixesFixes that resolve issues. SHOULD not be used for minor enhancements (use core example collection example known_issuesKnown issues that are currently not fixed or will not be fixed. Use present tense and where available, use imperative tense for a workaround. core example collection example |
Prior discussion - https://hackmd.io/ZdymdeUSQNeM0hMjsn7vig which includes links to some related topics on other community opensource projects. Also borrowed heavily from this - https://redhat-documentation.github.io/supplementary-style-guide/#release-notes |
I'm still hunting down any opensource guidelines I can find so if you know of others, pop a link in the comments please! |
Ansible or ansible-core? That is: Can a collection have major changes or not?
Generally is generally (ha!) problematic. What are the exceptions? Maybe it would be clearer to define that changes to a single module or plugin are never major. I would see a change to a module util as major because this would (possibly) affect several modules at once. Maybe this would be a good definition, but I'm not sure. Thoughts? |
I can't provide any helpful opensource guidelines at the moment, but I like RfC 2119 which defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL". Maybe it would be a good idea to refer to this RfC and use those keywords as defined there. Then you could define for example:
Just an idea. |
@mariolenz agreed on your suggestions. We MUST :-) be clear on what has to be, what should be, etc. And I can add both a core and a collection example to each to help. I believe collections have used major changes as well but it was brought up in the community WG meeting today that it is a bit unclear when to use it so we'll need to be more specific for sure. |
samcann beat me to it. :) We've been using major_version in a number of collections for things that are notable at a collection level but generally not breaking. My best example offhand walks the line of breaking and major but as a discussion point: In (amazon|community).aws we've used major_changes on major collection revisions to denote SDK support for that release (we have a stated SDK support policy that increments on major collection release). This should generally not be breaking, but we do stop testing older SDK versions and cease guaranteeing support. |
I would change the following a bit in the |
Is an issue the right place to discuss this? I suggest to use discussions in ansible-collections/news-for-maintainers. Or, alternatively, enable discussions in this repo. Don't get me wrong, I'm fine with discussing better changelog fragments here. I just think that there might be better places to do it. |
I've updated the comment above to put in examples and the feedback so far. The formatting isn't perfect and I still need to dig up some github issues to go with each, but please review and see if you think these are good examples or not. @mariolenz - I'm actually not sure when a community topic should be in the new news discussions. @felixfontein do you have ideas on when we should use these topics here vs the discussions in the collection news repo? |
news-for-maintainers is definitely the wrong repository to discuss this; this is the right one. Whether we should use GH issues or GH discussions is probably a matter of taste. Both have advantages and disadvantages. I guess for now we should stay in this issue and discuss here. |
At the moment I'm a little bit overwhelmed by the many points of contact and places to discuss things. I'm not always sure where a question belongs. Thanks for clarifying this @felixfontein!
Sure, no problem. I just wanted to raise the question if this is the right place. But it looks like it is :-) |
Documenting some feedback from the community meeting:
|
At this point, this discussion is now in the implementation phase and I'll link a PR here to the docs changes for final review. |
Please post comments and reviews on the PR that implements this - ansible/ansible#77040 |
Resloved by ansible/ansible#77040 Thanks everyone! |
Summary
Today, Ansible has minimal guidance on how a developer can craft an informative changelog fragment - https://docs.ansible.com/ansible/latest/community/development_process.html#creating-a-changelog-fragment
Changelogs should inform the end-users about the high-level influence on their workflows UX-wise that has happened since the previous release. These fragments should be written in a common style so the autogenerated results flow well together. Perhaps choosing past tense.
The following changlog fragment types are also added to the autogenerated Ansible porting guides and should have clear instructions on how to write these:
Additional Information
No response
The text was updated successfully, but these errors were encountered: