Godot compatibility guidelines · Issue #107 · godot-rust/gdext (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

@Bromeon

Description

@Bromeon

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:


This could be addressed in multiple, partly orthogonal ways:

  1. Write down general guidelines w.r.t. which Godot and which godot-rust version to use. For example, link to nightly builds.
  2. 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.
  3. 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)
  4. Output a warning if a mismatching Godot version is detected, or an error in severe cases.