[BACK]Return to CONTRIBUTING.md CVS log [TXT][DIR] Up to [contributed] / brogue-ce

Annotation of brogue-ce/CONTRIBUTING.md, Revision 1.1.1.1

1.1       rubenllo    1: Contributing
                      2: ============
                      3:
                      4: For general help on using GitHub to contribute to a project, check out the
                      5: [GitHub.com help].
                      6:
                      7: We have a Discord server for discussion; feel free to join it here:
                      8: https://discord.gg/8pxE4j8.
                      9:
                     10: ## Testing
                     11:
                     12: The *master* branch represents the latest development snapshot, and should be
                     13: considered ready for play-testing at all times. If you're a Brogue player, you
                     14: can help out by playing the latest *master* and letting us know of any bugs you
                     15: run into! Just follow the build instructions (BUILD.md).
                     16:
                     17: ## Code
                     18:
                     19: When submitting patches or opening pull requests to Brogue CE, please
                     20: attempt to meet the follow guidelines. To avoid wasted work, I recommend
                     21: first discussing with us the proposed changes on the Discord or by opening
                     22: an issue report.
                     23:
                     24: ### Branches and versions
                     25:
                     26: Brogue CE version numbers follow 1.MINOR.PATCH. Essentially, patch-level
                     27: releases don't change the gameplay experience in any way--this is to avoid
                     28: breaking saves and replays. Minor-point releases may do so.
                     29:
                     30: The are two long-term branches which you should base PRs on:
                     31:
                     32: * *master* is for gameplay changes for the next minor-point release
                     33: * *release* is for bug fixes and other non-gameplay changes, for the next patch
                     34:   release. It is merged into *master* periodically.
                     35:
                     36: Any other public branches may be rebased and force-pushed at any time, so please
                     37: be careful when branching from them.
                     38:
                     39: ### Commits
                     40:
                     41: I find a clear Git history very beneficial to work with, so I care quite a bit
                     42: about how commits are presented in PRs.
                     43:
                     44: Please read my [tips for using Git effectively][Git guidance], which can be
                     45: considered guidelines for contributing to this project.
                     46:
                     47: ### Change files
                     48:
                     49: When making user-facing changes, please add a non-technical description of each
                     50: change to a Markdown (.md) file in `changes/`. These files are collated to
                     51: create the release notes.
                     52:
                     53: If the change is from one commit, include this file in it. For a branch of
                     54: multiple commits, add it in a separate commit.
                     55:
                     56: ### Style
                     57:
                     58: - Use 4 space of indentation
                     59: - Be consistent with formatting (pay attention to whitespace between brackets,
                     60:   commas, etc.)
                     61: - Try to follow the style of existing code
                     62: - Declare functions and variables local to a file as `static`
                     63: - Prefer `int` in new integer declarations; use `short` only when working with
                     64:   existing `short` variables
                     65: - Use braces for control structures on multiple lines
                     66:
                     67:   ```c
                     68:   // no
                     69:   if (cond)
                     70:       action();
                     71:
                     72:   // yes
                     73:   if (cond) {
                     74:       action();
                     75:   }
                     76:
                     77:   // acceptable
                     78:   if (cond) action();
                     79:   ```
                     80:
                     81: - When writing bracketed lists over multiple lines, wrap it naturally and don't
                     82:   align to the open bracket (this includes declarations)
                     83:
                     84:   ```c
                     85:   // yes
                     86:   some_function(
                     87:       a, b,
                     88:       c,
                     89:       d
                     90:   );
                     91:
                     92:   // no
                     93:   some_function(a, b,
                     94:                 c,
                     95:                 d);
                     96:   ```
                     97:
                     98: - When writing multi-line if/while conditions, use at least the same indentation
                     99:   as the body. It can be clearer to over-indent to separate it
                    100:
                    101:   ```c
                    102:   // same indent is ok
                    103:   while ((A && B)
                    104:       || C) {
                    105:       ...
                    106:   }
                    107:
                    108:   // over-indent can be clearer
                    109:   while ((A && B)
                    110:           || C) {
                    111:       ...
                    112:   }
                    113:
                    114:   // a gap works too
                    115:   while ((A && B)
                    116:       || C) {
                    117:
                    118:       ...
                    119:   }
                    120:   ```
                    121:
                    122: [GitHub.com help]: https://docs.github.com/en/free-pro-team@latest/github
                    123: [Git guidance]: http://www.collider.in/tom/git-guidance.html

CVSweb