RFC: Breaking changes and release workflow in Kendo Themes #2872
Replies: 4 comments 2 replies
-
The design changes are indeed driving factor for changes in the themes, but there are other changes like fixes and implementation improvements that are not design driven. Should we list such examples in point 5, or remove the "new design requires" part from points 1-4. |
Beta Was this translation helpful? Give feedback.
-
Points 1, 2, and 4 look as good suggestions to me, I suppose that the 3rd case has the potential to be the most debated topic:
which is probably what we want to reduce as much as possible, so what about listing some exceptions/references (if any apply) to the listed scenarios based on our experience? For example, using some pull requests from the past that resulted in long discussions, we can provide more clarity for the general case and list specific scenarios that might look like a breaking change at first glance, but are actually not (or vice versa). Considering some concrete examples now can help us come up with a good decision as the definitions might be too abstract for making a solid decision right away. Otherwise, it sounds to me that the general decision is "yes, this is a breaking change".
On a side note, we can brainstorm about taking some ideas from the .NET world around the different types of breaking changes. I haven't verified with any dataset if there is an actual issue for users of the themes to read the release notes and understand if the listed breaking change is affecting them or not, but I suppose there are cases, where some would want to do so as this will give them more information on what effort will it take for them to upgrade to a new version. For example, the .NET article lists
Making a contrived analogy with the themes - an update might not result in any problems if using the new version of the theme by an already compiled file, but if you want to compile it, then you will get some errors. As the themes are used by multiple "types of personas" now, we might consider not only marking something as a breaking change but adding a "category", which explains the area this change affects. This might turn out to be helpful when the different types of clients are looking at the release notes as certain types of breaking changes might not affect them at all (thus they will not be that "scared" to update). Using the analogy from .NET, here are some imaginary categories and their description of breaking changes:
The approach we currently depend on for generating release notes might not be suitable for such categorization though. As the themes repo is public, this might be better solved in another way, e.g. using a |
Beta Was this translation helpful? Give feedback.
-
This interpretation is a bit narrow as the themes are not just an API. They are very much defined by their appearance. Changes to the appearance can be either:
It's important to differentiate and mark the breaking changes accordingly. Otherwise customers may be forced into a situation where they can't obtain an important fix because, as a bonus, the Grid is now purple 🍆 . Not that a purple Grid is bad, but it shouldn't change colors overnight. |
Beta Was this translation helpful? Give feedback.
-
@silviyaboteva Thank you for starting this great discussion. I love the idea of having different categories on the breaking changes. This will allow customers to easily find what is changed and how it affects them. Nobody likes breaking changes, but if they are defined and explained well, it will be easier for everyone, and customers will feel more confident updating. I agree with points 2 and 4.
|
Beta Was this translation helpful? Give feedback.
-
The motivation
The several discussions around the latest Chip and Tabstrip rendering changes. I synced with @Xizario and the @telerik/kendo-react-team and we decide to open a new discussion where we will list the most common changes we make. We will also propose the difference between breaking and non-breaking change, what should the commit message consists of, and the release workflow.
The result
The output we want to achieve is to have a clear structured document in our WIki where we can refer when making changes in the themes.
Our support engineers can use this document as an official statement when clients asks "Why this is not marked as a breaking change?"
Most common scenarios in themes
Let's say that we have a task to update the X component and we have a new design already done by our design team.
Changes: This case is the easiest one as there will be changes only in the SCSS files. It won't require sync with the suites to update anything in the component.
Is this a breaking change: In this case, we assume that it is not a breaking change.
Commit message: We can push the changes with the following commit message:
feat(X): update component styles based on the latest design
.Release Workflow: As this is not a breaking change, we can safely release it with a minor version.
Changes: The changes will be listed in the PR/public issue with the new rendering output. It will require sync with the suites to update the component.
Is this a breaking change: In this case, we assume that it is not a breaking change. As the markup has only additions to it, without any removed content.
Commit message: We can push the changes with the following commit message:
feat(X): update component rendering and styles based on the latest design
.Release Workflow: As this is not a breaking change, we can safely release it with a minor version.
Changes: The changes will be listed in the PR/public issue with the new rendering output. It will require sync with the suites to update the component.
Is this a breaking change: TBD
Commit message: We can push the changes with the following commit message: TBD
Release Workflow: TBD
Changes: The changes will be listed in the PR/public issue with the new names. It won't require sync with the suites to update the component.
Is this a breaking change: Yes.
Commit message: We can push the changes with the following commit message:
Release Workflow: As this is a breaking change, we should bump a master version. In case the change is not critical, we can create a branch,
v6
orvNext
or whatever, and push the changes there. Once we have a solid amount of changes, we can plan when to release the major version.Any feedback/opinion will be highly appreciated!
cc/ @telerik/web-components-and-tools
Beta Was this translation helpful? Give feedback.
All reactions