Godot compatibility guidelines · Issue #107 · godot-rust/gdext (original) (raw)
Navigation Menu
- GitHub Copilot Write better code with AI
- GitHub Models New Manage and compare prompts
- GitHub Advanced Security Find and fix vulnerabilities
- Actions Automate any workflow
- Codespaces Instant dev environments
- Issues Plan and track work
- Code Review Manage code changes
- Discussions Collaborate outside of code
- Code Search Find more, search less
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Description
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:
- Does not work on Godot 4 beta 5 (but does with beta4) #25
- Editor crashes while loading gdextension #26
- cargo build error use godot::engine::{file_access, os}; no file_access in engine #39
- Everything is successful unless version number screws up #47
- The examples does not run properly #51
- Error when building the repo #106
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)
- C API:
- Output a warning if a mismatching Godot version is detected, or an error in severe cases.