MatejSloboda / Dijkstra_map_for_Godot

MIT License
78 stars 13 forks source link

Fails on Godot 3.5 #111

Closed goblinJoel closed 2 years ago

goblinJoel commented 2 years ago

Hi, just tried updating from Godot 3.4.4 to 3.5, and I get this error:

E 0:00:00.930 gdnative_init: Error loading GDNative file res://addons/dijkstra-map/Dijkstra_map_library/bin/windows/dijkstra_map_gd.dll: GodotEngine v4.* is not yet supported. See https://github.com/godot-rust/godot-rust/issues/396

dijkstra_map_gd.dll:0 @ gdnative_init()

I did some digging and think this is due to https://github.com/godot-rust/godot-rust/issues/904 , which has been fixed, but I don't think they've made a new release yet. https://github.com/godot-rust/godot-rust/pull/910 appears to be the PR for Godot 3.5 support.

I'm not sure if there's anything you can do yet, but I wanted to bring it to your attention, since I assume an update will be needed once godot-rust updates to support 3.5.

This addon has been super useful for me, thanks for making it!

astrale-sharp commented 2 years ago

Thanks for bringing it to our attention, I'll investigate soon! EDIT : maybe not soon ~~


From: Joel @.> Sent: Saturday, August 13, 2022 8:18:22 PM To: MatejSloboda/Dijkstra_map_for_Godot @.> Cc: Subscribed @.***> Subject: [MatejSloboda/Dijkstra_map_for_Godot] Fails on Godot 3.5 (Issue #111)

Hi, just tried updating from Godot 3.4.4 to 3.5, and I get this error:

E 0:00:00.930 gdnative_init: Error loading GDNative file res://addons/dijkstra-map/Dijkstra_map_library/bin/windows/dijkstra_map_gd.dll: GodotEngine v4.* is not yet supported. See godot-rust/godot-rust#396https://github.com/godot-rust/godot-rust/issues/396 dijkstra_map_gd.dll:0 @ gdnative_init()

I did some digging and think this is due to godot-rust/godot-rust#904https://github.com/godot-rust/godot-rust/issues/904 , which has been fixed, but I don't think they've made a new release yet. godot-rust/godot-rust#910https://github.com/godot-rust/godot-rust/pull/910 appears to be the PR for Godot 3.5 support.

I'm not sure if there's anything you can do yet, but I wanted to bring it to your attention, since I assume an update will be needed once godot-rust updates to support 3.5.

— Reply to this email directly, view it on GitHubhttps://github.com/MatejSloboda/Dijkstra_map_for_Godot/issues/111, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMZTDKQFKYQKBCNKWNTQAOTVY7RG5ANCNFSM56OQEY6Q. You are receiving this because you are subscribed to this thread.Message ID: @.***>

TheSolarPrincess commented 2 years ago

So when can we expect to get this fixed?

astrale-sharp commented 2 years ago

I messed with the code to get confident again and see if there was an easy way to fix the issue in dijkstra-map-gd/Cargo.toml i put gdnative = { git = "https://github.com/Bromeon/godot-rust.git", hash = "1c65c2e145f3068ac1255ecad591121cf2a2cdef" } just after the issue you referenced was fixed.

But we're using 0.9 and it's using 0.10 so we would have to transition to that which is a little more than i can handle.

I'll tinker a little bit more to see if there is an easy workaround.

@timujin you could eventually open a PR if you feel confident making the transition!

goblinJoel commented 2 years ago

Someone on that 910 PR mentioned doing that with the draft branch: gdnative = { git = "https://github.com/Bromeon/godot-rust.git", branch = "feature/godot-3.5" } and said it worked for them. That would have a few more commits than the 1c65 I think.

But no doubt that also uses 0.10.

I'd try to help, but I've literally never used Rust!

Bromeon commented 2 years ago

The next godot-rust v0.10.1 release is planned, until then I can recommend the approach mentioned by @goblinJoel. I would depend on a branch rather than a rev, because you can simply run cargo update to include more recent improvements.

However I'm not yet sure if I can include the Godot 3.5 updates into that version, due to SemVer concerns (sometimes the GDNative API changes between Godot minor versions, and for sure it adds new default parameters, which are currently breaking changes in Rust).

If someone has more information about the GDNative API changes between Godot 3.4 and 3.5, that would be great to know! The official changelog is quite brief, I think I'll need to also look into other categories (e.g. get_meta() default parameter is listed under Core).

Bromeon commented 2 years ago

Update: Godot 3.5.1 is now officially supported with gdnative 0.11.0.

As anticipated, I went with a SemVer breaking change, although the API is almost entirely compatible.

astrale-sharp commented 2 years ago

started working on the transition but it fails with trait errors/ macro errors that i dont understand right now ^^'

if someone feels like helping i opened a draft, advice is welcome as well !

the draft works as a workaround with some caveat for now, there is instructions to make it work there #112

astrale-sharp commented 2 years ago

The work is Done ! You still have to compile yourself to support godot 3.5.1 but its all working, closing now