diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a416a039e1..53b8936f86 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -416,6 +416,82 @@ If you are adding new functionality, include relevant test cases. ## Contributing Workflow +The following diagram illustrates the complete contribution workflow: + +```mermaid +flowchart TD + Start([Start]) --> CreateIssue[Create New Issue] + Start --> FindIssue[Find Existing Issue] + CreateIssue --> GetAssigned["**Get Assigned to Issue**
PRs will be automatically
closed if you're not assigned"] + FindIssue --> GetAssigned + GetAssigned --> ResolveIssue[**Resolve Issue**
work on code/docs/tests updates] + + ResolveIssue --> RunChecks{**Run `make check-test`**
locally! This is a required step -- you will not be assigned to new issues if you ignore this} + RunChecks -->|Fails| WP1[ ] + RunChecks -->|Passes| PushChanges[**Push Changes to
GitHub Fork Branch**] + WP1 -.-> ResolveIssue + + PushChanges --> HasPR{PR Exists?} + HasPR -->|No| CreateDraftPR[Create Draft PR] + HasPR -->|Yes| WaitAutoChecks[**Wait for Automated
Checks to Finish**] + CreateDraftPR --> WaitAutoChecks + + WaitAutoChecks --> CheckAutoTools{All **CodeRabbit and
SonarQube** Comments
Resolved?} + CheckAutoTools -->|No| MarkDraft[Make Sure PR Is **Marked as a Draft**] + CheckAutoTools -->|Yes| MarkReady[Mark PR as Ready
for Review] + MarkDraft --> WP2[ ] + WP2 -.-> ResolveIssue + + MarkReady --> RequestReview[Request Review from
Project Maintainers] + RequestReview --> WaitMaintainer[Wait for Maintainers'
Comments] + + WaitMaintainer --> HasMaintainerComments{**Maintainers' Comments
Resolved**?} + HasMaintainerComments -->|No| MarkDraft + HasMaintainerComments -->|Yes| CheckCI{**CI/CD
Passing?**} + + CheckCI -->|Yes| ReadyMerge([PR Ready for Merge]) + CheckCI -->|No| MarkDraft + + style Start fill:#4caf50,stroke:#2e7d32,stroke-width:2px,color:#ffffff + style ReadyMerge fill:#4caf50,stroke:#2e7d32,stroke-width:2px,color:#ffffff + style ResolveIssue fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#000000 + style RunChecks fill:#2196f3,stroke:#1565c0,stroke-width:2px,color:#ffffff + style CheckAutoTools fill:#2196f3,stroke:#1565c0,stroke-width:2px,color:#ffffff + style HasMaintainerComments fill:#2196f3,stroke:#1565c0,stroke-width:2px,color:#ffffff + style CheckCI fill:#2196f3,stroke:#1565c0,stroke-width:2px,color:#ffffff + style MarkDraft fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#000000 + style MarkReady fill:#4caf50,stroke:#2e7d32,stroke-width:2px,color:#ffffff + style CreateDraftPR fill:#ff9800,stroke:#f57c00,stroke-width:2px,color:#000000 + style WP1 fill:transparent,stroke:transparent,color:transparent,width:0px,height:0px + style WP2 fill:transparent,stroke:transparent,color:transparent,width:0px,height:0px + + linkStyle 0 stroke:#4caf50,stroke-width:2px + linkStyle 1 stroke:#4caf50,stroke-width:2px + linkStyle 2 stroke:#4caf50,stroke-width:2px + linkStyle 3 stroke:#4caf50,stroke-width:2px + linkStyle 4 stroke:#4caf50,stroke-width:2px + linkStyle 5 stroke:#4caf50,stroke-width:2px + linkStyle 6 stroke:#f44336,stroke-width:2px + linkStyle 7 stroke:#4caf50,stroke-width:2px + linkStyle 8 stroke:#f44336,stroke-width:2px + linkStyle 9 stroke:#4caf50,stroke-width:2px + linkStyle 10 stroke:#9e9e9e,stroke-width:2px + linkStyle 11 stroke:#4caf50,stroke-width:2px + linkStyle 12 stroke:#4caf50,stroke-width:2px + linkStyle 13 stroke:#4caf50,stroke-width:2px + linkStyle 14 stroke:#f44336,stroke-width:2px + linkStyle 15 stroke:#4caf50,stroke-width:2px + linkStyle 16 stroke:#f44336,stroke-width:2px + linkStyle 17 stroke:#f44336,stroke-width:2px + linkStyle 18 stroke:#4caf50,stroke-width:2px + linkStyle 19 stroke:#4caf50,stroke-width:2px + linkStyle 20 stroke:#4caf50,stroke-width:2px + linkStyle 21 stroke:#f44336,stroke-width:2px + linkStyle 22 stroke:#4caf50,stroke-width:2px + linkStyle 23 stroke:#4caf50,stroke-width:2px + linkStyle 24 stroke:#f44336,stroke-width:2px +``` + ### 1. Find Something to Work On - Check the **Issues** tab for open issues: [https://github.com/owasp/nest/issues](https://github.com/owasp/nest/issues) diff --git a/mkdocs.yaml b/mkdocs.yaml index a2dc701f90..f98af1e8fb 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -56,6 +56,11 @@ markdown_extensions: - attr_list - def_list - abbr + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: '!!python/name:pymdownx.superfences.fence_code_format' plugins: - search