🗂️ iBrowe Project Management & QA Guidelines
This guide outlines best practices for managing issues, milestones, QA, and releases in the iBrowe development process. It is adapted from Brave’s internal protocols and customized for iBrowe’s workflows.
📝 Issue Requirements
All work must have a GitHub issue unless it falls into these exceptions:
- Documentation-only updates
.github/CODEOWNERS
file changes
If your change doesn’t fall under these, create an issue before submitting a PR.
🎯 Priority Labels
To prioritize tasks:
priority/P1
→ Critical bug, potential hotfix neededpriority/P2
→ Serious issue, may require upliftingpriority/P3
→ Standard feature/bugfix, goes with the release trainpriority/P4
→ Planned backlog itempriority/P5
→ No timeline, not currently scheduled
Do not downgrade another issue’s priority without team alignment.
🛳️ Milestone & Release Management
- Every release milestone is defined per branch (e.g.
1.13.x
,1.13.x Release #2
) - QA signs off on each release in the
#release
Slack channel - Milestone descriptions must link to the prior milestone
- Issues are assigned to a milestone after they land, unless they’re marked
release/blocking
(e.g. security bugs, major regressions)
Pull Request Milestones
- PRs must target the milestone matching the branch they’re merging into
- For
main
, use the version listed insrc/ibrowe/package.json
📌 Uplift Policy
All PRs land in main
by default. Uplifting to Dev/Beta/Release requires:
- Creating a PR against the version branch (e.g.
1.13.x
) - Linking the original issue in the PR body
- Getting approval from an uplift approver
🛑 Only uplift approvers may approve PRs to versioned branches:
- @rebron
- @kjozwiak
- @Sri
- @clifton
Always confirm your uplift is merged and visible in Nightly before considering it done.
🗃️ Project Boards
Boards track functional areas (1:1 with Pods).
Reference: iBrowe Projects
During triage:
- Move issues from left ➜ right based on progress
- Clear the “Untriaged Backlog” column
- Label issues with
priority/P1–P5
appropriately
🧪 QA Guidelines
QA Labels
- Always add either
QA/Yes
orQA/No
- Use
QA/No
for:- Internal-only/tooling issues
- Meta issues
- Items already fully covered by another issue with a test plan
Platform-specific Testing
Use these labels if required:
QA/Test-All-Platforms
→ Requires testing across all OSesQA/Test-All-Device-Types
→ Phone, tablet, etc.
To mark platform verification:
QA/QA Pass-Win64
QA/QA Pass-macOS
QA/QA Pass-Linux
QA can query issues missing these labels with:
is:issue is:closed milestone:"1.13.x Release #2" -label:"QA/No" -label:"QA/QA Pass-Win64"
📝 Release Notes
Every issue must have one of:
release-notes/include
release-notes/exclude
Check missing tags with:
is:issue milestone:"1.13.x - Beta" -label:"release-notes/include" -label:"release-notes/exclude"
Release notes should be:
- Drafted early in Beta
- Logged in
CHANGELOG.md
in the root directory - Linked or copied to the GitHub release entry
🧑🔬 Requesting QA Resources
Use the QA Resources Project:
- Create an issue using: https://github.com/ibrowe/qa-resources/issues/new/choose
- Assign to project:
QA Work Priority List
- Use
P1
if urgent and notify QA in#testers
QA lifecycle:
- Requested ➜ Upcoming ➜ In Progress ➜ Completed
Note: Scheduled releases follow the iBrowe Release Schedule. QA will continue triaging and prioritizing hotfixes through the same system.
📎 Source: Adapted from Brave’s internal engineering and QA documentation. All protocols restructured for iBrowe project governance.