Skip to content
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

Update plugin for Godot 4.2 due to GDExtension compatibility breakage #196

Closed
Dorro101 opened this issue Jul 7, 2023 · 41 comments
Closed

Comments

@Dorro101
Copy link

Dorro101 commented Jul 7, 2023


Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.


Hi

Followed the installation instructions provided by the V3 wiki. Drag and dropped the extracted folder into my new project and...

Screenshot from 2023-07-07 11-01-02

I have just started trying out Godot, but have used git and have a Github account I use for my OpenSCAD projects, which I edit using VS Codium on Fedora Linux 38 (Workstation Edition) on my Lenovo ThinkPad X1 Tablet Gen 3 without issues.

Do I have to wait for a new release, as my casual scanning of the release docs leads me to believe that changes have been made to the GDExtension code?

Thanks
Dorian

@cyanindya
Copy link

I hope it's okay for me to add a bit of info into your issue.

I just updated to Godot 4.1, and I ran into the same issue. The output pane also printed the following error messages:
image

@Dorro101
Copy link
Author

Dorro101 commented Jul 7, 2023

Cool, thanks. Did not think to include the console output. I had to hunt around a bit for a download for the previous version of Godot (4.0.3) and it seems to be working in that version. As said, just started like as in today. Maybe a bit back to front, but my OCD wants my backups in place before I start any new project. I will reign it in a bit (the OCD) and get to grips with the engine first and the worry about version control later.

@scorpion182
Copy link

i am facing the same issue too
image

@Eisendroid
Copy link

Same issue on Linux. Added the "compatiblity_minimum" line in the git_plugin.gdextension file:

Bildschirmfoto vom 2023-07-07 09-26-36

The error message slightly changes, still does not work:

Bildschirmfoto vom 2023-07-07 09-26-59

@BoydyBoydy
Copy link

I also get this error. Same output as @Dorro101
Get tried to convert over to 4.1 and it wouldn't load.

I can still use GIT via command line...

@AFCMS
Copy link

AFCMS commented Jul 7, 2023

@rgreening
Copy link

So, the current git plugin is only 4.0 compatible and will need an update to recompile for 4.1? If i understood the last post correctly. Maybe? My project is stalled atm because we need 4.1 and git at same time. ;)

@Zylann
Copy link

Zylann commented Jul 8, 2023

Note, you can still use Git without a plugin in the meantime, it might just be less convenient tho.
(There are also other GUIs, on Windows I used the one that comes with the Git installer)

@rgreening
Copy link

Note, you can still use Git without a plugin in the meantime, it might just be less convenient tho

I do use it on CLI to push/pull from github but the realtime updates when you accodentally modify a file dont show up and when making a lot of changes its better in the UI to spot those as soon as they happen. I have made a few good catches that i would have missed easily if only committing via cli.

@rgreening
Copy link

As it stands i had to revert to godot 4.0 to continue my project. Any plan rebuild against 4.1 which is what appears to be required to fix the issue at a minimum...

@WiseNoodle
Copy link

Can confirm, same issues on Windows 10 and Mac. Hope this can be resolved soon!

@Calinou Calinou changed the title GDExtension does not load in Godot 4.1 Update plugin for Godot 4.1 due to GDExtension compatibility breakage Jul 10, 2023
@Calinou Calinou pinned this issue Jul 10, 2023
@Epslion404
Copy link

Epslion404 commented Jul 24, 2023

I also get this error. From v4.1.1. Waiting for your updata。
error

@AdaLollA

This comment was marked as off-topic.

@Calinou
Copy link
Member

Calinou commented Jul 25, 2023

@AdaLollA Please don't bump issues without contributing significant new information. Use the 👍 reaction button on the first post instead.

@daveTheOldCoder
Copy link

daveTheOldCoder commented Aug 27, 2023

Can you explain the process of updating this plugin for 4.1+? Does it require deep knowledge of GDExtension?

I hope it gets updated soon. Compatibility with 4.1 and 4.2 would increase the usage of those versions, which means more testing and bug reports for them.

@paddy-exe
Copy link

paddy-exe commented Sep 6, 2023

Hey everyone, I updated the extension for 4.1 and tested it successfully on Windows. If anyone of you is on Linux, I'd appreciate if you could test the PR: #203

Disclaimer:

Opening the demo project the first time will fail with the extension loading (happens to other extension as well). Please close the project and then open it again.

@daveTheOldCoder
Copy link

daveTheOldCoder commented Sep 7, 2023

Are these instructions still correct for testing this PR?
https://github.com/godotengine/godot-git-plugin/blob/6a6f7d1810352ecf6f5153300ea9fa5a3341dfe2/README.md?plain=1

That's the same as the file that's in the .zip download for this PR.

@pancelor
Copy link

pancelor commented Sep 7, 2023

I installed it through the asset store, restarted my project (and got the expected error), restarted again but still got errors: (in the output tab)

core/extension/gdextension.cpp:593 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/godot-git-plugin/git_plugin.gdextension
Failed loading resource: res://addons/godot-git-plugin/git_plugin.gdextension. Make sure resources have been imported by opening the project in the editor at least once.

I added compatibility_minimum = 4.1 based on the docs and now the project won't load -- godot crashes as soon as I try to open that project. I'm not sure if there's some better info I can give than this, but here's a stacktrace from coredumpctl debug godot. I'm running Manjaro and godot --version tells me 4.1.stable.arch_linux

Stack trace of thread 7696:
                #0  0x00007fc74032526c n/a (libc.so.6 + 0x8926c)
                #1  0x00007fc7402d5a08 raise (libc.so.6 + 0x39a08)
                #2  0x00007fc7402be538 abort (libc.so.6 + 0x22538)
                #3  0x00005573c465f8b7 n/a (godot + 0x11d68b7)
                #4  0x00007fc7402d5ab0 n/a (libc.so.6 + 0x39ab0)
                #5  0x00007fc73861551e _ZN5godot7Variant13init_bindingsEv (libgit_plugin.linux.editor.x86_64.so + 0x21551e)
                #6  0x00007fc73860b465 _ZN5godot18GDExtensionBinding4initEPK20GDExtensionInterfacePvP25GDExtensionInitialization (libgit_plugin.linux.editor.x86_64.so + 0x20b465)
                #7  0x00007fc73850e7c9 git_plugin_init (libgit_plugin.linux.editor.x86_64.so + 0x10e7c9)
                #8  0x00005573c804a5dc n/a (godot + 0x4bc15dc)
                #9  0x00005573c80af8fe n/a (godot + 0x4c268fe)
                #10 0x00005573c7da90ba n/a (godot + 0x49200ba)
                #11 0x00005573c7db0513 n/a (godot + 0x4927513)
                #12 0x00005573c7df62a1 n/a (godot + 0x496d2a1)
                #13 0x00005573c7df7162 n/a (godot + 0x496e162)
                #14 0x00005573c804868c n/a (godot + 0x4bbf68c)
                #15 0x00005573c80643e4 n/a (godot + 0x4bdb3e4)
                #16 0x00005573c838816c n/a (godot + 0x4eff16c)
                #17 0x00005573c45fdea7 n/a (godot + 0x1174ea7)
                #18 0x00007fc7402bf850 n/a (libc.so.6 + 0x23850)
                #19 0x00007fc7402bf90a __libc_start_main (libc.so.6 + 0x2390a)
                #20 0x00005573c460ca55 n/a (godot + 0x1183a55)

@paddy-exe
Copy link

Are these instructions still correct for testing this PR?

https://github.com/godotengine/godot-git-plugin/blob/6a6f7d1810352ecf6f5153300ea9fa5a3341dfe2/README.md?plain=1

That's the same as the file that's in the .zip download for this PR.

No, it is not. The latest release is for 4.0 currently and since then the dev builds have changed as well. You can have a look at the GDExtension docs for the 4.1 version (be sure to check which docs branch you read)

@paddy-exe
Copy link

paddy-exe commented Sep 7, 2023

I installed it through the asset store, restarted my project (and got the expected error), restarted again but still got errors: (in the output tab)

core/extension/gdextension.cpp:593 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/godot-git-plugin/git_plugin.gdextension

Failed loading resource: res://addons/godot-git-plugin/git_plugin.gdextension. Make sure resources have been imported by opening the project in the editor at least once.

I added compatibility_minimum = 4.1 based on the docs and now the project won't load -- godot crashes as soon as I try to open that project. I'm not sure if there's some better info I can give than this, but here's a stacktrace from coredumpctl debug godot. I'm running Manjaro and godot --version tells me 4.1.stable.arch_linux


Stack trace of thread 7696:

                #0  0x00007fc74032526c n/a (libc.so.6 + 0x8926c)

                #1  0x00007fc7402d5a08 raise (libc.so.6 + 0x39a08)

                #2  0x00007fc7402be538 abort (libc.so.6 + 0x22538)

                #3  0x00005573c465f8b7 n/a (godot + 0x11d68b7)

                #4  0x00007fc7402d5ab0 n/a (libc.so.6 + 0x39ab0)

                #5  0x00007fc73861551e _ZN5godot7Variant13init_bindingsEv (libgit_plugin.linux.editor.x86_64.so + 0x21551e)

                #6  0x00007fc73860b465 _ZN5godot18GDExtensionBinding4initEPK20GDExtensionInterfacePvP25GDExtensionInitialization (libgit_plugin.linux.editor.x86_64.so + 0x20b465)

                #7  0x00007fc73850e7c9 git_plugin_init (libgit_plugin.linux.editor.x86_64.so + 0x10e7c9)

                #8  0x00005573c804a5dc n/a (godot + 0x4bc15dc)

                #9  0x00005573c80af8fe n/a (godot + 0x4c268fe)

                #10 0x00005573c7da90ba n/a (godot + 0x49200ba)

                #11 0x00005573c7db0513 n/a (godot + 0x4927513)

                #12 0x00005573c7df62a1 n/a (godot + 0x496d2a1)

                #13 0x00005573c7df7162 n/a (godot + 0x496e162)

                #14 0x00005573c804868c n/a (godot + 0x4bbf68c)

                #15 0x00005573c80643e4 n/a (godot + 0x4bdb3e4)

                #16 0x00005573c838816c n/a (godot + 0x4eff16c)

                #17 0x00005573c45fdea7 n/a (godot + 0x1174ea7)

                #18 0x00007fc7402bf850 n/a (libc.so.6 + 0x23850)

                #19 0x00007fc7402bf90a __libc_start_main (libc.so.6 + 0x2390a)

                #20 0x00005573c460ca55 n/a (godot + 0x1183a55)

That is not the only thing you have to change to port the project to 4.1. See my answer above.

@daveTheOldCoder
Copy link

daveTheOldCoder commented Sep 7, 2023

No, it is not. The latest release is for 4.0 currently and since then the dev builds have changed as well. You can have a look at the GDExtension docs for the 4.1 version (be sure to check which docs branch you read)

I would like to help by testing this PR on Linux, but that's making my head explode. I humbly request that you update the readme. :)

@lel-amri
Copy link

Admittedly fixed by #198

@willowitzy See here for a temporary version compatible with current stable.

@Calinou
Copy link
Member

Calinou commented Sep 27, 2023

Note that a tagged release with this commit included still needs to be made, so that official downloads support Godot 4.1 and later. In the meantime, you can download the current stable release and replace the native library with this PR's artifacts, which I've reuploaded for future reference:

@CancerQ
Copy link

CancerQ commented Oct 24, 2023

@Calinou The current version 4.1 is not able to use GDExtension, using the macos ide, the import of GDExtension configuration file error

@CancerQ
Copy link

CancerQ commented Oct 24, 2023

@Calinou The current version 4.1 is not able to use GDExtension, using the macos ide, the import of GDExtension configuration file error

Can only downgrade to 4.0?

@Calinou
Copy link
Member

Calinou commented Oct 25, 2023

@Calinou The current version 4.1 is not able to use GDExtension, using the macos ide, the import of GDExtension configuration file error

GDExtension is available in 4.1, just like in 4.0. You need to use the extensions I linked rather than the ones on the Releases tab though.

@CancerQ
Copy link

CancerQ commented Oct 25, 2023

@Calinou The current version 4.1 is not able to use GDExtension, using the macos ide, the import of GDExtension configuration file error

GDExtension is available in 4.1, just like in 4.0. You need to use the extensions I linked rather than the ones on the Releases tab though.

How do I compile my own GDExtension? I can't use it at the moment, it will report the error

@SonarBeserk
Copy link

SonarBeserk commented Nov 11, 2023

@Calinou Is there an outstanding issue preventing a patch release of the plugin? Based on the compare a handful of other bugs appear to have been resolved v3.0.0...master as well which may be desirable to provide.

@ompadu
Copy link

ompadu commented Dec 2, 2023

4.2 is out, maybe it should be taken into account for the next update

@Calinou Calinou changed the title Update plugin for Godot 4.1 due to GDExtension compatibility breakage Update plugin for Godot 4.2 due to GDExtension compatibility breakage Dec 14, 2023
@juangea
Copy link

juangea commented Dec 17, 2023

Can we have a nightly build of the plugin compatible with 4.1 and 4.2 please?

@Calinou
Copy link
Member

Calinou commented Dec 17, 2023

Can we have a nightly build of the plugin compatible with 4.1 and 4.2 please?

#196 (comment) should work with both 4.1 and 4.2 as the GDExtension ABI hasn't changed for the most part since 4.1.

@juangea
Copy link

juangea commented Dec 17, 2023

Thanks, I missed that comment! :)

@daveTheOldCoder
Copy link

daveTheOldCoder commented Dec 17, 2023

should work with both 4.1 and 4.2

I can confirm that it (3.0.1) does work with both 4.1 and 4.2. It's been almost three months since it was made available in that comment. Is there a reason why it's not published as a release here and updated in the asset library?

@Calinou
Copy link
Member

Calinou commented Dec 18, 2023

Is there a reason why it's not published as a release here and updated in the asset library?

Lack of time to package it into a release 🙂

I've used the release.sh script to create a v3.1.0 release, can you test it? https://github.com/godotengine/godot-git-plugin/releases/tag/v3.1.0

@daveTheOldCoder
Copy link

daveTheOldCoder commented Dec 18, 2023

I just did some quick tests using Godot 4.2.1-stable on Linux, and it worked correctly.

I'll make a post on the forum asking others to test it.

@Calinou
Copy link
Member

Calinou commented Dec 18, 2023

I'll close this as this seems to be resolved now.

@Calinou Calinou closed this as completed Dec 18, 2023
@Calinou Calinou unpinned this issue Dec 18, 2023
@daveTheOldCoder
Copy link

daveTheOldCoder commented Dec 19, 2023

I'll close this as this seems to be resolved now.

There's still the update to the Asset Library, unless it's been submitted and is awaiting approval.
https://godotengine.org/asset-library/asset?filter=godot-git-plugin&category=&godot_version=&cost=&sort=updated

I suppose I could do that, if no one else wants to bother with it. I don't think it requires write-access to this repository.

@Calinou
Copy link
Member

Calinou commented Dec 19, 2023

There's still the update to the Asset Library, unless it's been submitted and is awaiting approval.
godotengine.org/asset-library/asset?filter=godot-git-plugin&category=&godot_version=&cost=&sort=updated

I've updated the existing 4.0+ asset library submission to point to v3.1.0 of this add-on and target 4.2 (doing so requires write access). The asset library currently doesn't allow specifying multiple minor versions to be compatible, so it can't be marked as compatible for 4.1.

We can probably change add-on filtering in the editor to work with greater minor versions, i.e. you'd be able to see assets targeting 4.1 when using 4.2 (but you wouldn't see 3.5 assets). These will work the vast majority of the time, but we can display a warning above each asset targeting an older version stating that compatibility isn't guaranteed.

@daveTheOldCoder
Copy link

When I first submitted an asset to the library, I specified the latest version of Godot on which I had tested it. I later realized that the specified version should be the lowest that's compatible, since that determines whether it's visible when accessing the asset library from Godot.

@Calinou
Copy link
Member

Calinou commented Dec 19, 2023

I later realized that the specified version should be the lowest that's compatible, since that determines whether it's visible when accessing the asset library from Godot.

You're correct, this appears to already be the case. I've changed the plugin's minimum version to 4.1.

@daveTheOldCoder
Copy link

Shouldn't there be separate assets for 4.0 and 4.1/4.2, so that 4.0 users have a compatible plugin to use?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.