Contributing Guide

Hi, folks, thanks for pay attention to GCanvas. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines.

Issue Reporting Guidelines

  • Try to search for your issue before you commit an issue. It may have already been answered or even fixed in the development branch.

  • It is required that you clearly describe the steps necessary to reproduce the issue you are running into. Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed.

  • For bugs that involves build setups, you can create a reproduction repository with steps in the README.

  • If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it.

Pull Request Guidelines

  • Only code that's ready for release should be committed to the master branch. All development should be done in dedicated branches.
  • Checkout a new topic branch from master branch, and merge back against master branch.
  • Make sure all of the unit tests pass.
  • If adding new feature:
    • Add accompanying test case.
    • Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it greenlighted before working on it.
  • If fixing a bug:
    • If you are resolving a special issue, add (fix #xxxx[,#xxx]) (#xxxx is the issue id) in your PR title for a better release log, e.g. update entities encoding/decoding (fix #3899).
    • Provide detailed description of the bug in the PR. Live demo preferred.
    • Add appropriate test coverage if applicable.

Git Commit Specific

  • Please commit your code after passing all of the unit tests.
  • We will check your commit message, if it does not conform to the specification, the commit will be automatically refused, make sure you have read the specification above.
  • We strongly recommend you that do multiple small commits rather than batch of modifications on your branch.