Qt Source Forward Compatibility for Minor Updates
-
As per here it's obvious Qt patch updates are forward and backward source compatible and minor updates are backward source compatible. When testing in a newer Qt version than you deploy in (in my case the version of Qt Creator I have installed uses a newer version of Qt than the static build I use for deployment of the final executable, 5.15.2 vs 5.12.11), as long as you don't use removed or new functionality in your program during testing does that mean minor updates are forward source compatible for the code you used?
Aren't there only three scenarios possible for code changes in a minor update: new functionality, removed functionality, and functionality that is the same?
So assuming you avoid new and (impossible not to avoid) removed functionality shouldn't the program compile and work fine in an older version of Qt than it was tested in?
Not sure how rare the scenario for which this topic is relevant is; I'm currently running Qt Creator with a newer version of Qt than my static build used for final deployment.
-
If your program compile with Qt5.x then it will also compile with Qt5.x+n (n >=0)
-
@Crag_Hack said in Qt Source Forward Compatibility for Minor Updates:
but how about the other way around?
Can not be guaranteed and must be handled by yourself.
-
Hi,
As long as you use methods that are available in the previous versions you are fine.
-
@SGaist said in Qt Source Forward Compatibility for Minor Updates:
As long as you use methods that are available in the previous versions you are fine.
But this is exactly what I said in my first post so I don't understand this question :)
-
Thanks guys.
@Christian-Ehrlicher Didn't you describe backwards compatibility instead of forwards compatibility though? -
@Crag_Hack said in Qt Source Forward Compatibility for Minor Updates:
Didn't you describe backwards compatibility instead of forwards compatibility though?
No, n is positive.
-
-
Backwards compatibility is what Qt does by allowing new Qt versions to compile code made for previous ones.
Forward compatibility is what they do by being hesitant to introduce new APIs and methods.Say you write a program originally intended for use with Qt 5.12.11. Qt 5.15.2 is being backwards-compatible by not having any user-facing API changes major enough to inhibit compilation of their existing code, even if it's different under the hood. Qt 5.12.11 is forward-compatible in the same sense.