--- status: proposed creation-date: "2023-10-10" authors: [ "@iamphill" ] coach: [ "@ntepluhina" ] approvers: [ ] owning-stage: "~devops::create" participating-stages: [] --- # New diffs ## Summary Diffs at GitLab are spread across several places with each area using their own method. We are aiming to develop a single, performant way for diffs to be rendered across the application. Our aim here is to improve all areas of diff rendering, from the backend creation of diffs to the frontend rendering the diffs. ## Motivation ### Goals - improved perceived performance - improved maintainability - consistent coverage of all scenarios ### Non-Goals ### Priority of Goals In an effort to provide guidance on which goals are more important than others to assist in making consistent choices, despite all goals being important, we defined the following order. **Perceived performance** is above **improved maintainability** is above **consistent coverage**. Examples: - a proposal improves maintainability at the cost of perceived performance: ❌ we should consider an alternative. - a proposal removes a feature from certain contexts, hurting coverage, and has no impact on perceived performance or maintanability: ❌ we should re-consider. - a proposal improves perceived performance but removes features from certain contexts of usage: ✅ it's valid and should be discussed with Product/UX. - a proposal guarantees consistent coverage and has no impact on perceived performance or maintainability: ✅ it's valid. In essence, we'll strive to meet every goal at each decision but prioritise the higher ones. ## Proposal ## Design and implementation details ## Alternative Solutions