👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to esx-framework and its packages, which are hosted in the ESX Organization on Github. These are mostly just guidelines, rather than rules. Try to use your best judgement, and feel free to propose changes to this document in a pull request.
I don't want to read all of this, I just have a question!
What should I know before getting started?
This project and everyone participating in it is governed by the ESX Code of Conduct. By participating, you are expected to follow this code. Please report any unacceptable behavior to development@esx-framework.dev.
Note: Please don't file an issue on Github to ask a question, you'll get faster results by using the resources below.
We have an official discord server with helpful advice if you have questions about ESX v2.
Notice: We do not provide support for ESX v1 resources, use the forums to get community-based support for v1 resources. Please understand that you are not guaranteed to receive support.
ESX v2 is a replacment for the deprecated ESX v1 FiveM framework. Version 2 aims to create a framework that is more modular and optimized. If you're not familiar with the concept of modularization, you can look at the Official Documentation | Modules
You can contribute to the ESX projects in many ways, but here is a non-exhaustive list of what contributors normally do:
A bug is something that should be working, but it doesn't. Reporting bugs seems easy, but keep in mind you'll have to provide at least the reproduction steps or even a reproduction case, it make everyone's life easier when details are accurate. If you do not provide enough details, then it may be very difficult to identify the issue that is happening. You can use the Github issue template to guide you.
Enhancements are taking something that already exists and improving it in any number of different ways. Explain why you propose such an enhancement and what it involves. Will the change cause other things to break? Just like with bugs, please use the Github issue template to suggest enhancements.
If you want to start helping us with code, you can start by browsing the currently known issues and see if it has a label called Easy Pick. Issues labeled with Easy Pick should be more simple things that won't take a ton of time or knowledge in order to fix.
When you are ready to start contributing, we recommend that you fork es_extended, create a new branch, submit your changes to that branch, and then make a pull request either to track the feature or to request a code review. After the code review, if it is satisfactory and doesn't cause any issues we'll merge the changes into the develop branch of the official repository. Please understand that there will be certain standards that must be followed for all code that is submitted to ESX v2.
Before you decide to contribute, please understand and acknowledge that by submitting any code to ESXv2, you will be transferring the copyright of that code to the ESX v2 copyright. If you do not acknowledge and accept these terms, then please do not contribute.
The style guidelines are not very strict, but whatever you do must be easily readable and the naming is important (as per the standards for ESXv2). We do not ask you to use these styleguides, but rather to encourage such styles.
For the most part, we are using Conventional Commits.