Codeowners Workflow
This document covers the development workflow for codeowners (maintainers) of the Magma project.
Guidelines on force-merging a PR
The master
branch of the magma/magma
repo is a protected branch. This means
However, users with admin
permissions to the magma/magma
repo can bypass these requirements, performing a "force-merge".
This functionality should be used only when in dire need, as it can easily break the build in unexpected ways.
Thus, when an admin force-merges a PR, they must comment on the PR describing the reason why it's being force-merged, referencing one of the following guidelines.
Unexpected Emergency
True emergency, where the existing set of guidelines doesn't fit the need.
There should be a postmortem to decide whether the existing set of guidelines needs to be updated to encompass the experienced emergency.
Chicken-and-egg
CI is broken, and fixing CI requires overriding a required check.
UBN during broken CI
CI is broken and blocking a UBN ("unbreak now") fix.
This is still high-risk and should be used with extreme care. One potential example: an existential threat to the project caused by severe security vulnerability.
Codeowner OOO
For high-priority work: if the PR author is a codeowner for the code they changed, and all other codeowners for that part of the codebase are OOO ("out of office") for an extended period, the codeowner can request a force-merge once all CI checks have passed.
This guideline circumvents the quirk that a PR author can't approve their own PR, even if they are a codeowner for part of the PR's changes. The author must be a codeowner, and must share permissions with the OOO codeowner (e.g. they're both on the orc8r-approvers
codeowner team).