Callout breaking changes on integration upgrade#217257
Callout breaking changes on integration upgrade#217257MichelLosier merged 29 commits intoelastic:mainfrom
Conversation
|
Here is a first pass implementation that adds a separate breaking change warning callout: Having the upgrade callout, and the breaking change callout be the same kind of "warning" style feels like too much attention grabbing here. Alternative considerations:
Example: |
|
After consulting with @sileschristian the UX approach we'll take here is:
|
|
@kpollich Instead of linking directly to GitHub, could we expand the "Review breaking changes" section to surface the relevant details of the breaking change directly in-product? This would allow us to communicate the nature of the change, its potential impact, and any recommended actions more clearly. We can still include a link to the PR for reference, but since not every PR will contain all the necessary context, having this information curated in-product would provide a more consistent and helpful experience for users. |
|
The changes in the changelog also include a In the case where there is 1 breaking change between the user's current version and the latest version, the CTA doesn't open the flyout and links directly to the PR. In this case we could include the change description in the body of the warning callout |
|
+1 for using the |
|
Here is how this could look including the description field: Multiple breaking changes, flyout: One breaking change, in callout body: Thoughts @jamiehynds ? |
|
Looking much better, thanks @MichelLosier. For the flyout, I think displaying the description field on top and the Github link below might look better. The callout body looks great - it allows us to convey the extent/nature of the breaking change and user acknowledgement. @chrisberkhout using your o365 breaking change as an example, do you think the description field is enough to communicate the nature of the breaking change and steps to take post-upgrade? Regarding the acknowledgement, I wonder if it might cause issues for users who use the API to upgrade integrations? Could it potentially break any automations in place? |
For now I don't believe we're planning to put the same restriction in place for upgrade initiated by the API. The only way I can really think to do this would be to mandate a new query param |
For that choice, I sided with keeping the prominent weight with the links, and description underneath since we want the user clicking and really getting their full understanding of those breaking changes from the PR itself. Since the descriptive text is more of a brief summary, it could deflect that ask for a thorough review if given more presence. |
...d/fleet/public/applications/integrations/sections/epm/screens/detail/hooks/use_change_log.ts
Outdated
Show resolved
Hide resolved
...red/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx
Outdated
Show resolved
Hide resolved
|
Current design direction from @sileschristian for incorporating the change descriptions |
|
Pinging @elastic/fleet (Team:Fleet) |
nchaulet
left a comment
There was a problem hiding this comment.
Tested locally and worked as expected LGTM 🚀
💔 Build Failed
Failed CI StepsHistory
|
## Summary Resolves: elastic#187481 * Enhances the integration upgrade callout to give special attention to breaking changes in the changelog. * Callout includes a CTA to review breaking changes * If one breaking change between current and latest version CTA is a direct link the PR * If many breaking changes, a flyout is opened listing those breaking changes * Includes "I understand" checkbox that must be clicked before upgrade is allowed
|
Thanks for working through this one! Is there any documentation that I can provide to the integration team, to ensure they understand how to specify a breaking change in an integration update to avail of this new UX? |
|
@jamiehynds They'll just need to make sure they add a change log entry with the The description of that entry is what will show in the UI. More on the workflow for updating packages: |
|
@MichelLosier Looks like that change is triggering an error for every custom integration that do not have a changelog, You can create a custom integration with
I think we may verify there is a changelog in |
## Summary Resolves: elastic#187481 * Enhances the integration upgrade callout to give special attention to breaking changes in the changelog. * Callout includes a CTA to review breaking changes * If one breaking change between current and latest version CTA is a direct link the PR * If many breaking changes, a flyout is opened listing those breaking changes * Includes "I understand" checkbox that must be clicked before upgrade is allowed








Summary
Resolves: #187481
Local testing
1.2.0<localhost:port>/kibana/app/integrations/detail/docker-1.2.0/overviewScreenshots
Single breaking change
Multiple breaking changes
Multiple breaking changes with flyout
No breaking changes
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesIdentify risks
Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss.
Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging.