-
Notifications
You must be signed in to change notification settings - Fork 59
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
Backward compatibility strategy #138
Comments
Not specifically about backwards compatibility, but this is related, but I think we need start having more testing and a release-client period where the community can use and test it before an official release. Seems like immediately after releasing, we have had various small issues in which some where small api changes for consistency but would also cause breaking changes. One example of this is #137. Also, adding additional testing via an rc period would remove some pressure from @mairatma. It seems like a lot of maintaining and pressure for a single person to handle. Also want to note that @mairatma has done a great job thus far. So thanks for the hard work! I can put this in a separate issue if it seems necessary |
@bryceosterhaus We definitely will follow intermediate releases as you proposed. The reason |
Yes, thanks a lot for the suggestion, that's a good idea. We need to start defining and formalizing these processes now. |
What do you think about the following backwards compatibility strategy?
The test case separation would help identify through the code-base what is old and what is new. Sunset test cases will be important to make sure we remove the old apis one day. |
I really like this sunset test idea, totally agree! Will start doing this for #137 already. |
Hey guys, thanks a lot for working on this! A couple of additional things we need to cover are:
In the same way, the first point is related to Bryce's comment. We need to have some kind of guidelines as to when a bunch of changes can get considered a new minor version. I think a steady but controlled pace of releases will help provide stability to the framework. |
The major changes on the library in general were very responsible, note
|
Just FYI, I've just pushed some changes that will really help this topic of backwards compatibility:
I think this is a great step into what we've been talking about here, so closing this issue now. For specific backwards compatibility requests, new issues can be opened so we discuss them better. |
The |
Hey @mairatma, this is wonderful news for those of us in more conservative or controlled scenarios. Thanks for making it happen! I just have maybe a couple of comments/suggestions/petitions Global initialization window.__METAL_COMPATIBILITY__ = {}; Otherwise, in amd environments we need to async require Usage warnings
Or, at the very least, a general warning like:
@yuchi, totally agree! The good news about this is it allows us to push new versions of metal to older platforms that cannot accept breaking changes in to existing code. |
@jbalsas yes and no. In DXP GA1 we have version 1.0.0-rc.19, that menas with this sunsetting policy we can get 2.x but not 3.x. Which is not bad at all. Depends on how often are releases planned to happen. |
But what @eduardolundgren said here:
is the real thing ;) |
@yuchi, yeah, I thought about that, but didn't want to add more to the conversation since I figured that the sunsetting approach will be adapted based on how often we release. If we up the major version every two weeks, then that wouldn't help at all. I totally agree with the idea of support branches, but I'm wondering how much more strain it puts on the team in contrast with a more sensible deprecation/sunsetting strategy. |
Exactly :) |
Hi team, how do you define "breaking change"? |
The number of people using Metal is growing and we need a backward compatibility strategy.
The
2.x.x
release have validated many aspects of the library and now it's time to be strict by introducing breaking changes without a backward compatibility plan. If a breaking change is introduced a backward compatibility plan must be provided.Fell free to drop your suggestions or comments.
The text was updated successfully, but these errors were encountered: