index.html 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. ---
  2. layout: page
  3. title: Contribute | Torque 3D
  4. root: ..
  5. ---
  6. <div class="banner"><div class="container">
  7. <h2 id="get-the-source-code">Get the source code</h2>
  8. </div></div>
  9. <div class="container">
  10. <p>
  11. Torque 3D's source code lives at <a href="https://github.com/GarageGames/Torque3D">GarageGames/Torque3D</a>.
  12. To clone a copy of the source code, you will need a <a href="http://git-scm.com/">git</a>
  13. client. We recommend the <a href="http://git-scm.com/downloads">official client</a>. Once you
  14. have installed Git, you should follow
  15. <a href="https://help.github.com/articles/fork-a-repo">GitHub's forking tutorial</a>
  16. to make your own repository to which you can commit your code.
  17. </p>
  18. <p>
  19. The repository has two main branches: <code>master</code> and <code>development</code>. We
  20. recommend that you do <em>not</em> commit any of your own code into these branches, but
  21. simply pull down changes from GarageGames' repository into them. You can maintain
  22. your own branch (perhaps named after your GitHub username, or the game you're working on)
  23. and merge changes into it as you see fit.
  24. </p>
  25. <p>
  26. We also have a repository for <a href="https://github.com/GarageGames/Torque3D-Wiki">Torque 3D's Github wiki</a>.
  27. Feel free to fork and pull-request to its <code>master</code> branch if you
  28. want to submit new documentation, tutorials, or make corrections to existing
  29. content.
  30. </p>
  31. </div>
  32. <div class="banner"><div class="container">
  33. <h2 id="pull-request-guide">Pull-request guide</h2>
  34. </div></div>
  35. <div class="container">
  36. <h3>So you want to make a pull request</h3>
  37. <p>
  38. Pull requests are the way that community members like you can get your code
  39. pulled into the official Torque 3D repository for everyone else to use. We
  40. accept community contributions that align with our vision for the engine -
  41. especially bug fixes, enhancements to existing features, and revisions of
  42. old, slow, or ugly code. Pull requests are the way that code gets reviewed
  43. before it's accepted into the engine - even code that we, the Steering Committee,
  44. write ourselves.
  45. For a technical tutorial on how to submit a pull request, check out
  46. <a href="https://github.com/GarageGames/Torque3D/wiki/How-To:--Submit-A-Pull-Request">this page in our wiki</a>, or
  47. <a href="https://help.github.com/articles/using-pull-requests">this tutorial by GitHub</a>.
  48. </p>
  49. <p>
  50. In order to ensure the quality of the engine code going into the future, we
  51. have strict rules about what code we can and cannot accept. We also have
  52. some soft guidelines that inform our decision-making progress in trickier
  53. cases.
  54. </p>
  55. <h3>Pull request rules</h3>
  56. <p>
  57. Pull requests not adhering to these rules <i>cannot</i> be accepted, so pay attention!
  58. </p>
  59. <ul>
  60. <li>Obviously, your contribution cannot contain any code that is not
  61. legally compatible with Torque 3D's MIT license. In addition, to legally
  62. protect the engine and everyone affiliated with it, we require that all
  63. contributors create an account on
  64. <a href="http://garagegames.com">GarageGames.com</a> and sign the Open
  65. Source Software Agreement there. For more information on the OSSA, please visit
  66. <a href="https://github.com/GarageGames/Torque3D/wiki/Contributing#open-source-software-agreement">this page in our wiki</a>.</li>
  67. <li>Contributions must adhere to our
  68. <a href="https://github.com/GarageGames/Torque3D/wiki/Code-Style-Guidelines">code style guidelines</a>.</li>
  69. <li>Pull-requests against the master branch cannot be accepted. All requests
  70. must go to development, or an appropriate topic or maintenance branch.</li>
  71. </ul>
  72. <p>
  73. In many cases, if any of these rules are breached, we will first ask the contributor
  74. to resubmit their pull request, or add commits to it that resolve our issues.
  75. In exceptional cases (i.e., we really really like your work), a committee
  76. member may perform that work themselves.
  77. </p>
  78. <h3>Pull request guidelines</h3>
  79. <p>
  80. Here are some of the things we look for in a great pull request. These aren't
  81. hard-and-fast rules, but following these guidelines will increase the chances
  82. that your request is pulled!
  83. </p>
  84. <ul>
  85. <li>Our favourite requests are ones that work directly towards the goals
  86. laid out in our <a href="{{page.root}}/engine#roadmap">roadmap</a>. We
  87. are more likely to help out and fix slightly broken pull requests if
  88. they align with our goals, and chances are your request will move faster
  89. through our process.</li>
  90. <li>Each pull request should be <i>focused</i> and <i>concise</i>. If
  91. it has a very clear intent and a small set of changes towards a specific
  92. goal, it's easy for us to decide whether we want it, and to then test it
  93. and make sure it works as advertised and doesn't break things.</li>
  94. <li>If you're fixing a bug, we need you to provide steps to reproduce it
  95. so we can verify that exists and that your patch actually does fix it.
  96. We'd also appreciate platform and compiler information.</li>
  97. <li>We like each pull request to have a reasonable revision history - not
  98. too many small commits with typo fixes, for example. Sometimes, we may ask
  99. contributors to rebase large numbers of commits into a single commit
  100. before the request is pulled.</li>
  101. </ul>
  102. <h3>The pull request process</h3>
  103. <ol>
  104. <li>You make a pull-request to the GarageGames/Torque3D repository.</li>
  105. <li>We tag the request appropriately according to its status as a new feature,
  106. a bug/fix or a defect/enhancement. The difference between the latter two is
  107. that a bug (which you may be submitting a fix for) is advertised functionality
  108. that does not work correctly, or a situation that causes a crash. A defect
  109. (or an ehnahcement to an existing feature) is simply something that <em>could</em>
  110. be better (for example, a performance improvement).</li>
  111. <li>One or more members of the Committee or the general community review your
  112. request, adding comments if they see any problems. This code-review process
  113. may take some time as we need to consider a variety of factors when considering
  114. whether a pull request is appropriate. We (and others) may point out technical
  115. flaws or suggest ways we would prefer the issue to be solved. We will also
  116. pull down your code and test it locally to verify that it does as advertised!</li>
  117. <li>If all goes well, the 'Final Review' label will be applied to your request.
  118. This is a formality stage that collects pull requests we feel are nearly ready
  119. to be merged, and allows reviews to focus their attention better on imminent
  120. new code. At this stage, if only one member of the Committee has been involved
  121. in reviewing the code, another must become involved.</li>
  122. <li>If it passes final review, your pull-request is merged! Congratulations.</li>
  123. </ol>
  124. </div>
  125. <div class="banner"><div class="container">
  126. <h2 id="version-policy">Version policy</h2>
  127. </div></div>
  128. <div class="container">
  129. <p>
  130. We maintain an <b>X.Y.z</b> version scheme similar to that of
  131. <a href="http://semver.org/">Semantic Versioning</a>. However, since our API is
  132. less well-defined, the table below describes what we mean by the three
  133. version number components.
  134. </p>
  135. <p class="alert alert-warning">
  136. Note that this new versioning policy is different to the one adopted by the first
  137. and second Steering Committees, and applies only to engine versions 3.5.2 and above.
  138. </p>
  139. <table class="borderless versioning table">
  140. <tr>
  141. <td><b>X</b><br/>Major version number</td>
  142. <td>The major version number denotes a single version of our <em>client-facing</em>
  143. API, which refers to the script and editor capabilities exposed to binary-only
  144. users of the engine, as well as major parts of the internal C++ API, such
  145. as the class hierarchy.</td>
  146. </tr>
  147. <tr>
  148. <td><b>Y</b><br/>Minor version number</td>
  149. <td>The minor version number refers to the set of features in a given API. Across
  150. a minor version number change, we may refactor code, fix bugs, or introduce
  151. <em>new</em> features, but we will not make breaking changes to existing ones.</td>
  152. </tr>
  153. <tr>
  154. <td><b>z</b><br/>Patch number</td>
  155. <td>Patches denote minor updates to stability or correctness that do not change
  156. the engine API in a significant way.</td>
  157. </tr>
  158. </table>
  159. </div>
  160. <div class="banner"><div class="container">
  161. <h2 id="issues-and-requests">Issues and feature requests</h2>
  162. </div></div>
  163. <div class="container">
  164. <h3>Reporting a bug</h3>
  165. <p>
  166. If you find a bug in the engine that you're sure you didn't cause (don't
  167. worry, we cause bugs all the time ourselves!), please use the
  168. <a href="https://github.com/GarageGames/Torque3D/issues">GitHub issue tracker</a>
  169. to let us know. Please have a bit of a look at recent issues before you
  170. do, in case someone has already noticed the same problem. And remember to
  171. provide the following information:
  172. </p>
  173. <ul>
  174. <li>Your platform and compiler version</li>
  175. <li>A description of what currently happens, and what <em>should</em> or
  176. should not happen.</li>
  177. <li><b>Steps to reproduce the bug.</b></li>
  178. </ul>
  179. <h3>Requesting a new feature</h3>
  180. <p>
  181. We use a <a href="http://garagegames.uservoice.com/">UserVoice</a> forum to monitor
  182. feature requests from users. Before making a forum post or starting a new request,
  183. check to see if your feature has already been requested.
  184. </p>
  185. </div>