|
| 1 | +# Content Guidelines |
| 2 | + |
| 3 | +The issue tracker is exclusively for filing and discussing bugs, feature |
| 4 | +requests, and tracking work items. It is not for technical support or general |
| 5 | +discussion. Avoid discussing any illegal activity, such as downloading games. |
| 6 | + |
| 7 | +**Repeated misuses will result in a permanent project ban.** |
| 8 | + |
| 9 | +## Information Sourcing |
| 10 | + |
| 11 | +All information in xenia has been derived from reverse engineering legally-owned |
| 12 | +games, hardware, and tools made public by Microsoft (such as the XNA Game Studio |
| 13 | +tooling), scouring documentation made public by Microsoft (such as slide decks |
| 14 | +and other presentations at conferences), and information from code made public |
| 15 | +by 3rd party companies (like the Valve SDKs). |
| 16 | + |
| 17 | +The official Microsoft Xbox Development Kits (XDKs) are not to be used for any |
| 18 | +information added to the project. The contributors do not want the XDKs, nor do |
| 19 | +they want any information derived from them. The challenge of the project is |
| 20 | +what makes it fun! Poisoning the codebase with code obtained by shady means |
| 21 | +could result in the project being terminated, so just don't do it. |
| 22 | + |
| 23 | +**Posting any information directly from an XDK will result in a project ban.** |
| 24 | + |
| 25 | +# Contributing Code |
| 26 | + |
| 27 | +## Style Guide |
| 28 | + |
| 29 | +Please read over [style_guide.md](style_guide.md) before sending pull requests |
| 30 | +and ensure your code is clean as the buildbot (or I) will make you to fix it :) |
| 31 | +[style_guide.md](style_guide.md) has information about using `xb format` and |
| 32 | +various IDE auto formatting tools so that you can avoid having to clean things |
| 33 | +up later, so be sure to check it out. |
| 34 | + |
| 35 | +Basically: run `xb format` before you add a commit and you won't have a problem. |
| 36 | + |
| 37 | +## Clean Git History |
| 38 | + |
| 39 | +Tools such as `git bisect` are used on the repository regularly to check for and |
| 40 | +identify regressions. Such tools require a clean git history to function |
| 41 | +properly. Incoming pull requests must follow good git rules, the most basic of |
| 42 | +which is that individual commits add functionality in somewhat working form and |
| 43 | +fully compile and run on their own. Small pull requests with a single commit are |
| 44 | +best, however multiple commits in a pull request are allowed only if they are |
| 45 | +kept clean. If not, you will be asked to rebase them (and if you don't know what |
| 46 | +that means, avoid getting into that situation ;). |
| 47 | + |
| 48 | +Example of a bad commit history: |
| 49 | + |
| 50 | +* Adding audio callback, random file loading, networking, etc. (+2000 lines) |
| 51 | +* Whoops. |
| 52 | +* Fixing build break. |
| 53 | +* Fixing lint errors. |
| 54 | +* Adding audio callback, second attempt. |
| 55 | +* ... |
| 56 | + |
| 57 | +Histories like this make it extremely difficult to check out any individual |
| 58 | +commit and know that the repository is in a good state. Rebasing, |
| 59 | +cherry-picking, or splitting your commits into separate branches will help keep |
| 60 | +things clean and easy. |
| 61 | + |
| 62 | +# License |
| 63 | + |
| 64 | +All xenia code is licensed under the 3-clause BSD license as detailed in |
| 65 | +[LICENSE](LICENSE). Code under `third_party/` is licensed under its original |
| 66 | +license. |
| 67 | + |
| 68 | +Incoming code in pull requests are subject to the xenia [LICENSE](LICENSE). |
| 69 | +Once code comes into the codebase it is very difficult to ever fully remove so |
| 70 | +copyright is ascribed to the project to prevent future disputes such as what |
| 71 | +occurred in [Dolphin](https://dolphin-emu.org/blog/2015/05/25/relicensing-dolphin/). |
| 72 | +That said: xenia will never be sold, never be made closed source, and never |
| 73 | +change to a fundamentally incompatible license. |
| 74 | + |
| 75 | +Any `third_party/` code added will be reviewed for conformance with the license. |
| 76 | +In general, GPL code is forbidden unless it is used exclusively for |
| 77 | +development-time tooling (like compiling). LGPL code is strongly discouraged as |
| 78 | +it complicates building. Unless extremely trivial (such as ) |
0 commit comments