-This page guides a format for your contribution.
+We always appreciate your contribution. ThorVG doesn't expect perfect patch contributions, instead we expect contributions if your patch makes thorvg better than before. This page guides the ThorVG contribution format.<br />
+<br />
+## Reviewers
+Hermet Park (hermet) is the lead maintainer. Also there are designated maintainers you can request your pull-request for separate modules.
+<b>common:</b> Junsu Choi (JSUYA) <br />
+<b>sw_engine:</b> Junsu Choi (JSUYA), Mira Grudzinska (mgrudzinska), Michal Szczecinski (mihashco) <br />
+<b>gl_engine:</b> Prudhvi Raj Vasireddi (prudhvirajv) <br />
+<b>svg_loader:</b> Junsu Choi (JSUYA), Mira Grudzinska (mgrudzinska), Michal Maciola (mmaciola) <br />
+<b>jpg_loader:</b> Michal Maciola (mmaciola) <br />
+<b>tvg_loader:</b> Michal Maciola (mmaciola) <br />
+<b>tvg_saver:</b> Mira Grudzinska (mgrudzinska) <br />
+<b>wasm:</b> Shinwoo Kim (kimcinoo), Michal Maciola (mmaciola) <br />
+<b>svg2png:</b> Junsu Choi (JSUYA), Michal Maciola (mmaciola) <br />
+<b>capi:</b> Michal Szczecinski (mihashco), Mira Grudzinska (mgrudzinska) <br />
+<br />
+
+## Self Test & Verification
+After updating ThorVG code, please verify your change doesn't break the library. We suggest unit-tests using the Catch2 framework. You can easily run it with build commands as the following: <br />
+<br/>
+`
+$meson . build -Dtests=true -Dloaders="all" -Dsavers="tvg" -Dbindings="capi" -Dtools="all" -Dlog=true
+`
+<br />
+`
+$ninja -C build test
+`
+<br/>
+<br/>
+Please make it sure running all tests and no any fail case.<br/>
+<br/>
+Expected Fail: 0<br/>
+Fail: 0<br/>
+Unexpected Pass: 0<br/>
+Skipped: 0<br/>
+Timeout: 0<br/>
+<br/>
## Commit Message
-[Module][Feature] - [Title]
+[Module][Feature]: [Title]
[Description]
-##
- [Module] is a sub module majorly affected by your change. Most of times this indicates a sub folder name.
This indicates whom need to review your patch as well.
Lastly, please append any issue ticket numbers in this section if any.
- - ex) common composite: newly added path clipping feature
+
+- Here is a overall commit message what we expect to review:
+
+ - common composite: newly added path clipping feature
We introduced new method Paint::composite() to support composite behaviors. </br>
This allows paints to composite with other paints instances. </br>
- Composite behaviors depends on its compoite method type. </br>
+ Composite behaviors depend on its composite method type. </br>
Here we firstly introduced "ClipPath" method to support clipping by path unit of paint.</br>
- tagetPaint->composite(srcPaint, CompoisiteMethod::ClipPath);</br>
+ tagetPaint->composite(srcPaint, CompositeMethod::ClipPath);</br>
Beaware if the source paint doesn't contain any path info, clipping won't be applied as you expected.
@API Additions:</br>
enum CompositeMethod {None = 0, ClipPath}; </br>
- Result Paint::composite(std::unique_ptr<Paint> target, CompMethod method) const noexcept;</br>
+ Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) const noexcept;</br>
@Examples: added ClipPath</br>
+
+ @References: any links to the references such as screenshot images.
@Issues: 49
+<br />
+
+## Pull Request
-
+Once you submitted a pull request(PR), please make it sure below check list.
+- Reviewers: Check Reviewers List
+- Assignees: You
+- Labels: Patch Purpose
+- CODING STYLE CHECK: Must be perfect
+<p align="center"><img width="1000" height="1072" src="https://github.com/Samsung/thorvg/blob/master/res/contribution.png"></p>