-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Fix or workaround recent extension API compatibility issues #80168
Conversation
So #78328 added compat code for So which is it? Do we need compat bindings for non- And why doesn't the compat binding work for |
#include "core/object/object.h" | ||
|
||
#include "core/object/class_db.h" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These didn't seem necessary, so I simplified. Otherwise it looked like these were ordered this way with a separation to solve a recursive inclusion issue (since object is already included in class_db), but since it compiles fine without it I guess it was a remnant from previous architectures.
We do need a compatibility method for changes to It appears From the perspective of GDExtension, all that matters is the hash. We could remove the specific check for As it is currently, it seems that you need to do what you did, which is add an exception for the additional message about |
I'll try adding the non- |
56b0860
to
e8f2f33
Compare
OK, so I added the two compat methods which were missing for the hash mismatches reported by the tool. And indeed it seems the tool still reports compatibility breaking changes even after adding compat methods, so those reports need to be silenced manually by adding them to the file anyway. Did we get it right @RedworkDE? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And indeed it seems the tool still reports compatibility breaking changes even after adding compat methods, so those reports need to be silenced manually by adding them to the file anyway. Did we get it right @RedworkDE?
Well the tool reports all API changes compared to a given version (with some minor exceptions). Adding the compatibility method only suppresses the error about the hash change of the method as that is the only thing that adding a compat method fixes. The underlying method still has changed and that change is still reported as it might still be an issue for use-cases other than godot-cpp.
TL/DR: Yes.
Changes look correct and as expected to me.
I still have Ideas for general improvements (primarily actually checking against 4.1, without duplicating everything) but I'll get to them soon(tm) in a different PR.
- Add compatibility methods for `RenderingDevice::shader_create_from_bytecode` and `CodeEdit::get_text_for_symbol_loopup`. - Silence errors which now have compatibility methods. - Acknowledge GraphEdit/GraphNode compat breakage, intended and WIP.
e8f2f33
to
858e874
Compare
RenderingDevice::shader_create_from_bytecode
(follow-up to ShaderRD compilation groups #79606) andCodeEdit::get_text_for_symbol_loopup
(follow-up to Fix jumping to function definition usingCtrl+LMB
or the "Lookup Symbol" button #73196).Draft as I'm still getting this error despite the compat method I added: