Skip to content

Contribution Guide

Michał Majczak edited this page Oct 31, 2018 · 4 revisions

So you want to be PolyEngine contributor? Follow this guide.

General workflow:

  1. Join our Slack channel, for access ask @MuniuDev ([email protected]), this will also grant you an access to our trello board.
  2. First thing you should do is fork the PolyEngine repository. If you want, you can also download sample projects from PolyEngineExamples repository.
  3. Checkout dev branch, always work on the dev branch.
  4. Compile everything, try running unit tests or compiling one of the sample project.
  5. Read Coding Guidelines, CppCoreGuidelines, and most importantly SOLID principles
  6. Ask for a feature on slack, or code your own feature (I still suggest getting it approved first).
  7. If you're ready to code then create branch that starts at the top of the up to date dev, good practice is to name it something along the line fet/<feature-name> or fix/<fix-name>.
  8. Develop your feature/fix on that branch.
  9. Push to your fork repository and create PR (Pull Request), with destination set to dev. If you just want to test the CI, add [WiP] tag to the PR title.
  10. Your PR will be reviewed as soon as all CI passes (and you removed [WiP] tag). If you want review sooner ask relevant person, see list below.
  11. When all review remarks are addressed and CI passes then your branch will be squashed and merged to dev.
  12. Go to step 5

General tips

  • Multiple small PR are much better than one big PR. If you're adding a lot of files (eg. when adding a library headers) it would be better to create two PR: first with just library files and necessary Cmake setup, second with all library usage.
  • All Core and Engine code needs to have unit tests that cover the new functionality in sufficient manner.
  • All new Engine systems need to have at least simple tooling support.

Feature Owners:

  • Rendering -> Michał Kłoś @sp0lsh
  • Editor -> Piotr Mościcki @PiotrMoscicki
  • Core -> Michał Majczak @MuniuDev
  • Engine -> Michał Majczak @MuniuDev
  • DevOps stuff -> Michał Majczak @MuniuDev

If not sure, contact Michał Majczak @MuniuDev

Clone this wiki locally