godotengine / godot-git-plugin

Git implementation of the VCS interface in Godot
MIT License
656 stars 64 forks source link

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

Closed Dorro101 closed 7 months ago

Dorro101 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

i am facing the same issue too image

Eisendroid commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

Guess its because of this....

https://github.com/godotengine/godot-docs/pull/7611/commits/51f7e5c4faec3eee80f21afc47e84a466dcccb7b#diff-0d2c3bbaf7abd047105aefccd9684c367fe5edace2f44ed181bf2636ba53fab0R16-R18

rgreening commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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

NASATA777 commented 11 months ago

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

AdaLollA commented 11 months ago

Would really love to see the update go through. Some people are already reporting that the pull request above is working for them.

Calinou commented 11 months ago

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

daveTheOldCoder commented 10 months ago

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 commented 10 months ago

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: https://github.com/godotengine/godot-git-plugin/pull/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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 9 months ago

Admittedly fixed by https://github.com/godotengine/godot-git-plugin/pull/198

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

Calinou commented 9 months ago

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 commented 8 months ago

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

CancerQ commented 8 months ago

@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 commented 8 months ago

@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 commented 8 months ago

@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 commented 8 months ago

@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 https://github.com/godotengine/godot-git-plugin/compare/v3.0.0...master as well which may be desirable to provide.

ompadu commented 7 months ago

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

juangea commented 7 months ago

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

Calinou commented 7 months ago

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

https://github.com/godotengine/godot-git-plugin/issues/196#issuecomment-1738091498 should work with both 4.1 and 4.2 as the GDExtension ABI hasn't changed for the most part since 4.1.

juangea commented 7 months ago

Thanks, I missed that comment! :)

daveTheOldCoder commented 7 months ago

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 commented 7 months ago

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 :slightly_smiling_face:

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 commented 7 months ago

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 commented 7 months ago

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

daveTheOldCoder commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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?