Engine contribution guidelines

This section explains guidelines for contributing to the engine.

Handling compatibility breakages

Godot follows a major.minor.patch versioning scheme, and each level carries different expectations around compatibility:

Maintainers generally control what kind of feature is merged at which part of the dev cycle. That being said, you can expect the following kinds of changes to be merged for each version:

  • Patch releases (e.g. 4.3.1 to 4.3.2) should not break compatibility at all.

  • Minor releases (e.g. 4.3 to 4.4) should generally not break compatibility, except to fix bugs. New features are added in backwards-compatible ways.

  • Major releases (e.g. 4.x to 5.0) are rare and can include major changes that break compatibility.

If your change adds a parameter to a method, changes a return type, changes the type of a parameter, or alters a default value, you need to implement a GDExtension compatibility method. The CI validation system checks for this automatically, and the pull request cannot be merged until it passes.

Note

Reviewers and area maintainers examine PRs with the breaks compat label more closely, checking whether the breakage is justified and whether the compatibility methods are correctly implemented.