Processes - Orange-OpenSource/Orange-Boosted-Bootstrap GitHub Wiki

Reviews (focus on a11y and design)

In the following text, PR author could be replaced by the core team if the PR author doesn't belong to the core team; meaning a contributor

When a PR is created by a developer, impacts in terms of a11y and design must be evaluated; it means that if the PR impacts the a11y or the design in any way, it must be reviewed, and so approved, by the ODS accessibility experts and/or ODS design experts.

PR life continues, and discussions happen between the author, developers, designers, and a11y experts as usual.

⚠️ PR author must make an effort in the description to explain to all reviewers (developers, designers, and a11y experts) the content of this PR. What are the changes? Why? What’s the impact that needs to be tested depending on the fields? Let’s try to figure out what could be difficult to understand when one doesn’t know the topic.

1st step: technical review

At some point, the PR is ready for the first review step: the technical review by a maintainer of Boosted; a developer of the core team. This step is essential so that at least 2 developers agree on the content. They will ensure together that basic checks are done regarding a11y and design with their own knowledge so that our a11y and design reviewers don't lose time with basic feedback.

Once the PR is approved by at least one member of the dev core team, it's now ready to be reviewed by the other fields depending on the content of the PR.

2nd step: a11y and/or design reviews

ℹ️ Here is how one can access to the filtered view with several labels: https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/pulls?q=is%3Aopen+is%3Apr+label%3A%22ready+for+design+review%22%2C%22upcoming+design+review%22+

Seal of approval!

3rd step: final technical review

When there are no more "ready for * review" labels in this PR, it's ready for a final technical review. Once it's done, the PR is merged!

PRs workflow

⚠️ WIP

Diagram representation of Boosted PRs workflow.

    stateDiagram-v2
        [*] --> State1
        State1: Draft
        note left of State1
            PR is in development and can't be reviewed officially
        end note
        State1 --> State2
        State2: Ready for review
        note left of State2
            Developer has checked all the content and the DoD.
            PR is ready for review.
            Anyone can make the first review.
        end note
        State2 --> State3
        State3: Review in progress (1)
        State3 --> State2
        State3 --> State4
        State4: Approved (1)
        note left of State4
            Reviewer must approve the PR.
        end note
        State4 --> State5: (Optional)
        State5: Ready for a11y review
        State5 --> State6
        State6: A11y review in progress
        State6 --> State5
        State6 --> State7
        State7: A11y review done
        note right of State7
            A11y reviewer approve the PR (or at least comment the PR with a "OK")
        end note
        State7 --> State8: (Optional)
        State4 --> State8: (Optional)
        State8: Ready for design review
        State8 --> State9
        State9: Design review in progress
        State9 --> State8
        State9 --> State10
        State10: Design review done
        note right of State10
            Design reviewer approve the PR (or at least comment the PR with a "OK")
        end note
        State10 --> State11
        State7 --> State11: (if no design review)
        State11: External reviews done
        State11 --> State110: (if commits during a11y and/or design review)
        State110: Check with reviewer 1
        State110 --> State11
        State4 --> State12: (if no a11y nor design review)
        State11 --> State12
        State12: Ready for final review
        State12 --> State13
        State13: Review in progress (2)
        State13 --> State12
        State13 --> State14
        State14: Review done (2)
        note left of State14
            Reviewer must approve the PR.
        end note
        State14 --> State15
        State15: Merged
        State15 --> [*]