From d89fac9e3fd4ad67f7b4dbff16fce095c1539b75 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Mon, 15 Dec 2025 21:58:51 +0100 Subject: [PATCH] chore: Add code quality problem report form --- ...RT.yml => 1-FUNCTIONAL_PROBLEM_REPORT.yml} | 0 .../2-CODE_QUALITY_PROBLEM_REPORT.yml | 103 ++++++++++++++++++ ...ORT_REQUEST.yml => 3-BACKPORT_REQUEST.yml} | 0 3 files changed, 103 insertions(+) rename .github/ISSUE_TEMPLATE/{1-PROBLEM_REPORT.yml => 1-FUNCTIONAL_PROBLEM_REPORT.yml} (100%) create mode 100644 .github/ISSUE_TEMPLATE/2-CODE_QUALITY_PROBLEM_REPORT.yml rename .github/ISSUE_TEMPLATE/{2-BACKPORT_REQUEST.yml => 3-BACKPORT_REQUEST.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/1-PROBLEM_REPORT.yml b/.github/ISSUE_TEMPLATE/1-FUNCTIONAL_PROBLEM_REPORT.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/1-PROBLEM_REPORT.yml rename to .github/ISSUE_TEMPLATE/1-FUNCTIONAL_PROBLEM_REPORT.yml diff --git a/.github/ISSUE_TEMPLATE/2-CODE_QUALITY_PROBLEM_REPORT.yml b/.github/ISSUE_TEMPLATE/2-CODE_QUALITY_PROBLEM_REPORT.yml new file mode 100644 index 0000000000..c794b0622a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-CODE_QUALITY_PROBLEM_REPORT.yml @@ -0,0 +1,103 @@ +name: Report a Code Quality Issue +description: Report problems related to code structure, maintainability, performance, correctness, or technical debt that do not directly affect end-user behavior. +labels: ["Status: Needs triage", "Status: Needs confirmation", "Type: Code Quality"] +type: "Code Quality" +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to help improve FreeCAD's code quality! + + > [!NOTE] + > This form is intended **only for code quality issues**, such as: + > - Architectural or design problems + > - Maintainability or readability issues + > - Performance or scalability concerns + > - Incorrect abstractions, layering violations, or technical debt + > + > If the issue affects user-visible behavior, workflows, or UI, please use the regular **Report Problem** form instead. + + Please [search existing issues](https://github.com/FreeCAD/FreeCAD/issues) before submitting. + By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/FreeCAD/FreeCAD/blob/main/CODE_OF_CONDUCT.md). + + - type: dropdown + id: wb + attributes: + label: Area / Workbench affected + description: Select the primary area affected by the code quality issue. + options: + - Assembly + - BIM + - CAM + - Core (App, Gui, Base, ...) + - Draft + - FEM + - Material + - Measurement + - Mesh + - Part + - Part Design + - Sketcher + - Spreadsheet + - TechDraw + - Build system / CI + - Documentation + - Other (specify below) + + - type: textarea + id: description + attributes: + label: Problem description + description: | + Describe the code quality issue clearly. + Focus on *why* the current implementation is problematic (e.g. maintainability, performance, correctness, extensibility). + Reference files, classes, functions, or modules where applicable. + placeholder: | + Example: + - Class X violates dependency rules by including Y + - Function Z mixes responsibilities and is hard to reason about + - Algorithm has unnecessary complexity or poor performance characteristics + validations: + required: true + + - type: textarea + id: impact + attributes: + label: Impact + description: | + Explain the practical impact of this issue. + For example: increased maintenance cost, higher bug risk, performance degradation, difficulty extending functionality, or CI/build issues. + placeholder: Describe how this affects the codebase long-term. + validations: + required: true + + - type: textarea + id: proposed_solution + attributes: + label: Suggested improvement (optional) + description: | + If you have ideas on how to address the issue, outline them here. + This can include refactoring suggestions, alternative designs, or references to best practices. + placeholder: Optional — leave empty if unsure. + + - type: textarea + id: references + attributes: + label: References / evidence + description: | + Add relevant references such as: + - File paths or code snippets + - Related issues or pull requests + - Benchmarks, logs, or static analysis results + placeholder: Links, snippets, or related issues. + + - type: textarea + id: dev_version + attributes: + label: Development version (if relevant) + description: | + If the issue is version-specific or recently introduced, paste the output from the + **About FreeCAD** dialog of a development build. + Otherwise, this can be left empty. + placeholder: Paste About FreeCAD information here. + render: shell diff --git a/.github/ISSUE_TEMPLATE/2-BACKPORT_REQUEST.yml b/.github/ISSUE_TEMPLATE/3-BACKPORT_REQUEST.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/2-BACKPORT_REQUEST.yml rename to .github/ISSUE_TEMPLATE/3-BACKPORT_REQUEST.yml