-
Notifications
You must be signed in to change notification settings - Fork 11
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
[RRFC] Breaking change policy and tracking post-3.0 breaking changes #25
Comments
It'd be nice to enumerate some principles and axioms we have around breaking changes in the RFC. Things like:
|
Would it be reasonable to also include a commitment in regards to supported older versions? A bad example maybe but say that I still need IE11 support. It would be nice to know that, by policy, bugfixes from 3.X still be backported to 2.X (or not). The documentation also needs somethings similar, will the 2.X docs be accessible after 3.X is released? It's reasonable to not maintain 2.X indefinitely and it would be nice to have a roadmap of when an older version is considered unsupported. This would help in planning potential upgrades. |
Part of the RRFC is asking for a more formal breaking change and supported browser policy. We'll need to discuss it, but I think we are unlikely to backport most changes, especially if we keep the number and severity of breaks to a minimum. The cost is probably to high for us, so I bet the recommendation will be to upgrade. We will need to discuss that, of course. If we here of specific cases of difficulty upgrading plus a need for a critical bug fix, we may make one-off decisions to backport, or to accept PRs that do. |
I think supporting the last 2 versions of each major browser is a good baseline that allows a reasonable pace of advancement without too much churn. While Chrome/Firefox release fast and users upgrade fast, Safari releases slowly so this effectively equates to a roughly 1-2 year cycle in significant changes. Back-porting critical fixes (only) to versions supporting older browsers seems reasonable. |
How about Firefox ESR? https://support.mozilla.org/en-US/kb/firefox-esr-release-cycle / https://whattrainisitnow.com/calendar/ How about Samsung Internet? (based on Chromium but apparently pulls from upstream at a much slower pace than Chromium's release cadence) |
FYI, we already test on Firefox ESR |
Motivation
We should develop a breaking change policy so our users know what to expect in future releases and how we approach stability and backwards compatibility. This can include hard policies like deprecating an API in a release before removing it, or softer policies like trying to not make breaking changes unless we need to, improves our code quality, performance, maintenance burden, etc.
We should also try to develop some more precise browser-support policies for relying on new features, possibly based on usage and whether there's a polyfill. For example, we could not rely on a new non-polyfillable feature if > X% of browser usage doesn't support the feature, and not rely on a polyfillable feature of > Y% of browser usage doesn't support the feature.
And not a request for a specific RFC per se, but I'd like for us to keep track of potential breaking changes that we might want to make in order to help with longer term planning and carefully minimize disruptions to developers and users.
Example
Examples of breaking changes would could make that could improve our source and published code:
ReactiveElement.createProperty()
,.getPropertyDescriptor()
, etc.How
For the breaking change policy, the RFC itself can serve as documentation of it. We may find a good place in the lit.dev docs as well.
For tracking ideas, we can use several methods, though it's important to remember that all breaking changes will need to be part of an RFC to get approval for actually making it.
Current Behavior
Desired Behavior
References
The text was updated successfully, but these errors were encountered: