zuul/releasenotes/notes/merge-conflict-rename-da402e1c8685949b.yaml
James E. Blair e03d8c887c Rename MERGER_FAILURE to MERGE_CONFLICT
This is a prelude to a change which will report a distinct buildset result
to the database if the upstream code review system is unable to merge a change.
Currently it is reported as MERGER_FAILURE which makes it difficult to
distinguish from merge conflicts.

Essentially, the two states we're interested in are when Zuul's merger is
unable to prepare a git checkout of the change (99% of the time, this is
a merge conflict).  This will be known as MERGE_CONFLICT now.

The second state is when Zuul asks Gerrit/Github/etc to submit/merge a change
and the remote system is unable (or refuses) to do so.  In a future change,
that will be reported as MERGE_FAILURE.

To avoid confusion and use names which better reflect the situation, this change
performs the rename to MERGE_CONFLICT.

Because there are pipeline configuration options tied to the MERGER_FAILURE
status (which start with 'merge-failure') they are also renamed to 'merge-conflict'.
The old names are supported for backwards compatibility.

A SQL migration takes care of updating values in the database.

The upgrade procedure is noted as being special because of the db value updates.
If an operator doesn't follow the recommended procedure, however, the consequences
are minimal (builds which won't be easily queried in the web ui; that can be
manually corrected if desired).

A model API change is not needed since the only place where we receive this value
from ZK can be updated to accept both values.

Change-Id: I3050409ed68805c748efe7a176b9755fa281536f
2022-02-24 17:06:03 -08:00

31 lines
1.4 KiB
YAML

---
upgrade:
- |
The buildset result ``MERGER_FAILURE`` has been renamed to
``MERGE_CONFLICT``, and the pipeline reporter configuration
``merge-failure`` has been renamed to ``merge-conflict``.
These are more descriptive of the most common errors actually
reported, and so are expected to be less confusing to users. This
is also in service of a future change to support a new buildset
result ``MERGE_FAILURE`` which will indicate that the change was
unable to be merged in the upstream repository.
When upgrading, it is recommended to stop all schedulers briefly
(i.e, when the first scheduler of the new version starts, there
should be no schedulers running the old version). The new
scheduler will perform a database migration when it starts and
update all existing ``MERGER_FAILURE`` buildset results to
``MERGE_CONFLICT``. If old schedulers are running, they may
continue to add ``MERGER_FAILURE`` entries which will need to be
manually updated in order to be visible in the web UI or rest API.
deprecations:
- |
The ``merge-failure`` and ``merge-failure-message`` pipeline
configuration options have been renamed to ``merge-conflict`` and
``merge-conflict-message`` respectively. The old settings are
retained for backwards compatibility, but will be removed in a
later version. Please update your usage of them as soon as
possible.