mirror of
https://github.com/FWGS/xash3d-fwgs
synced 2024-11-22 09:56:22 +01:00
Create CONTRIBUTING.md
This commit is contained in:
parent
dbb4b2c1f9
commit
94cfe1217a
53
CONTRIBUTING.md
Normal file
53
CONTRIBUTING.md
Normal file
@ -0,0 +1,53 @@
|
||||
# Contributing to Xash3D FWGS
|
||||
|
||||
Third-party patches for Xash3D FWGS are great idea.
|
||||
But if you want your patch to be accepted, we can give you few guidelines.
|
||||
|
||||
## If you are reporting bugs
|
||||
|
||||
1. Check you are using latest version. You can build latest Xash3D FWGS for yourself, look to README.md.
|
||||
2. Check open issues is your bug is already reported and closed issues if it reported and fixed. Don't send bug if it's already reported.
|
||||
3. Now you can write bugreport.
|
||||
4. Describe steps to reproduce bug.
|
||||
5. Describe which OS and architecture you are using.
|
||||
6. Re-run engine with `-dev 2 -log` arguments, reproduce bug and post engine.log which can be found in your working directory.
|
||||
7. Attach screenshot if it will help clarify the situation.
|
||||
|
||||
## If you are contributing code
|
||||
|
||||
### Which branch?
|
||||
|
||||
* We recommend using `master` branch. But you still can use any of our branches, if they are up-to-date.
|
||||
|
||||
### Third-party libraries
|
||||
|
||||
* Philosophy of any Xash Project by Uncle Mike: don't be bloated. We follow it too.
|
||||
* There is allowed only these libraries, which is used in Linux GoldSrc version or if there is a REAL reason to use library.
|
||||
|
||||
### Portability level
|
||||
|
||||
* Xash3D have it's own crt library. It's recommended to use it. It most cases it's just a wrappers around standart C library.
|
||||
* If your feature need platform-specific code, try to implement to every supported OS and every supported compiler.
|
||||
* You must put it under appopriate macro. It's a rule: Xash3D FWGS must at least compile everywhere.
|
||||
|
||||
| OS | Macro |
|
||||
| -- | ----- |
|
||||
| Linux | `defined(__linux__)` |
|
||||
| FreeBSD | `defined(__FreeBSD__)` |
|
||||
| NetBSD | `defined(__NetBSD__)` |
|
||||
| OpenBSD | `defined(__OpenBSD__)` |
|
||||
| OS X/iOS | `defined(__APPLE__)` and TargetConditionals macros |
|
||||
| Windows | `defined(_WIN32)` |
|
||||
| Android | `defined(__ANDROID__)` |
|
||||
| Emscripten | `defined(__EMSCRIPTEN__)` |
|
||||
|
||||
### Code style
|
||||
|
||||
* This project uses mixed Quake's and HLSDK's C/C++ code style convention.
|
||||
* In short:
|
||||
* Use spaces in parenthesis. Even in empty.
|
||||
* Use tabs, not spaces, for indentation.
|
||||
* Any brace must have it's own line.
|
||||
* Short blocks, if statements and loops on single line are allowed.
|
||||
* Try to avoid magic numbers.
|
||||
* If you unsure, try to mimic code style from anywhere else of engine source code.
|
Loading…
Reference in New Issue
Block a user