From 35dede406f92789934479779a30750c5c6425b8d Mon Sep 17 00:00:00 2001 From: Jan Haller Date: Mon, 19 Feb 2024 17:13:13 +0100 Subject: [PATCH 1/2] Remove 3 methods from GDExtension class, as they were removed upstream The following methods could not be properly used; it was thus decided to unbind them from the GDExtension API despite a breaking change: * GDExtension::open_library * GDExtension::initialize_library * GDExtension::close_library --- godot-codegen/src/special_cases/special_cases.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/godot-codegen/src/special_cases/special_cases.rs b/godot-codegen/src/special_cases/special_cases.rs index 4b371985f..575ecb909 100644 --- a/godot-codegen/src/special_cases/special_cases.rs +++ b/godot-codegen/src/special_cases/special_cases.rs @@ -41,6 +41,11 @@ pub fn is_class_method_deleted(class_name: &TyName, method: &JsonClassMethod, ct //| ("Object", "to_string") | ("Object", "get_instance_id") + // Removed in https://github.com/godotengine/godot/pull/88418, but they cannot reasonably be used before, either. + | ("GDExtension", "open_library") + | ("GDExtension", "initialize_library") + | ("GDExtension", "close_library") + // Thread APIs | ("ResourceLoader", "load_threaded_get") | ("ResourceLoader", "load_threaded_get_status") From 0db2d361b451a160bde3ca63f4a32bd0dc3f5ba2 Mon Sep 17 00:00:00 2001 From: Jan Haller Date: Mon, 19 Feb 2024 17:19:55 +0100 Subject: [PATCH 2/2] Run both minimal and full CIs against full+experimental codegen --- .github/workflows/full-ci.yml | 11 +++++++---- .github/workflows/minimal-ci.yml | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/full-ci.yml b/.github/workflows/full-ci.yml index 5e61f224c..c3c136a11 100644 --- a/.github/workflows/full-ci.yml +++ b/.github/workflows/full-ci.yml @@ -265,14 +265,17 @@ jobs: # Don't use latest Ubuntu (22.04) as it breaks lots of ecosystem compatibility. # If ever moving to ubuntu-latest, need to manually install libtinfo5 for LLVM. - - name: linux + + # Uses full+experimental codegen, so that compatibility breakage towards nightly is detected. + # If the experimental part causes problems, consider using only godot/codegen-full. + - name: linux-full os: ubuntu-20.04 - artifact-name: linux-nightly + artifact-name: linux-full-nightly godot-binary: godot.linuxbsd.editor.dev.x86_64 - rust-extra-args: --features godot/custom-godot + rust-extra-args: --features codegen-full-experimental # Combines now a lot of features, but should be OK. lazy-function-tables doesn't work with experimental-threads. - - name: linux-double-full-lazy + - name: linux-double-lazy os: ubuntu-20.04 artifact-name: linux-double-nightly godot-binary: godot.linuxbsd.editor.dev.double.x86_64 diff --git a/.github/workflows/minimal-ci.yml b/.github/workflows/minimal-ci.yml index 41f304678..fd9a38c8c 100644 --- a/.github/workflows/minimal-ci.yml +++ b/.github/workflows/minimal-ci.yml @@ -145,11 +145,11 @@ jobs: # Linux - - name: linux + - name: linux-full os: ubuntu-20.04 artifact-name: linux-nightly godot-binary: godot.linuxbsd.editor.dev.x86_64 - rust-extra-args: --features godot/custom-godot + rust-extra-args: --features codegen-full-experimental - name: linux-features os: ubuntu-20.04