Skip to content

Commit

Permalink
Bug 1916915 - Add accessibility engineering review request deadline
Browse files Browse the repository at this point in the history
  • Loading branch information
pascalchevrel committed Sep 6, 2024
1 parent e2dd77a commit 142e2e1
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 66 deletions.
73 changes: 38 additions & 35 deletions app/classes/ReleaseInsights/Release.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,14 @@ public function getFutureSchedule(): array
// Transform all the DateTime objects in the $schedule array into formated date strings
$date = fn(string|object $day): string => is_object($day) ? $day->format('Y-m-d H:i:sP') : $nightly->modify($day)->format('Y-m-d H:i:sP');
$schedule = [
'nightly_start' => $date($nightly),
'qa_request_deadline' => $date('Friday'),
'qa_feature_done_1' => match ($this->version->normalized) {
'nightly_start' => $date($nightly),
'a11y_request_deadline' => $date('Friday'),
'qa_request_deadline' => $date('Friday'),
'qa_feature_done_1' => match ($this->version->normalized) {
'142.0' => $date('July 3 21:00'),
default => $date('Friday +1 week 21:00'),
},
'qa_feature_done_2' => match ($this->version->normalized) {
'qa_feature_done_2' => match ($this->version->normalized) {
'135.0' => $date($nightly->modify('+3 weeks')->modify('Thursday 08:00')),
'141.0', '142.0' => $date($nightly->modify('+1 week')->modify('Wednesday 08:00')),
default => $date($nightly->modify('+1 week')->modify('Thursday 08:00')),
Expand Down Expand Up @@ -185,37 +186,38 @@ public static function getNiceLabel(string $version, string $label, bool $short=
$short_version = (string) (int) $version;

$labels = [
'nightly_start' => 'Nightly ' . $short_version . ' starts',
'qa_request_deadline' => $short_version . ' QA request deadline for Nightly',
'qa_feature_done_1' => $short_version .' build ready for nightly QA',
'qa_feature_done_2' => $short_version .' build ready for beta QA',
'soft_code_freeze' => ($short ? '' : 'Firefox ') . $short_version . ' soft Code Freeze starts at 08:00 UTC',
'qa_pre_merge_done' => $short_version . ' regression testing completed',
'qa_test_plan_due' => 'Final deadline for QA’s Feature Test Plan approval',
'string_freeze' => 'String Freeze' . ($short ? '' : ' starts'),
'merge_day' => 'Merge day',
'beta_1' => ($short ? '' : 'Firefox ') . $short_version . ' b1 GTB',
'beta_2' => ($short ? '' : 'Firefox ') . $short_version . ' b2' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_3' => ($short ? '' : 'Firefox ') . $short_version . ' b3' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'sumo_1' => 'SUMO deadline',
'beta_4' => ($short ? '' : 'Firefox ') . $short_version . ' b4' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_5' => ($short ? '' : 'Firefox ') . $short_version . ' b5' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_6' => ($short ? '' : 'Firefox ') . $short_version . ' b6' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_7' => ($short ? '' : 'Firefox ') . $short_version . ' b7' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'sumo_2' => 'SUMO content localization starts',
'beta_8' => ($short ? '' : 'Firefox ') . $short_version . ' b8' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'qa_pre_rc_signoff' => $short_version . ' QA sign off',
'beta_9' => ($short ? '' : 'Firefox ') . $short_version . ' b9' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_10' => ($short ? '' : 'Firefox ') . $short_version . ' b10' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_11' => ($short ? '' : 'Firefox ') . $short_version . ' b11' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_12' => ($short ? '' : 'Firefox ') . $short_version . ' b12' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_13' => ($short ? '' : 'Firefox ') . $short_version . ' b13' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_14' => ($short ? '' : 'Firefox ') . $short_version . ' b14' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_15' => ($short ? '' : 'Firefox ') . $short_version . ' b15' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'rc_gtb' => ($short ? '' : 'Firefox ') . $short_version . ' go to Build',
'rc' => ($short ? '' : 'Firefox ') . 'RC',
'release' => ($short ? '' : 'Firefox ') . $short_version . ($short ? ' Release' : ' go-live @ 6AM PT'),
'planned_dot_release' => ($short ? 'Planned ' : 'Planned Firefox ') . $version . ($short ? '.x' : ' dot release'),
'nightly_start' => 'Nightly ' . $short_version . ' starts',
'a11y_request_deadline' => $short_version . ' a11y engineering request deadline for Nightly',
'qa_request_deadline' => $short_version . ' QA request deadline for Nightly',
'qa_feature_done_1' => $short_version .' build ready for nightly QA',
'qa_feature_done_2' => $short_version .' build ready for beta QA',
'soft_code_freeze' => ($short ? '' : 'Firefox ') . $short_version . ' soft Code Freeze starts at 08:00 UTC',
'qa_pre_merge_done' => $short_version . ' regression testing completed',
'qa_test_plan_due' => 'Final deadline for QA’s Feature Test Plan approval',
'string_freeze' => 'String Freeze' . ($short ? '' : ' starts'),
'merge_day' => 'Merge day',
'beta_1' => ($short ? '' : 'Firefox ') . $short_version . ' b1 GTB',
'beta_2' => ($short ? '' : 'Firefox ') . $short_version . ' b2' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_3' => ($short ? '' : 'Firefox ') . $short_version . ' b3' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'sumo_1' => 'SUMO deadline',
'beta_4' => ($short ? '' : 'Firefox ') . $short_version . ' b4' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_5' => ($short ? '' : 'Firefox ') . $short_version . ' b5' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_6' => ($short ? '' : 'Firefox ') . $short_version . ' b6' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_7' => ($short ? '' : 'Firefox ') . $short_version . ' b7' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'sumo_2' => 'SUMO content localization starts',
'beta_8' => ($short ? '' : 'Firefox ') . $short_version . ' b8' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'qa_pre_rc_signoff' => $short_version . ' QA sign off',
'beta_9' => ($short ? '' : 'Firefox ') . $short_version . ' b9' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_10' => ($short ? '' : 'Firefox ') . $short_version . ' b10' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_11' => ($short ? '' : 'Firefox ') . $short_version . ' b11' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_12' => ($short ? '' : 'Firefox ') . $short_version . ' b12' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_13' => ($short ? '' : 'Firefox ') . $short_version . ' b13' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_14' => ($short ? '' : 'Firefox ') . $short_version . ' b14' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'beta_15' => ($short ? '' : 'Firefox ') . $short_version . ' b15' . ($short ? ' GTB' : ' (GTB: 13:00 UTC)'),
'rc_gtb' => ($short ? '' : 'Firefox ') . $short_version . ' go to Build',
'rc' => ($short ? '' : 'Firefox ') . 'RC',
'release' => ($short ? '' : 'Firefox ') . $short_version . ($short ? ' Release' : ' go-live @ 6AM PT'),
'planned_dot_release' => ($short ? 'Planned ' : 'Planned Firefox ') . $version . ($short ? '.x' : ' dot release'),
];

return $labels[$label];
Expand All @@ -230,6 +232,7 @@ public static function getMilestonesNames(): array
{
$nightly_milestones = [
'nightly_start',
'a11_request_deadline',
'qa_request_deadline',
'qa_feature_done_1',
'qa_feature_done_2',
Expand Down
62 changes: 32 additions & 30 deletions app/views/templates/future_release.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -209,40 +209,42 @@
{% set btb = ' <small class="text-secondary fw-light">Go to build</small>' %}
{% set cycle_labels = {
nightly_start: 'Nightly starts',
qa_request_deadline: 'Deadline to request manual QA',
qa_feature_done_1: 'Build ready for QA in nightly',
qa_feature_done_2: 'Build ready for QA in beta',
soft_code_freeze: 'Soft Code Freeze starts',
qa_pre_merge_done: 'QA pre-merge regression testing done',
qa_test_plan_due: 'QA Test Plan approval due',
string_freeze: 'String Freeze starts',
merge_day: 'Merge day',
beta_1: 'Beta 1' ~ btb,
beta_2: 'Beta 2' ~ btb,
beta_3: 'Beta 3' ~ btb,
sumo_1: '<abbr title="support.mozilla.org">SUMO</abbr> content creation',
beta_4: 'Beta 4' ~ btb,
beta_5: 'Beta 5' ~ btb,
beta_6: 'Beta 6' ~ btb,
beta_7: 'Beta 7' ~ btb,
beta_8: 'Beta 8' ~ btb,
qa_pre_rc_signoff: 'Pre-release QA sign-off',
beta_9: 'Beta 9' ~ btb,
sumo_2: '<abbr title="support.mozilla.org">SUMO</abbr> content localization',
beta_10: 'Beta 10' ~ btb,
beta_11: 'Beta 11' ~ btb,
beta_12: 'Beta 12' ~ btb,
beta_13: 'Beta 13' ~ btb,
beta_14: 'Beta 14' ~ btb,
beta_15: 'Beta 15' ~ btb,
rc_gtb: 'Release Candidate' ~ btb,
rc: 'Release Candidate',
release: 'Release day!',
planned_dot_release: 'Planned dot release'
a11y_request_deadline: 'Deadline to request accessibility engineering review',
qa_request_deadline: 'Deadline to request manual QA',
qa_feature_done_1: 'Build ready for QA in nightly',
qa_feature_done_2: 'Build ready for QA in beta',
soft_code_freeze: 'Soft Code Freeze starts',
qa_pre_merge_done: 'QA pre-merge regression testing done',
qa_test_plan_due: 'QA Test Plan approval due',
string_freeze: 'String Freeze starts',
merge_day: 'Merge day',
beta_1: 'Beta 1' ~ btb,
beta_2: 'Beta 2' ~ btb,
beta_3: 'Beta 3' ~ btb,
sumo_1: '<abbr title="support.mozilla.org">SUMO</abbr> content creation',
beta_4: 'Beta 4' ~ btb,
beta_5: 'Beta 5' ~ btb,
beta_6: 'Beta 6' ~ btb,
beta_7: 'Beta 7' ~ btb,
beta_8: 'Beta 8' ~ btb,
qa_pre_rc_signoff: 'Pre-release QA sign-off',
beta_9: 'Beta 9' ~ btb,
sumo_2: '<abbr title="support.mozilla.org">SUMO</abbr> content localization',
beta_10: 'Beta 10' ~ btb,
beta_11: 'Beta 11' ~ btb,
beta_12: 'Beta 12' ~ btb,
beta_13: 'Beta 13' ~ btb,
beta_14: 'Beta 14' ~ btb,
beta_15: 'Beta 15' ~ btb,
rc_gtb: 'Release Candidate' ~ btb,
rc: 'Release Candidate',
release: 'Release day!',
planned_dot_release: 'Planned dot release'
}
%}
{% set cycle_descriptions = {
nightly_start: 'The first day of the cycle is <i>Merge Day</i>. After merging mozilla-central to mozilla-beta, we bump the nightly version number on mozilla-central and a new development cycle starts for Firefox. A new Firefox Nightly is shipped every 12 hours.',
a11y_request_deadline: 'Accessibility engineering review has been requested (<a href="https://firefox-source-docs.mozilla.org/bug-mgmt/processes/accessibility-review.html#requesting-engineering-review">using the <code>a11y-review</code> flag on Bugzilla</a>) for new (or significantly redesigned) UI that requires assessment to determine whether it is accessible to people with disabilities.',
qa_request_deadline: 'QA has been informed (via a Jira ticket) about features that require manual testing during the nightly and/or beta cycle. <br>Feature technical documentation is also required to draft Test Plans and Test Cases.',
qa_feature_done_1: 'Features with a QA request are ready for testing to assess feature quality and provide a formal test report by the end of Week 3 of the nightly cycle.',
qa_feature_done_2: 'If nightly testing was skipped then features should be in a testable state by this date for beta testing.',
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/ReleaseInsights/ReleaseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
->toHaveCount(3)
->toHaveKeys(['nightly', 'beta', 'release',]);
expect(Release::getMilestonesNames()['nightly'])
->toHaveLength(8);
->toHaveLength(9);
expect(Release::getMilestonesNames()['beta'])
->toHaveLength(19);
expect(Release::getMilestonesNames()['release'])
Expand Down

0 comments on commit 142e2e1

Please sign in to comment.