Thank you for your interest in contributing to raylib-zig. There are some guidelines you will need to follow in order to get your contribution added to the project as fast as possible.
This binding will never target any Zig version newer than the latest release. Fixes that don't affect compatibility with the latest release and allow the binding to be used on a pre-release/HEAD version of Zig may be accepted.
Usually this binding will stay on the latest release commit for raylib, but occasionally upgrade to a HEAD version when there are changes made, critical to the Zig build. In those cases there will be a release tag on GitHub, marking the latest commit that uses a raylib release. Previously there were extra branches for older versions of raylib, but this approach was abandoned.
raylib-zig is built mostly through the generate_functions.py
script. It creates the definitions to access the raw C
functions, and creates aliases with proper Zig argument and return types, Zig style names and errors. The raylib types,
however, are created manually and should only be updated in their respective preludes:
lib/preludes/raylib-prelude.zig
for raylib typeslib/preludes/raymath-prelude.zig
for raymath typeslib/preludes/rlgl-prelude.zig
for rlgl typeslib/preludes/raygui-prelude.zig
for raygui types
Before any commit you make, you should always run generate_functions.py
to ensure your changes are persistent
throughout other updates.
Updates to raylib-zig's build.zig
, as any other contributions to binding files, are very welcome. However, when
updating public names or APIs, you should always ensure that the project template in project_setup.sh
still
works with them.