Skip to content

Development Processes

Dragan Ivanovic edited this page Dec 29, 2021 · 13 revisions

Project Branches

Release Policies

Process for Suggesting Changes

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. Changes on the branch should be squashed into one commit, with a reasonable commit message, and one parent commit that is the latest revision. Multiple commits are allowed when they are logical, but this should generally be avoided as it usually indicates that there are too many changes happening on one branch. Moreover, large pull requests should be avoided as well. However, it is absolutely necessary, the short description why it is not possible to decouple/modularize pull request in a couple of smaller pull requests is expected in the pull request description.
  5. A pull request may be merged when 2 or more committers (excluding the author) have responded with -1/+1, and after 2 months have passed with no committers having responded with +1/-1 nor "More Time Needed".
  6. 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.
  7. No pull request may ever be merged by the author of the pull request.

Process for Merging Changes

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

In GitHub

  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 with link-to-GitHub-issue)

In GitHub issues

  1. Close GitHub issue
  2. Change status to Fixed (or status that is appropriate)
  3. Add link to GitHub commit in GitHub issue comment
  4. Select next release for appropriate project for Fix Version
Clone this wiki locally