Skip to content

Contributions

Kelly Ledford edited this page Aug 25, 2018 · 7 revisions

Contributions

At any point during this process, feel free to ping / discuss on IRC FreeNode #projectceladon

Before submitting a pull request:

  • Rebase working branch onto the master branch and resolve any merge conflicts
  • Make sure you can successfully build your branch locally -- addressing any errors
  • If all commits are related, squash them into one commit
    • if all commits are not related, they should be separated and submitted as multiple PRs
  • Create an issue here: IAHWC Github Issue Tracker

Conformance and Documentation Requirements

  • See Conformance page of the wiki for details
    • Run Cppcheck -- static analysis tool for C/C++
    • Run clang-format -- ensures your coding style matches Google's C++ style guide
    • Verify your comment message conforms to our standard. Compare it with our
    • example on the Conformance page of the wiki
  • Must include documentation for any new and modified APIs conformant to documentation specifications
  • Must include unit testing testing to thoroughly stress any new and modified APIs
    • Specification and conformance guidelines are a WIP and should not be considered a current requirement for contribution acceptance

You can now submit a PR request onto the master branch from your working branch

Getting from an open PR to merged:

  • Code must meet all style, documentation , and testing guidelines for the project (see conformance above)
  • Must have Travis CI build success
  • Must have at minimum one approval review by another official contributor
  • In the case that an official contributor requests changes, your code will not be merged until the request has been satisfied and meets all requirements
    • This should not discourage discussion -- review is a multi-voice process
  • PRs with functional changes must be open for a minimum of one full day to give all contributors the chance to view and comment
  • Authors are responsible for resolving all merge conflicts

Merging Code:

  • Authors will no longer be allowed to merge their own PRs and patches -- another contributor must do this
  • Merging will be done as a 'Merge and Rebase' to avoid extraneous merge commits on the master branch
    • Special case 'Squash and Merge' will be used sparingly and only as needed