diff --git a/README.md b/README.md index 05f34478cf2e810fceb74f784f68310d0ee4f715..73d185e0cea485db992a4416cd38afe60a427463 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,4 @@ This means that a central `QKDN-Controller` is responsible to manage and configu - [API v1](api/_Docs/v1/Readme.md) - [Logging Guide](docs/Logging.md) - [Tracing Guide](docs/Tracing.md) +- [Definition of Done](docs/dod.md) diff --git a/docs/dod.md b/docs/dod.md new file mode 100644 index 0000000000000000000000000000000000000000..b1afbdf7b91d09bc344e7972927f9303e34e3660 --- /dev/null +++ b/docs/dod.md @@ -0,0 +1,18 @@ +# Definition of Done + +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.