Strict Mode Deprecation

Strict Mode Deprecation

Mehdi Abaakouk

When Mergify started to automate pull request merges, users expressed rapidly the need for having a way to keep their pull requests updated. We soon introduced the strict mode for the merge action, offering pull request merge serialization. This was our first, very basic, merge queue.

Later, Mergify introduced the more powerful queue action, which offers many features, such as speculative checks or batch merges.

Consequently, we have marked strict mode from the merge action as deprecated since June 2021.

Timeline

We are planning to remove this option entirely on January 10th, 2022.

A brownout is planned for the whole day of December 6th, 2021 day. The option will be disabled on that date in order to warn every user that they need to change their configuration.

How to update your configuration

To update your configuration, you need to switch from the merge action to the queue action.

Moving to the queue action is straightforward. For example, a configuration like this:

pull_request_rules:
  - name: automatic merge
    conditions:
      - base=main
      - "#approved-reviews-by>=1"
      - "#changes-requested-reviews-by=0"
      - label!=work-in-progress
      - check-success=ci-one
      - check-success=ci-two
    actions:
      merge:
        method: merge
        strict: smart

Becomes:

queue_rules:
  - name: default
    conditions:
      # Conditions to get out of the queue (= merged)
      - check-success=ci-one
      - check-success=ci-two

pull_request_rules:
  - name: automatic merge
    conditions:
      - base=main
      - "#approved-reviews-by>=1"
      - "#changes-requested-reviews-by=0"
      - label!=work-in-progress
      - check-success=ci-one
      - check-success=ci-two
    actions:
      queue:
        method: merge
        name: default

The notable difference is the new queue_rules top-level entry which defines the conditions for a pull request to get merged (= to get out of the queue). The pull_request_rules define the conditions to get queued.

Every option available in the merge action is also present in the queue action.

Why This Change

In the legacy world of the strict mode from the merge action, these two sets of conditions were always the same and  define in pull_request_rules. Advanced users can now specify different conditions to get in the queue and to get merged. You could also use multiple queues.

After strict mode is fully removed, the following options of the merge action will not work anymore:

  • strict
  • strict_mode
  • update_bot_account
  • priority

If you need any help, you can read the full documentation of the queue action or reach our support team.