Skip to content

Milo Contribution Process

Okan Sahin edited this page Jun 10, 2024 · 10 revisions

Contributing. Your guide from branch to stage to production

To start out with, you should be reading the wiki on submitting PRs & there is a lengthy discussion about the stage process we have implemented as well as an announcement from the milo core team.

Let's highlight the most important aspects here:

Getting your code to production

  • Devs: open PR, 2 developer approvals, green light from PM & Consonant on the PR/Jira as needed, all Github checks pass, assign QE
  • QE: apply "Ready for Stage" label after testing
  • If the conditions ☝️ pass (reviews, checks, label) the PR will automatically be queued to be merged into Stage
  • Once a stage "batch" PR gets created, the batch gets merged on India/EU/US working hours once 4 SOT sign offs are provided & checks are passing

Note: The "queue" is not obvious, but you can investigate the most recent workflow runs to see why your PR was merged or not. If still unsure, reach out to #milo-dev

Fixing prod bugs

  • Bug on prod: Open PR to revert PR or batch and restart at "Getting your code to production"

CSO

  • Revert stage batch or the PR that causes the CSO. Go on the merged PR(s) and click the "revert" button. (Notify folks to re-open their PRs afterwards)
  • Create a PR to merge into stage with the fix or production-PR-revert
  • Get 2 approvals on it or an admin can instantly merge after tests are green & then you can manually trigger the merge to stage workflow
  • Try to get the fix tested, but in a CSO case it's fine to simply apply the 4 SOT labels and let the merge to main workflow or an admin merge into main.

Allowing for exceptions

There is an ongoing discussion which we'd love you to chime in on

PR Labels

  • Every PR must be tested. QE should apply the 'Ready for Stage' label only after a PR has received approvals, all checks have passed, and testing is complete.
  • The 'high impact' label will trigger a message in #milo-community & #milo-changelog for PRs that require additional review from consumers, GWP, design, etc.
  • The 'high priority' label will prioritize PRs in the merge queue. Please reserve this label for JIRA BLOCKERS only.