-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
CI: Remove godot-cpp
workflow
#98027
base: master
Are you sure you want to change the base?
Conversation
is the case of new methods that conflict with existing godotcpp methods covered? |
I'm not sure if that case was covered in the first place |
Hi, From what I recall, this was added to the Godot repo during the development of 4.0, at that time the API was changing frequently which would silently break the bindings. Typical scenario is as follow:
So we would end with changes frequently added to the main Godot repo that would break the Godot-CPP repo, so somebody else would have to fix this :( Again, this was a long time ago so I might miss some of the picture here. Anyway, now that Godot 4.0 have landed, the API is supposed to be backward compatible so those frequent checks should be necessary anymore. My only concern is, as @fire stated, how do we currently enforce this backward compatibility. Do we have some check in the CI on that (typically generating the GDExtension's |
We have compatibility checks for method data like arguments and defaults, so that's covered, we should evaluate what kind of checks would be needed to reduce the risk of other issues like naming and collisions perhaps, we also have this PR which will catch some things that the godot-cpp run would otherwise catch: We also already have checks for default arguments: So maybe we can add some checks for reserved names in godot-cpp and similar My concern is that CI is run relatively rarely in the godot-cpp repo as the pace of additions is much lower there, so errors could go unnoticed for weeks if we're unlucky, and could be hard to pin down, but as long as we can reduce the risk as much as possible by running additional CI checks for these things I think it's worth it to remove this build as it does take some time One option would be to reduce the godot-cpp CI check to just building the library and not the test extension, that would reduce the runtime and lose relatively little critical things from the checks |
I'm entirely open to adding specialized CI checks if need be; I'm just not convinced that was accomplished with the |
I'd prefer to keep some version of this in CI. We do have the checks of We don't run the godot-cpp tests all that often, really only when a new PR is created or a PR is merged. And it's also nice to detect breaks in any of these things on the Godot PR that breaks them, rather than later when the godot-cpp CI breaks, and we have to come back and fix someone else's work. |
Hmm, then I suppose an alternative could be adjusting the tests to run only when needed; something similar to how certain pre-commit checks only occur when relevant files are touched. That, and integrating ThousandShip's suggestion of building the library by itself would speed things up. Throw in caching improvements (godotengine/godot-cpp#1611) & it very well could be viable to have tests on the main repo after all Converting this to a draft while I brainstorm how best to implement this; will probably take some cues from #97742 as well. |
godot_cpp_test.yml
doesn't seem to have a purpose in this repo. All it does is build agodot-cpp
test instance, without even running/validating anything afterward. This is ultimately redundant, withgodot-cpp
having CI for this process already, and cached at that. We also now validategdextension_interface.h
instatic_checks.yml
instead1, meaning the only niche it had before is now safely handled elsewhere. As such, I see no reason to keep it around anymore, and removed it in this PR. Consequently, thegodot-api-dump
action & references to it were also removed, as thegodot-cpp
workflow was their only use-caseIf there's scenarios I'm not seeing/considering, please let me know. Though, given this removal speeds up total GHA time by a substantial 8-9 minutes, it'd be a pretty tough sell to keep this workflow around for any longer
Footnotes
CI: Improve
godot-cpp
actions #97166 ↩