Open Bug 1543876 (bmo-is-regression-migrate) Opened 6 years ago Updated 3 years ago

Update existing bugs to use is_regression

Categories

(bugzilla.mozilla.org :: Bulk Bug Edit Requests, task)

Production
task
Not set
normal

Tracking

()

People

(Reporter: emceeaich, Unassigned)

References

Details

Summary: Update existing bugs to use is_regression and has_regression_range → Update existing bugs to use is_regression
Alias: bmo-is-regression-migrate

I think the migration to unsure-range-needed is missing here.

(In reply to Emma Humphries, Bugmaster β˜•οΈπŸŽΈπŸ§žβ€β™€οΈβœ¨ (she/her) [:emceeaich] (UTC-8) needinfo? me from comment #1)

  • Bug has default value of has-regression-range, regression and regressionrange-wanted keywords
    • Remove regression and regressionrange-wanted keywords
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known

Isn't this:

  • Bug has empty regressed-by field
    • Set bug's is_regression field to yes-range-needed

missing here?

  • Bug has default value of has-regression-range, regressionrange-wanted keyword, but not regression keyword
    • Bug has empty regressed-by field
      • It is not clear if this is a bug which is a regression, but we don't know the cause or if we don't know if it is a regression, so list the bug for human review

This is a case that could be set to 'unsure'.

  • Bug has has-regression-range = yes, regression keyword, but not regressionrange-wanted keyword
    • Remove regression keyword
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has empty blocked-by field
        • List the bug for human review

Should be:

  • Bug has empty blocked-by field
    • Set bug's is_regression field to yes-range-needed
  • Bug has non-empty blocked-by field
    • List the bug for human review

Right?

  • Bug has has-regression-range = yes, regression and regressionrange-wanted keywords
    • Remove regression and regressionrange-wanted keywords
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty-regressed-by field
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has empty blocked-by field
        • List the bug for human review

Same here.

  • Bug has has-regression-range = yes, regressionrange-wanted keyword, but not regression keyword
    • Bug has empty regressed-by field
      • Set bug's is_regression field to yes-range-needed

This case should be 'yes-range-known' (given that we consider has-regression-range to be authoritative), or 'yes-range-needed' with a needinfo to ask about the inconsistency.

  • Bug has has-regression-range = no, regression keyword, but not regressionrange-wanted keyword
    • Remove regression keyword
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has empty blocked-by field
        • List the bug for human review

Same here (regarding non-empty vs empty 'blocked-by' field).

  • Bug has has-regression-range = no, regression and regressionrange-wanted keywords
    • Remove regression and regressionrange-wanted keywords
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty-regressed-by field
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has empty blocked-by field
        • List the bug for human review

Same here (regarding non-empty vs empty 'blocked-by' field).

  • Bug has has-regression-range = no, regressionrange-wanted keyword, but not regression keyword
    • Bug has non-empty regressed-by field
      • Remove regressionrange-wanted keyword
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Set bug's is_regression field to unknown-range-needed

I guess this was a typo and it is 'unsure' too.

Yes, comment #1 was an earlier version of the migration plan from an earlier version of the field design.

Rules for open bugs

Assume that regressed-by and has-regression-range fields are authoritative. In many cases missing regressed-by data may be in the depends on field.

  • Bug has default value of has-regression-range, and regression or regressionrange-wanted keywords

    • Remove regression and regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has empty depends on field
        • Set bug's is_regression field to yes-range-needed
      • Bug has non-empty depends on field
        • Set bug's is_regression field to unsure
  • Bug has has-regression-range = yes

    • Remove regression, regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has empty depends on field
        • Set bug's is_regression fieljd to yes-range-needed
      • Bug has non-empty depends on field
        • Set bug's is_regression field to unsure
        • Set a needinfo to reconcile
  • Bug has has-regression-range = no

    • Remove regression, regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known and needinfo to get reconciled
    • Bug has empty regressed-by field
      • Bug has empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed and needinfo to get reconciled
  • Bug has has-regression-range = irrelevant

    • Remove regression, regressionrange-wanted keywords if present
    • Set bug's is_regression field to yes-range-not-needed
    • Bug has non-empty regressed-by field
      • Set a needinfo to reconcile

(In reply to Emma Humphries, Bugmaster β˜•οΈπŸŽΈπŸ§žβ€β™€οΈβœ¨ (she/her) [:emceeaich] (UTC-8) needinfo? me from comment #4)

Assume that regressed-by and has-regression-range fields are authoritative. In many cases missing regressed-by data may be in the depends on field.

Many (most?) people used 'blocks' too, so I would modify the rules to consider that too (so replace "empty depends_on" with "empty depends_on or blocks").

  • Bug has default value of has-regression-range, and regression or regressionrange-wanted keywords
    • Remove regression and regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has empty depends on field
        • Set bug's is_regression field to yes-range-needed
      • Bug has non-empty depends on field
        • Set bug's is_regression field to unsure

If 'regression' is present, we shouldn't set the field to 'unsure', as we know it is a regression.

  • Bug has has-regression-range = yes
    • Remove regression, regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known
    • Bug has empty regressed-by field
      • Bug has empty depends on field
        • Set bug's is_regression fieljd to yes-range-needed
      • Bug has non-empty depends on field
        • Set bug's is_regression field to unsure
        • Set a needinfo to reconcile

Same here, if the bug has a regression range, it must be a regression, so we shouldn't set the field to 'unsure'.

  • Bug has has-regression-range = no
    • Remove regression, regressionrange-wanted keywords if present
    • Bug has non-empty regressed-by field
      • Set bug's is_regression field to yes-range-known and needinfo to get reconciled
    • Bug has empty regressed-by field
      • Bug has empty blocked-by field
        • Set bug's is_regression field to yes-range-needed
      • Bug has non-empty blocked-by field
        • Set bug's is_regression field to yes-range-needed and needinfo to get reconciled

Are we sure that bugs with 'has-regression-range' set to 'no' are always regressions?

  • Bug has has-regression-range = irrelevant
    • Remove regression, regressionrange-wanted keywords if present
    • Set bug's is_regression field to yes-range-not-needed
    • Bug has non-empty regressed-by field
      • Set a needinfo to reconcile

'has-regression-range' == 'irrelevant' could also mean that the bug was not a regression.

Marco, the field's been created but not yet enabled. We should finalize the plan so we can write an Auto Nag script to do the migration.

Should we go with just using the regression and regressionrange-needed fields and the regressed-by fields to migrate?

So:

regression keyword and regressed-by non-empty => yes-range-known
regression and regressionwindow-wanted keywords and regressed-by empty => yes-range-needed
regression and regressionwindow-wanted keywords and and regressed-by non-empty => yes-range-known

And not try to do anything with blocks and blocked-by?

Flags: needinfo?(mcastelluccio)

(In reply to Emma Humphries, Bugmaster β˜•οΈπŸŽΈπŸ§žβ€β™€οΈβœ¨ (she/her) [:emceeaich] (UTC-8) needinfo? me from comment #7)

Marco, the field's been created but not yet enabled. We should finalize the plan so we can write an Auto Nag script to do the migration.

Should we go with just using the regression and regressionrange-needed fields and the regressed-by fields to migrate?

So:

regression keyword and regressed-by non-empty => yes-range-known
regression and regressionwindow-wanted keywords and regressed-by empty => yes-range-needed
regression and regressionwindow-wanted keywords and and regressed-by non-empty => yes-range-known

And not try to do anything with blocks and blocked-by?

This sounds good to me, it definitely reduces the complexity!
I would use the "Has Regression Range" field values too though:

  • "yes" -> "yes-range-known";
  • "no" -> "yes-range-needed";
  • "irrelevant" -> no action

My only doubt is: what do we do with bugs which have the "regression" keyword but no "regressionwindow-wanted" and no "Has Regression Range" and no "Regressed By"? I would set closed bugs to "yes-range-not-needed" and open bugs to "yes-range-needed".

So basically we could apply the following rules, in order of priority:

  • 'regressed-by' not empty -> 'yes-range-known'
  • 'regressionwindow-wanted' keyword present -> 'yes-range-needed'
  • 'Has Regression Range' = 'yes' -> 'yes-range-known'
  • 'Has Regression Range' = 'no' -> 'yes-range-needed'
  • open bug and 'regression' keyword present -> 'yes-range-needed'
  • closed bug and 'regression' keyword present -> 'yes-range-not-needed'

Then, we will need to implement the Auto Nag checkers to avoid inconsistencies in the future.

Flags: needinfo?(mcastelluccio)
You need to log in before you can comment on or make changes to this bug.