diff --git a/engine/guidelines/index.rst b/engine/guidelines/index.rst index 9b308f2..0b1463c 100644 --- a/engine/guidelines/index.rst +++ b/engine/guidelines/index.rst @@ -1,3 +1,5 @@ +.. _doc_engine_guidelines: + Engine contribution guidelines ============================== diff --git a/index.rst b/index.rst index 5106102..2ea8c9c 100644 --- a/index.rst +++ b/index.rst @@ -80,3 +80,4 @@ for your topic of interest. You can also use the search function in the top-left other/website other/demos other/benchmarks + other/godot-cpp diff --git a/other/godot-cpp.rst b/other/godot-cpp.rst new file mode 100644 index 0000000..c2f6cbb --- /dev/null +++ b/other/godot-cpp.rst @@ -0,0 +1,40 @@ +Contributing to godot-cpp +========================= + +.. seealso:: + + You may also be interested in visiting godot-cpp's official documentation: + `C++ (godot-cpp) on the Godot docs `__ + +Thank you for your interest in contributing to `godot-cpp `__, +the official C++ GDExtension bindings maintained as part of the Godot project! +We greatly appreciate help in maintaining and extending this project. + +If you wish to help out, ensure you have an account on GitHub and create a "fork" of the +`godot-cpp repository `__. +To contribute, please use our regular :ref:`PR workflow `. +The code should adhere to the same :ref:`code guidelines ` as the engine itself. + +Please install clang-format and the `pre-commit `__ Python framework so formatting is done +before your changes are submitted. See the :ref:`code style guidelines ` for instructions. + +Feature guidelines +------------------ + +godot-cpp's API is modeled after Godot's API. We want writing godot-cpp code to be as similar as possible +to writing a +`module `__ +as possible. This means: + +* The frameworks (templates, helper methods, etc.) are synchronized to Godot's frameworks regularly. +* We will not add features that are not already present in Godot. If you want to add new features + to godot-cpp's API, please consider proposing the feature to Godot itself first. + +If you want to make changes to Godot's API, you can use one of two systems: + +* `Core features `__: You can add + new methods and classes to Godot's core features. This exposes the new functionality on godot-cpp as well. + To get started, please see :ref:`doc_intro_to_engine_contributions`. +* `GDExtension API `__: You can add + GDExtension lifecycle methods to the GDExtension API itself. We do not have an article for this kind of change as of + yet.