2014-08-24 05:24:25 +02:00
|
|
|
# Contributing
|
2012-10-28 21:37:12 +01:00
|
|
|
|
|
|
|
Thank you for your interest in contributing to WorldGuard! We appreciate your
|
|
|
|
effort, but to make sure that the inclusion of your patch is a smooth process, we
|
|
|
|
ask that you make note of the following guidelines.
|
|
|
|
|
2019-04-07 15:12:13 +02:00
|
|
|
* **Follow the [Oracle coding conventions](https://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html).**
|
2012-10-28 21:37:12 +01:00
|
|
|
We can't stress this enough; if your code has notable issues, it may delay
|
|
|
|
the process significantly.
|
2022-01-08 21:23:11 +01:00
|
|
|
* **Target Java 16 for source and compilation.**
|
2012-10-28 21:37:12 +01:00
|
|
|
* **Use only spaces for indentation.** Our indents are 4-spaces long, and tabs
|
|
|
|
are unacceptable.
|
|
|
|
* **Wrap code to a 89 column limit.** We do this to make side by side diffs
|
|
|
|
and other such tasks easier. Ignore this guideline if it makes the code
|
|
|
|
too unreadable.
|
|
|
|
* **Write complete Javadocs.** Do so only for public methods, and make sure
|
|
|
|
that your `@param` and `@return` fields are not just blank.
|
|
|
|
* **Don't tag classes with @author.** Some legacy classes may have this tag,
|
|
|
|
but we are phasing it out.
|
|
|
|
* **Make sure the code is efficient.** One way you can achieve this is to spend
|
|
|
|
around ten minutes to think about what the code is doing and whether it
|
|
|
|
seems awfully roundabout. If you had to copy the same large piece of
|
|
|
|
code in several places, that's bad.
|
|
|
|
* **Keep commit summaries under 70 characters.** For more details, place two
|
|
|
|
new lines after the summary line and write away!
|
|
|
|
* **Test your code.** We're not interested in broken code, for the obvious reasons.
|
|
|
|
* **Write unit tests.** While this is strictly optional, we recommend it for
|
|
|
|
complicated algorithms.
|
|
|
|
|
|
|
|
|
|
|
|
Checklist
|
|
|
|
---------
|
|
|
|
|
|
|
|
Ready to submit? Perform the checklist below:
|
|
|
|
|
|
|
|
1. Have all tabs been replaced into four spaces? Are indentations 4-space wide?
|
|
|
|
2. Have I written proper Javadocs for my public methods? Are the @param and
|
|
|
|
@return fields actually filled out?
|
|
|
|
3. Have I `git rebase`d my pull request to the latest commit of the target
|
|
|
|
branch?
|
|
|
|
4. Have I combined my commits into a reasonably small number (if not one)
|
|
|
|
commit using `git rebase`?
|
|
|
|
5. Have I made my pull request too large? Pull requests should introduce
|
|
|
|
small sets of changes at a time. Major changes should be discussed with
|
|
|
|
the team prior to starting work.
|
|
|
|
6. Are my commit messages descriptive?
|
|
|
|
|
|
|
|
You should be aware of [`git rebase`](http://learn.github.com/p/rebasing.html).
|
|
|
|
It allows you to modify existing commit messages, and combine, break apart, or
|
|
|
|
adjust past changes.
|
|
|
|
|
|
|
|
Example
|
|
|
|
-------
|
|
|
|
|
|
|
|
This is **GOOD:**
|
|
|
|
|
|
|
|
if (var.func(param1, param2)) {
|
|
|
|
// do things
|
|
|
|
}
|
|
|
|
|
|
|
|
This is **EXTREMELY BAD:**
|
|
|
|
|
|
|
|
if(var.func( param1, param2 ))
|
|
|
|
{
|
|
|
|
// do things
|
|
|
|
}
|