-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Triage Guidelines
Brian R. Bondy edited this page Feb 22, 2019
·
76 revisions
- All work has an issue.
- If you'd like to have an issue schedule to a particular release, add it to the closest matching project board for triage. If you aren't sure use the project called
General
. A list of all project boards can be found here: https://github.com/brave/brave-browser/projects - Issues only get assigned to a milestone once they are completed and merged into that milestone.
- Issues that should be locked into a particular milestone without consultation to the person putting it there, should get the
release/blocking
label added to it and can go into a milestone while the issue is still open. This should be rare though. E.g. a security critical bug, or a Chromium upgrade. - Please do not change milestones/priority/boards on issues labeled
security
without consulting the security team in Slack (#security
or#security-discussion
). - High level summaries should be maintained on this Roadmap wiki for at least everything up to and including the version which is on master: https://github.com/brave/brave-browser/wiki/Roadmap.
- We have weekly triage meetings which includes the following schedule:
- Go through the projects listed here https://github.com/brave/brave-browser/projects
- Get a status on each issue
- Move issues along the process from the left most column to the right most depending on status.
- Make sure the Untriaged Backlog column is empty and we add appropriate
priority/p1
-priority/p5
labels
- Some Projects may have a special triage meeting only for that project.
- Projects will be added and removed over time.
- Go through the projects listed here https://github.com/brave/brave-browser/projects
- By default everything is PR'ed against master and only lands in master.
- If something is wanted in Dev, Beta, or Release channel, then a PR must be made to the current version branch and it must get an approval from someone on the uplift approvers list below. That PR must contain the issue link, one PR per channel.
- Milestone on the issue should match only the smallest version where it is landed currently and NOT where you want it ideally.
- Milestones on the PRs should match only the version branch that the PR is being merged to.
- Current approvers are @rebron @kjozwiak @Sri @bbondy @clifton (Slack usernames).
- If you are not an approver, do NOT approve any requests made to a Beta or Release branch
- Approvers should be working to keep PRs to version branches at 0 issues.
- The person doing the original request must see that the PR actually gets merged.
We use priority labels from 1-5 as a way to describe which issues should be worked on next. The general principle is:
- if there's a P1 issue you could work on, you should do that at your earliest possible convenience
- don't start work on a P(n+1) issue if there's a P(n) issue you could start working on instead
The rest of this is a rough rubric about how to prioritize issues.
-
priority/P1
: A very extremely bad problem. We might push a hotfix for it. [This should only be for a very few rare issues.] -
priority/P2
: A bad problem. We might uplift this to the next planned release. [We don't expect to see many of these.] -
priority/P3
: The next thing for us to work on. It'll ride the trains. [Our bread and butter work.] -
priority/P4
: Planned work. We expect to get to it "soon". [A larger backlog of things we're getting to.] -
priority/P5
: Not scheduled. Don't anticipate work on this any time soon. [Not necessarily wontfix, but not in the work queue at all.]
Ultimately, go by the expectation that folks will pick up issues in priority order. If you're noting a task to add to your team's backlog: probably P4. If you're noting a new important task, probably P3 unless unusually severe. If you're triaging a suggestion which shouldn't edge out anything we've already planned: P5.
- Never remove
QA/Yes
andQA/No
labels - Things that should get a
QA/No
label: Things that are internal or tooling related only, things that are impossible for QA to test, meta issues, things that are covered by something else fully with a test plan in the same milestone. - These labels are expected to be added when a PR is submitted, but it gets missed sometimes.
- QA should block a release if there are any issues with neither of those tags using a search query similar to this one but with an appropriate milestone defined:
is:issue is:closed milestone:"Releasable builds 0.55.x" -label:"QA/No" -label:"QA/Yes"
. - QA should ping people as needed to make sure things have one of those labels.
- Add labels for checked once an issue is checked on an OS. If a certain OS is not needed then indicate it in a comment and mark it as checked too.
- QA should use a search like this to find things that are not yet checked:
- Linux:
is:issue is:closed milestone:"Releasable builds 0.55.x" -label:"QA/QA Pass-Linux" -label:"QA/No"
- macOS:
is:issue is:closed milestone:"Releasable builds 0.55.x" -label:"QA/QA Pass-macOS" -label:"QA/No"
- Windows:
is:issue is:closed milestone:"Releasable builds 0.55.x" -label:"QA/QA Pass-Win64" -label:"QA/No"
- Linux:
- Every issue should be tagged with either
release-notes/include
orrelease-notes/exclude
. - You can use a search term like this to see all unlabeled issues:
is:issue milestone:"0.56.x - Beta" -label:"release-notes/include" -label:"release-notes/exclude"
- Releases shouldn't go out without release notes.
- Ask QA to generate output when ready.
- PR team should get a rough draft at the start of the Beta period of what will be included in the Beta release.
- Release notes should be included in a file on the root of brave-browser named CHANGELOG.md.
- On each release, release notes (or a link to release notes) should also be included in the published release.