Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 1.83 KB

CONTRIBUTING.md

File metadata and controls

35 lines (25 loc) · 1.83 KB

Contributing to raylib-zig

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.

Updates to the Zig version

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.

Updates to the raylib version

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.

Updates to the binding files

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 types
  • lib/preludes/raymath-prelude.zig for raymath types
  • lib/preludes/rlgl-prelude.zig for rlgl types
  • lib/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 the build files

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.