When is something considered ready to merge to master?

In the release planning 2023 thread, there is also discussion about how to decide code is ready to be merged. The following are some guidelines I’m proposing that go along with having a master and stable branch.

Master items.

  1. Must compile on all system where github buiud tools are working.
  2. Must pass unit tests on developer and reviewers computer.
  3. Passes unit tests in other places if they exist.
  4. Request explains how tests already cover the changes, adds tests to cover or explains why it’s not relevant.
  5. Is reviewed and approvet by one other developer with commit rights.

This does have some overhead, but I believe over time quickly adds the following benefits.

  1. Increases test coverage and overall confidence in the tool.
  2. Enables at least one core developer to understand the changes being presented. Even if they also ask for more input.
  3. Barriers to entry are clear and a pull request submitter can meet most at submission time. Reviewer has a minimum set of tasks to check and also can apply wisdom if they are the best available to agree to the change.

It may be required to address some issues around tests for this to be applied. My experience is that is better to start with less tests that all pass than to keep flaky tests in operation when completing a transition to this workflow.

In cases of single committer, either they go with no review, or get review of someone who does not have commit rights.

Feedback on this?