diff options
Diffstat (limited to 'danger/gitaly/Dangerfile')
-rw-r--r-- | danger/gitaly/Dangerfile | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/danger/gitaly/Dangerfile b/danger/gitaly/Dangerfile index d7ff8d6446a..228ed3fc192 100644 --- a/danger/gitaly/Dangerfile +++ b/danger/gitaly/Dangerfile @@ -1,17 +1,28 @@ # frozen_string_literal: true GITALY_COORDINATION_MESSAGE = <<~MSG -This merge request requires coordination with gitaly deployments. -Before merging this merge request we should verify that gitaly -running in production already implements the new gRPC interface -included here. +## Changing Gitaly version -Failing to do so will introduce a [non backward compatible -change](https://docs.gitlab.com/ee/development/multi_version_compatibility.html) -during canary depoyment that can cause an incident. +This merge request requires coordination with Gitaly deployments. You must assert why this change is safe. -1. Identify the gitaly MR introducing the new interface -1. Verify that the environment widget contains a `gprd` deployment +If these two assertions can be made, then this change is safe: + +1. No Gitaly definitions that have been removed in the version bump are in use on the Rails side. +1. No Gitaly definitions that are not yet part of a released version become used without a feature flag. + +In general, we can ignore the first assertion because the specs will fail as needed. If a GitLab Rails spec +exercises a definition that is removed in the new Gitaly version, then that +spec will fail. + +You must confirm the second assertion. Failing to do so will introduce a [non +backward compatible change](https://docs.gitlab.com/ee/development/multi_version_compatibility.html), +for example during canary deployment of GitLab.com, which can cause an incident. +This type of problem can also impact customers performing zero-downtime upgrades. +Some options: + +- This change does not cause Rails to use a new definition. +- This change causes Rails to use a new definition, but only behind a feature flag which is disabled by default. + This feature flag must only be removed in a subsequent release. MSG changed_lines = helper.changed_lines('Gemfile.lock') |