Commit 8dd1749b authored by Simon Latapie's avatar Simon Latapie
Browse files

doc: replace false stateDiagram with true decision graph

parent 3fdefec3
......@@ -12,45 +12,44 @@ The Acceptance process slightly differs whether you are a project's *developer*
![](acceptance.svg)
## If the MergeRequest author has Developer role (or higher)
## Implementation
Homer uses a simple decision graph to determine the status of the merge requests.
### If the MergeRequest author has Developer role (or higher)
```mermaid
stateDiagram
Submitted: MR Submitted
InReview: In Review
[*] --> Submitted: A VLC developer submitted
Submitted --> NotCompliant: NOT mergeable by gitlab
Submitted --> PipelineReady: mergeable by gitlab
PipelineReady --> NotCompliant: CI NOK
PipelineReady --> Reviewable: CI OK
Reviewable --> InReview: Thread opened\nor\nAnother Developer voted
Reviewable --> Accepted: No vote\nNo thread opened\nduring 72h
InReview --> Acceptable: All threads resolved\nand\nScore >= 0
Acceptable --> Accepted: Wait for 24h
Acceptable --> InReview: A thread has been (re)opened\nor\nScore < 0
Accepted --> Merged: A Developer launches rebase and merge when pipeline succeeds
Accepted --> InReview: A thread has been (re)opened\nor\nlen(votes) = 0\nor\nScore < 0
Merged --> [*]
graph TD
Submitted --> Q1{Is it mergeable?}
Q1 -->|Yes| PipelineReady
Q1 -->|No| NotCompliant
Q1 -->|Cannot determine| QuantumState
PipelineReady --> Q2{Is CI OK?}
Q2 -->|Yes| Reviewable
Q2 -->|No| NotCompliant
Q2 -->|Cannot determine| PipelineNotFinished
Reviewable -->|"No vote and No thread opened during 72h"| Accepted
Reviewable -->|"Thread opened or a Developer voted"| InReview
InReview -->|"All threads resolved and Score >= 0"| Acceptable
Acceptable -->|Wait for 24h| Accepted
```
## If the MergeRequest author is **NOT** a project's developer
### If the MergeRequest author is **NOT** a project's developer
```mermaid
stateDiagram
Submitted: MR Submitted
InReview: In Review
[*] --> Submitted: A VLC developer submitted
Submitted --> NotCompliant: NOT mergeable by gitlab
Submitted --> PipelineReady: mergeable by gitlab
PipelineReady --> NotCompliant: CI NOK
PipelineReady --> Reviewable: CI OK
Reviewable --> InReview: Thread opened\nor\nAnother Developer voted
InReview --> Acceptable: All threads resolved\nand\nlen(votes) > 0\nand\n Score > 0
Acceptable --> Accepted: Wait for 72h
Acceptable --> InReview: A thread has been (re)opened\nor\nlen(votes) = 0\nor\nScore <= 0
Accepted --> Merged: A Developer launches rebase and merge when pipeline succeeds
Accepted --> InReview: A thread has been (re)opened\nor\nlen(votes) = 0\nor\nScore <= 0
Merged --> [*]
graph TD
Submitted --> Q1{Is it mergeable?}
Q1 -->|Yes| PipelineReady
Q1 -->|No| NotCompliant
Q1 -->|Cannot determine| QuantumState
PipelineReady --> Q2{Is CI OK?}
Q2 -->|Yes| Reviewable
Q2 -->|No| NotCompliant
Q2 -->|Cannot determine| PipelineNotFinished
Reviewable -->|"Thread opened or a Developer voted"| InReview
InReview -->|"All threads resolved and Score > 0"| Acceptable
Acceptable -->|Wait for 72h| Accepted
```
## Notes
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment