This page describes how the development/QA process should look like with the adoption of no-qa and incremental tags. = QA Tagging Process = Definition: a bug is the smallest unit of QA. == Current approach and known issues == As a rule, if it needs QA, a merged branch should be represented by at least one bug. Rarely, QA is not necessary for some branches, or can't be done. Problem is with the current process, we assume those are orphaned, and people still need to verify the list of OCs [1] every now and then to ensure no revisions are missing QA. Also rarely, some branches cannot be QA'd until more branches land--they are incremental branches towards a larger bug. Again, current process doesn't cover this situation, changing the status of the bug to 'Fix Committed' and tagging it as qa-needstesting every time a bug is mentioned, regardless if that is only a partial fix or not. == Proposed changes == Two tags come into play: [no-qa] and [incr]. Therefore, to get your branch landed, you must assert that your branch falls in one of the following categories. Each category below describes what you need to do to make the assertion. It also tells you what automation it will trigger. 1. We can QA it, and it fixes one or more bugs. * What you do: Link the bug to the branch in Launchpad. * What the script does: Each related bug is marked Fix Committed and tagged qa-needstesting. 2. We cannot QA it, and it is an incremental step towards one or more bugs. * What you do: Link the bug and the branch in Launchpad, and pass {{{--incr}}} or {{{--incremental}}} to {{{ec2 land}}} or {{{bzr lp-land}}}. '''NOTE: don't say that the last branch in an incremental chain is [incr]. Just submit it with a bug link, like category 1.''' * What the script does: We add a comment in each related bug about the branch landing, and include it in a QA report for the current cycle (just a wiki page for now). 3. We cannot QA it, but it fixes one or more bugs. * What you do: Link the bug and the branch in Launchpad, and pass {{{--no-qa}}} to {{{ec2 land}}} or {{{bzr lp-land}}}. * What the script does: Each related bug is marked Fix Committed and tagged qa-untestable. 4. We cannot QA it, and it does not have an associated bug. * What you do: Pass {{{--no-qa}}} to {{{ec2 land}}} or {{{bzr lp-land}}}. * What the script does: We include it in a QA report for the current cycle (just a wiki page for now). PQM enforce these rules with the usual regex dances. {{{ec2 land}}} and {{{bzr lp-land}}} help you conform to the PQM regex with quicker and more helpful error messages. Alternatively, you can add "[incr]" or "[no-qa]" in your PQM submission message yourself, if using pqm-submit directly, but we don't recommend it. == Implementation Status == https://bugs.edge.launchpad.net/launchpad-project/+bugs?field.tag=orphaned-branches || Bug || Status || || [[Bug:588908]]: Add parsing capability to recognize the flags [incr] and [no-qa] in the PQM commit message || Fix Released || || [[Bug:591856]]: Change script behavior to always check linked bugs || Fix Committed || || [[Bug:601995]]: add ec2 land support to [no-qa] and [incr] tag || In Progress || || [[Bug:602137]]: add bzr lp-land support to no-qa and incr QA tags || In Progress || || [[Bug:604919]]: Change the PQM regex to enforce use of [no-qa] and [incr] commit message clause. || Triaged ||