Skip to content
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

Update extension API validation #77445

Merged

Conversation

RedworkDE
Copy link
Member

Followup to #76647 (comment), originally just trying to ensure that ignoring the hash change of one method does not hide any future changes to that method, but has somewhat grown in scope to tracking all changes that possibly interfere with compatibility, not just those that break gdextension binary compatibility.

Check misc/extension_api_validation/4.0-stable.expected for how the new errors look like currently.

Basically the only changes to existing APIs that it now doesn't try to complain about are changing parameter names and increasing the value of an enums _MAX value.

- Ensure that multiple changes to one method cannot hide each other in the CI.
- Check virtual methods for changes.
- Compare the detailed changes to a method.
- Compare enums.
- Fix comparing global enums.
- Use `vformat` to build error messages.
@RedworkDE RedworkDE requested review from a team as code owners May 24, 2023 16:52
@YuriSizov YuriSizov added this to the 4.1 milestone May 24, 2023
@dsnopek
Copy link
Contributor

dsnopek commented May 26, 2023

I didn't test this, but skimming the code and looking at the changes to the .expected file, this looks awesome!

Copy link
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@YuriSizov YuriSizov merged commit a12327e into godotengine:master May 27, 2023
@YuriSizov
Copy link
Contributor

Thanks!

@RedworkDE RedworkDE deleted the gdextension-compat-update-validation branch May 27, 2023 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants