This document outlines the criteria that must be met before a Merge Request (MR) can be considered complete and merged into the main codebase.
## 1. General Requirements (Applies to All MRs)
***Clear Description:** The MR description clearly explains what was done and why, additionally it links to the issue describing the problem space.
***Scope Alignment:** The changes within the MR are limited to the defined scope. Avoid introducing unrelated changes ("snowflakes").
***Review & Approval:** The MR has been reviewed and approved by at least one other team member (or designated reviewer). The reviewer understands the changes and confirms they meet the project's standards.
***Documentation:** Any changes to public APIs, configuration, or significant functionality are accompanied by updated documentation (e.g., code comments, README files, API documentation).
## 2. Code Quality & Security
***Code Style Compliance:** The code adheres to the project's Go style guidelines. The automated linters run on the CI and must be green.
***Documentation:** The MR contains relevant documentation for this MR, either in the code, a markdown file or better, both!
***Unit Tests** All existing unit tests are green, all new code is tested by a unit test, if it contains logic. Aim for at least 80% CC.
***Instrumentation:** All functions use `OpenTelemetry` and send spans with the correct context.
***Structured Logging:** Logs are formatted in our structured format.