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

Drop support for Godot 4.0 #820

Merged
merged 8 commits into from
Jul 27, 2024
Merged

Drop support for Godot 4.0 #820

merged 8 commits into from
Jul 27, 2024

Conversation

Bromeon
Copy link
Member

@Bromeon Bromeon commented Jul 27, 2024

After almost 1.5 years of efforts for a compatibility bridge and ongoing maintenance, godot-rust v0.2 will cease to support any Godot version before 4.1.

Despite Godot 4.0 not adhering to compatibility (it's not even possible to reliably use a 4.0.1 extension under a 4.0.2 binary), we have supported individual versions for the entire time. GDExtension was only production-ready from Godot 4.1 onwards, taking backwards compatibility seriously -- so it's still possible today to use extensions written under 4.1.

Removing support comes with a MASSIVE simplification of our codebase, probably the biggest ever. I can delete entire files which only existed as a compatibility layer. Several weird special cases regarding parameter passing over FFI now no longer need to be considered. CI will become faster, as we get rid of 4.0 compat checks. Unsafe GString::chars_unchecked() method can be replaced with a safe variant, at no loss of performance. The gdextension-api dependency can be made smaller, as it doesn't need to ship 4.0 artifacts.

Crate releases 0.1.x still maintain compatibility with Godot 4.0.

@Bromeon Bromeon added c: tooling CI, automation, tools c: ffi Low-level components and interaction with GDExtension API breaking-change Requires SemVer bump labels Jul 27, 2024
@Bromeon Bromeon added this to the 0.2 milestone Jul 27, 2024
@GodotRust
Copy link

API docs are being generated and will be shortly available at: https://godot-rust.github.io/docs/gdext/pr-820

@Bromeon Bromeon force-pushed the qol/drop-godot-4.0 branch from 0359a5d to 397e1d4 Compare July 27, 2024 20:05
@Bromeon Bromeon force-pushed the qol/drop-godot-4.0 branch from 397e1d4 to c548898 Compare July 27, 2024 20:10
@Bromeon Bromeon added this pull request to the merge queue Jul 27, 2024
Merged via the queue into master with commit e1cbb68 Jul 27, 2024
14 checks passed
@Bromeon Bromeon deleted the qol/drop-godot-4.0 branch July 27, 2024 20:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change Requires SemVer bump c: ffi Low-level components and interaction with GDExtension API c: tooling CI, automation, tools
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants