3
0
Go to file
2015-05-13 23:42:24 +07:00
bukkit@ad9519650b Update submodules. 2015-03-29 19:10:17 +03:00
forge@4270f0fb4a Updated forge 2015-05-08 16:29:14 +07:00
gradle/wrapper Updated forge 2015-05-08 16:29:14 +07:00
jsons Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
patches MPS patches 2015-05-13 23:42:24 +07:00
src/main 1403 2015-05-13 17:33:49 +07:00
.gitattributes Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
.gitignore Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
.gitmodules MPS patches 2015-05-13 23:42:24 +07:00
build.gradle MPS patches 2015-05-13 23:42:24 +07:00
eclipse-workspace-dev.zip Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
gradlew Updated forge 2015-05-08 16:29:14 +07:00
gradlew.bat Updated forge 2015-05-08 16:29:14 +07:00
LGPL.txt Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
LICENCE.txt Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00
README.md Adjust submodule init instructions 2015-04-28 19:31:59 -05:00
settings.gradle Initial commit (Forge 1291). 2015-03-22 20:38:04 +03:00

Compilation

We use Gradle to handle our dependencies.

  1. Checkout project.
  2. Init submodules : git submodule update --init --recursive
  3. Setup workspace : gradlew setupCauldron
  4. Build binaries : gradlew buildPackages Note: all binaries will be in distributions folder

Profiling

We use YourKit as our Java Profiler.

YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java. Take a look at YourKit's leading software products:

Coding and Pull Request Conventions

  • We generally follow the Sun/Oracle coding standards.
  • No tabs; use 4 spaces instead.
  • No trailing whitespaces.
  • No CRLF line endings, LF only; will be converted automatically by git
  • No 80 column limit or 'weird' midstatement newlines.
  • The number of commits in a pull request should be kept to a minimum (squish them into one most of the time - use common sense!).
  • No merges should be included in pull requests unless the pull request's purpose is a merge.
  • Pull requests should be tested (does it compile? AND does it work?) before submission.
  • Any major additions should have documentation ready and provided if applicable (this is usually the case).
  • Most pull requests should be accompanied by a corresponding GitHub ticket so we can associate commits with GitHub issues (this is primarily for changelog generation on ci.md-5.net).
  • Try to follow test driven development where applicable.

If you make changes to or add upstream classes (net.minecraft, net.minecraftforge, cpw.mods.fml, org.bukkit, org.spigotmc) it is mandatory to:

  • Make a separate commit adding the new net.minecraft classes (commit message: "Added x for diff visibility" or so).
  • Then make further commits with your changes.
  • Mark your changes with:
    • 1 line; add a trailing: // Cauldron [- Optional reason]
    • 2+ lines; add
      • Before: // Cauldron start [- Optional comment]
      • After: // Cauldron end
  • Keep the diffs to a minimum (somewhat important)

Tips to get your pull request accepted

Making sure you follow the above conventions is important, but just the beginning. Follow these tips to better the chances of your pull request being accepted and pulled.

  • Make sure you follow all of our conventions to the letter.
  • Make sure your code compiles under Java 6.
  • Provide proper JavaDocs where appropriate.
  • Provide proper accompanying documentation where appropriate.
  • Test your code.
  • Make sure to follow coding best practices.
  • Provide a test plugin/mod binary and source for us to test your code with.
  • Your pull request should link to accompanying pull requests.
  • The description of your pull request should provide detailed information on the pull along with justification of the changes where applicable.

Credits

  • MCP - permission to use data to make Cauldron.
  • Forge - mod support.
  • CraftBukkit - plugin support.
  • Spigot - performance optimizations.