Skip to content

Development Processes

Dragan Ivanovic edited this page Feb 22, 2024 · 13 revisions

Process for Suggesting Contribution

Development contributions and collaboration take place primarily in this repository on GitHub and in GitHub issues. When changes for revision (pull requests) are submitted, they must adhere to the following criteria:

  1. There should be a GitHub issue that explains the reason for the change and serves as a platform for issue-level discussion. Discussion regarding code details should take place directly on a pull request in the comments or as line notes.
  2. The changes must be made in a branch and submitted as a pull request.
  3. The submitted pull request must reference the associated GitHub issue.
  4. Large pull requests should be avoided. However, if it is absolutely necessary, a short description why it is not possible to decouple/modularize the pull request in a couple of smaller pull requests is expected in the pull request description.
  5. A pull request description should include steps for testing.

Process for Reviewing Contribution

  1. A pull request may be merged when 2 or more committers (excluding the author) have responded with +1, and after 2 months have passed with no committers having responded with -1 nor "More Time Needed".
  2. As an exception to the above, pull requests that are labelled in GitHub with small PR can be fast-tracked, allowing merge with only one (committer) review.
  3. No pull request into the main branch may ever be merged by the author of the pull request or any person affiliated with the same entity as the author.

Process for Merging Contribution

After a pull-request has been reviewed and is ready to be committed to the code base

In GitHub pull-request

  1. Squash-merge in GitHub
  2. Ensure that merge commit comment does not include trivial notes (e.g. Removed whitespace)
  3. Ensure that merge commit contains link to GitHub ticket (e.g. Resolves: link-to-GitHub-issue)

In GitHub issue

  1. Ensure that link to GitHub pull request is referenced in GitHub issue comment
  2. Close GitHub issue