2017-12-18 14:06:58 +03:00
## Contributing to raylib
Hello contributors! Welcome to raylib!
2019-05-24 13:22:20 +03:00
Do you enjoy raylib and want to contribute? Nice! You can help with the following points:
2021-04-15 13:31:55 +03:00
- `C programming` - Can you write/review/test/improve the code?
2024-10-23 18:03:50 +03:00
- `Documentation/Tutorials/Example` - Can you write some tutorials/examples?
2021-04-15 13:31:55 +03:00
- `Porting to other platforms` - Can you port/adapt/compile raylib on other systems?
- `Web Development` - Can you help [with the website ](https://github.com/raysan5/raylib.com )?
- `Testing` - Can you find some bugs in raylib?
2019-05-24 13:22:20 +03:00
2017-12-18 14:06:58 +03:00
This document contains a set of guidelines to contribute to the project. These are mostly guidelines, not rules.
2024-05-30 09:22:07 +03:00
Use your best judgment, and feel free to propose changes to this document in a pull request.
2017-12-18 14:06:58 +03:00
### raylib philosophy
2021-04-15 13:31:55 +03:00
- raylib is a tool to **ENJOY** videogames programming, every function in raylib is designed as a mini-tutorial on itself.
- raylib is **SIMPLE** and **EASY-TO-USE** , I tried to keep it compact with a small set of functions, if a function is too complex, better not including it.
2020-03-21 15:37:48 +03:00
- raylib is open source and free; educators and institutions can use this tool to **TEACH** videogames programming completely for free.
2019-12-13 22:40:47 +03:00
- raylib is collaborative; contribution of tutorials / code examples / bug fixes / code comments are highly appreciated.
2021-04-15 13:31:55 +03:00
- raylib's license (and its external libs respective licenses) allow using raylib on commercial projects.
2017-12-18 14:06:58 +03:00
### Some interesting reads to start with
- [raylib history ](HISTORY.md )
- [raylib architecture ](https://github.com/raysan5/raylib/wiki/raylib-architecture )
2020-01-07 18:45:17 +03:00
- [raylib license ](LICENSE )
2017-12-18 14:06:58 +03:00
- [raylib roadmap ](ROADMAP.md )
2024-05-30 09:22:07 +03:00
[raylib Wiki ](https://github.com/raysan5/raylib/wiki ) contains some information about the library and is open to anyone to edit.
2018-07-16 03:07:48 +03:00
Feel free to review it if required, just take care not to break something.
2017-12-18 14:06:58 +03:00
2017-12-19 11:19:43 +03:00
### raylib C coding conventions
Despite being written in C, raylib does not follow the standard Hungarian notation for C,
it [follows Pascal-case/camel-case notation ](https://github.com/raysan5/raylib/wiki/raylib-coding-conventions ),
2024-05-30 09:22:07 +03:00
more common in C# language. All code formatting decisions have been carefully taken
2020-03-21 15:37:48 +03:00
to make it easier for students/users to read, write and understand code.
2017-12-19 11:19:43 +03:00
Source code is extensively commented for that purpose, raylib primary learning method is:
2021-04-15 13:31:55 +03:00
> `Learn by reading code and examples`
2017-12-19 11:19:43 +03:00
2021-04-15 13:31:55 +03:00
For detailed information on building raylib and examples, please check [raylib Wiki ](https://github.com/raysan5/raylib/wiki ).
2017-12-18 14:06:58 +03:00
### Opening new Issues
2024-05-30 09:22:07 +03:00
To open new issues for raylib (bug, enhancement, discussion...), just try to follow these rules:
2017-12-18 14:06:58 +03:00
- Make sure the issue has not already been reported before by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a
title and clear description, as much relevant information as possible, and a code sample demonstrating the unexpected behavior.
2024-05-30 09:22:07 +03:00
- If applicable, attach some screenshot of the issue and a .zip file with the code sample and required resources.
2017-12-18 14:06:58 +03:00
- On issue description, add a brackets tag about the raylib module that relates to this issue.
2019-12-13 22:40:47 +03:00
If don't know which module, just report the issue, I will review it.
2017-12-18 14:06:58 +03:00
- You can check other issues to see how is being done!
### Sending a Pull-Request
2017-12-19 11:19:43 +03:00
- Make sure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
2019-12-13 22:40:47 +03:00
- Don't send big pull requests (lots of changelists), they are difficult to review. It's better to send small pull requests, one at a time.
2024-05-30 09:22:07 +03:00
- Verify that changes don't break the build (at least on Windows platform). The more platforms where you can test it, the better, but don't worry
2017-12-19 11:19:43 +03:00
if you cannot test all the platforms.
2017-12-18 14:06:58 +03:00
2017-12-19 11:19:43 +03:00
### Contact information
2017-12-18 14:06:58 +03:00
2017-12-19 11:19:43 +03:00
If you have any doubt, don't hesitate to [contact me ](mailto:ray@raylib.com )!.
2017-12-18 14:06:58 +03:00
You can write me a direct mail but you can also contact me on the following networks:
2021-03-20 22:22:44 +03:00
- [raylib Discord ](https://discord.gg/raylib ) - A direct communication channel for project discussions.
2017-12-18 14:06:58 +03:00
- [raylib twitter ](https://twitter.com/raysan5 ) - My personal twitter account, I usually post about raylib, you can send me PMs.
2021-04-15 13:31:55 +03:00
- [raylib reddit ](https://www.reddit.com/r/raylib/ ) - A good place for discussions or to ask for help.
2017-12-18 14:06:58 +03:00
- [raylib web ](http://www.raylib.com/ ) - On top-right corner there is a bunch of networks where you can find me.
Thank you very much for your time! :)