You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to Godot developing at such a fast pace and GDExtension C API constantly breaking, people keep running into version mismatching issues. Typically, this manifests as UB and crashes at runtime.
This could be addressed in multiple, partly orthogonal ways:
Write down general guidelines w.r.t. which Godot and which godot-rust version to use. For example, link to nightly builds.
Keep a compatibility map with a few explicit version matches. A simple approach might be Git tags like godot-beta-17 in the repo. Ideally, this would be CI-tested, although that's quite a bit of effort to automate.
Maintain a repo for Godot artifacts of certain versions (e.g. nightly builds or beta releases). We could still not mix&match due to C header having a direct influence on Rust code, but it may facilitate fetching correct versions of Godot input artifacts, such as:
C API: gdextension_interface.h
JSON API: extension_api.json
XML documentation
meta information (version, is it nightly/beta/etc, maybe build config)
Output a warning if a mismatching Godot version is detected, or an error in severe cases.
The text was updated successfully, but these errors were encountered:
We can parse this out with a build script or a proc-macro, and bake it into the library as a startup check. If it's being run with an incompatible Godot version, just panic and give up.
Due to Godot developing at such a fast pace and GDExtension C API constantly breaking, people keep running into version mismatching issues. Typically, this manifests as UB and crashes at runtime.
Examples:
use godot::engine::{file_access, os}; no
file_accessin
engineThis could be addressed in multiple, partly orthogonal ways:
Write down general guidelines w.r.t. which Godot and which godot-rust version to use. For example, link to nightly builds.
Keep a compatibility map with a few explicit version matches. A simple approach might be Git tags like
godot-beta-17
in the repo. Ideally, this would be CI-tested, although that's quite a bit of effort to automate.Maintain a repo for Godot artifacts of certain versions (e.g. nightly builds or beta releases). We could still not mix&match due to C header having a direct influence on Rust code, but it may facilitate fetching correct versions of Godot input artifacts, such as:
gdextension_interface.h
extension_api.json
Output a warning if a mismatching Godot version is detected, or an error in severe cases.
The text was updated successfully, but these errors were encountered: