# BMO - product aliases for searching
use constant PRODUCT_ALIASES => {
- 'Boot2Gecko' => 'Firefox OS',
};
# When doing searches, NULL datetimes are treated as this date.
qr/\(.*Mac OS 8[^.].*\)/ => ["Mac System 8.0"],
qr/\(.*Mac OS 8.*\)/ => ["Mac System 8.6"],
qr/\(.*Darwin.*\)/ => [("Mac OS X 10.0", "Mac OS X")],
- # Firefox OS
- qr/\(Mobile;.*Gecko.*Firefox/ => ["Gonk (Firefox OS)"],
# Silly
qr/\(.*Mac.*PowerPC.*\)/ => ["Mac System 9.x"],
qr/\(.*Mac.*PPC.*\)/ => ["Mac System 9.x"],
"L20n" => 'l20n-security',
"Legal" => 'legal',
"Marketing" => 'marketing-private',
- "Marketplace" => 'client-services-security',
"Mozilla Communities" => 'mozilla-communities-security',
"Mozilla Corporation" => 'mozilla-employee-confidential',
"Mozilla Developer Network" => 'websites-security',
+++ /dev/null
-#!/usr/bin/perl
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This Source Code Form is "Incompatible With Secondary Licenses", as
-# defined by the Mozilla Public License, v. 2.0.
-
-use strict;
-use warnings;
-use 5.10.1;
-
-use lib qw(. lib local/lib/perl5);
-
-BEGIN {
- use Bugzilla;
- Bugzilla->extensions;
-}
-
-use Bugzilla::Constants qw( USAGE_MODE_CMDLINE );
-use Bugzilla::Extension::TrackingFlags::Flag;
-use Bugzilla::User;
-
-Bugzilla->usage_mode(USAGE_MODE_CMDLINE);
-my $dbh = Bugzilla->dbh;
-
-my $blocking_b2g = Bugzilla::Extension::TrackingFlags::Flag->check({ name => 'cf_blocking_b2g' });
-my $tracking_b2g = Bugzilla::Extension::TrackingFlags::Flag->check({ name => 'cf_tracking_b2g' });
-
-die "tracking-b2g does not have a 'backlog' value\n"
- unless grep { $_->value eq 'backlog' } @{ $tracking_b2g->values };
-
-print "Searching for bugs..\n";
-my $flags = $dbh->selectall_arrayref(<<EOF, { Slice => {} }, $blocking_b2g->flag_id, $tracking_b2g->flag_id);
- SELECT
- bugs.bug_id,
- blocking_b2g.id id,
- tracking_b2g.value value
- FROM
- bugs
- INNER JOIN tracking_flags_bugs blocking_b2g
- ON blocking_b2g.bug_id = bugs.bug_id AND blocking_b2g.tracking_flag_id = ?
- LEFT JOIN tracking_flags_bugs tracking_b2g
- ON tracking_b2g.bug_id = bugs.bug_id AND tracking_b2g.tracking_flag_id = ?
- WHERE
- blocking_b2g.value = 'backlog'
-EOF
-die "No suitable bugs found\n" unless @$flags;
-printf "About to fix %s bugs\n", scalar(@$flags);
-print "Press <Ctrl-C> to stop or <Enter> to continue...\n";
-getc();
-
-my $nobody = Bugzilla::User->check({ name => 'nobody@mozilla.org' });
-my $when = $dbh->selectrow_array('SELECT LOCALTIMESTAMP(0)');
-
-$dbh->bz_start_transaction();
-foreach my $flag (@$flags) {
- if (!$flag->{value}) {
- print $flag->{bug_id}, ": changing blocking_b2g:backlog -> tracking_b2g:backlog\n";
- # no tracking_b2g value, change blocking_b2g:backlog -> tracking_b2g:backlog
- $dbh->do(
- "UPDATE tracking_flags_bugs SET tracking_flag_id = ? WHERE id = ?",
- undef,
- $tracking_b2g->flag_id, $flag->{id},
- );
- $dbh->do(
- "UPDATE bugs SET delta_ts = ?, lastdiffed = ? WHERE bug_id = ?",
- undef,
- $when, $when, $flag->{bug_id},
- );
- $dbh->do(
- "INSERT INTO bugs_activity(bug_id, who, bug_when, fieldid, removed, added) VALUES (?, ?, ?, ?, ?, ?)",
- undef,
- $flag->{bug_id}, $nobody->id, $when, $blocking_b2g->id, 'backlog', '---',
- );
- $dbh->do(
- "INSERT INTO bugs_activity(bug_id, who, bug_when, fieldid, removed, added) VALUES (?, ?, ?, ?, ?, ?)",
- undef,
- $flag->{bug_id}, $nobody->id, $when, $tracking_b2g->id, '---', 'backlog',
- );
- }
- elsif ($flag->{value}) {
- print $flag->{bug_id}, ": deleting blocking_b2g:backlog\n";
- # tracking_b2g already has a value, just delete blocking_b2g:backlog
- $dbh->do(
- "DELETE FROM tracking_flags_bugs WHERE id = ?",
- undef,
- $flag->{id},
- );
- $dbh->do(
- "UPDATE bugs SET delta_ts = ?, lastdiffed = ? WHERE bug_id = ?",
- undef,
- $when, $when, $flag->{bug_id},
- );
- $dbh->do(
- "INSERT INTO bugs_activity(bug_id, who, bug_when, fieldid, removed, added) VALUES (?, ?, ?, ?, ?, ?)",
- undef,
- $flag->{bug_id}, $nobody->id, $when, $blocking_b2g->id, 'backlog', '---',
- );
- }
-}
-$dbh->bz_commit_transaction();
-
-print "Done.\n";
"Add-on SDK" => [],
"addons.mozilla.org" => [],
"Android Background Services" => [],
- "B2GDroid" => [],
"Calendar" => [],
"Composer" => [],
"Core" => [],
# Who to CC on particular bugmails when certain groups are added or removed.
our %group_change_notification = (
'addons-security' => ['amo-editors@mozilla.org'],
- 'b2g-core-security' => ['security@mozilla.org'],
'bugzilla-security' => ['security@bugzilla.org'],
'client-services-security' => ['amo-admins@mozilla.org', 'web-security@mozilla.org'],
'cloud-services-security' => ['web-security@mozilla.org'],
Engagement: [% IF cgi.param('area_engagement') %] Yes [% ELSE %] No [% END %]
Firefox Desktop: [% IF cgi.param('area_firefox_desktop') %] Yes [% ELSE %] No [% END %]
Firefox for Android: [% IF cgi.param('area_firefox_android') %] Yes [% ELSE %] No [% END %]
-FirefoxOS: [% IF cgi.param('area_firefox_os') %] Yes [% ELSE %] No [% END %]
-Marketplace: [% IF cgi.param('area_marketplace') %] Yes [% ELSE %] No [% END %]
User Research/User Centered Design: [% IF cgi.param('area_user_research') %] Yes [% ELSE %] No [% END %]
Security: [% IF cgi.param('area_security') %] Yes [% ELSE %] No [% END %]
Support: [% IF cgi.param('area_support') %] Yes [% ELSE %] No [% END %]
</label>
<div class="field_desc">
What product or functional area does this opportunity relate to? Click
- multiple areas if they apply (ie both Marketplace and UX)
+ multiple areas if they apply (ie both Security and UX)
</div>
<input type="checkbox" name="area_coding" id="area_coding" value="Coding">Coding<br>
<input type="checkbox" name="area_community_building"
id="area_firefox_desktop" value="Firefox Desktop">Firefox Desktop<br>
<input type="checkbox" name="area_firefox_android"
id="area_firefox_android" value="Firefox for Android">Firefox for Android<br>
- <input type="checkbox" name="area_firefox_os"
- id="area_firefox_os" value="Firefox OS">Firefox OS<br>
- <input type="checkbox" name="area_marketplace"
- id="area_marketplace" value="Marketplace">Marketplace<br>
<input type="checkbox" name="area_user_research"
id="area_user_research" value="User Research">User Research<br>
<input type="checkbox" name="area_security"
</div>
<div class="field_input">
<textarea name="event_type" id="event_type" rows="5" cols="50"
- placeholder="Examples: Firefox OS in store launch event, Mozilla
+ placeholder="Examples: Firefox Quantum launch event, Mozilla
[%~ %] company event, Conference, Press Conference,
[%~ %] Hack-a-thon."></textarea>
</div>
<div class="field_input">
<select name="goal" id="goal">
<option></option>
- <option>Firefox OS</option>
<option>Firefox Browser</option>
<option>Services</option>
<option>Org Support</option>
<select id="goal" name="goal"
onchange="toggleGoalOther();">
<option value="">Please select..</option>
- <option value="Firefox OS">Firefox OS</option>
<option value="Firefox Browser">Firefox Browser</option>
<option value="Million Mozillians">Million Mozillians</option>
<option value="Services">Services</option>
</th>
<td>
<i>
- Which Initiative or Overall goal this purchase is for. i.e. B2G, Data Center, Network, etc.</i><br>
+ Which Initiative or Overall goal this purchase is for. i.e. Data Center, Network, etc.</i><br>
<textarea id="business_obj" name="business_obj" rows="5" cols="40"></textarea>
</td>
<tr>
<select required id="product_line" name="product_line">
<option value="">Select..</option>
<option value="Firefox">Firefox</option>
- <option value="Firefox OS">Firefox OS</option>
<option value="Firefox for Android">Firefox for Android</option>
<option value="Content Services">Content Services</option>
<option value="Cloud Services">Cloud Services</option>
<option value="Office of the CTO">Office of The CTO</option>
<option value="Platform">Platform</option>
<option value="Product Management">Product Management</option>
- <option value="Marketplace">Marketplace</option>
<option value="Other">Other</option>
</select>
</div>
<td>
<select name="op_sys" id="op_sys">
<option value="">Please select...</option>
- <option value="Gonk (Firefox OS)">Firefox OS</option>
<option value="Android">Firefox for Android</option>
</select>
</td>
<option value=""></option>
<option>Firefox Desktop</option>
<option>Firefox for Android</option>
- <option>Marketplace</option>
<option>Developer Tools</option>
<option>Cloud</option>
- <option>Firefox OS</option>
<option>Corporate / Business Support</option>
<option>Other:</option>
</select>
<label for="company_goal" class="required">Company Goal</label>
<select name="company_goal" id="company_goal">
<option value=""></option>
- <option>Scale Firefox OS</option>
<option>Add Services to our Product Lines</option>
<option>Get Firefox on a Growth Trajectory</option>
<option>Invest in Sustainability</option>
IF firefox_fixed_versions.0 == "";
firefox_fixed_versions.0 = "Firefox " _ flag_name.substr(7);
END;
- ELSIF flag_name.substr(0, 4) == "b2g-";
- IF firefox_fixed_versions.1 == "";
- firefox_fixed_versions.1 = "Firefox OS " _ flag_name.substr(4);
- END;
END;
END;
END;
}
},
- "Marketplace": {
- l10n: true
- },
-
"Penelope": {
related: [ "Core", "Toolkit", "MailNews Core" ]
},
# send status and resolution updates
foreach my $change (@{ $data->{event}->{changes} }) {
- return 1 if $change->{field} eq 'bug_status'
- || $change->{field} eq 'resolution'
- || $change->{field} eq 'cf_blocking_b2g';
+ return 1 if $change->{field} eq 'bug_status' || $change->{field} eq 'resolution';
}
# send attachments
Who => $data->{event}->{user}->{login},
Status => $bug_data->{status}->{name},
Resolution => $bug_data->{resolution},
- Blocking_B2G => $bug_data->{cf_blocking_b2g},
);
if ($data->{event}->{routing_key} eq 'comment.create') {
$xml{Comment} = $data->{comment}->{body};
</dt>
<dd>
Tracking flags are special multi-value fields used to aid tracking releases
- of Firefox, Firefox OS, Thunderbird, and other projects.
+ of Firefox, Thunderbird, and other projects.
</dd>
[% END %]
auto_affected = {
"Firefox" = [],
"Firefox for Android" = [],
- "Firefox OS" = [],
"Core" = [],
"Toolkit" = [],
"Firefox Health Report" = [ "Client: Desktop", "Client: Android" ],
# Exclude showing the user story field for these products/components.
# Examples:
-# Don't show User Story on any Firefox OS component:
-# 'Firefox OS' => [],
+# Don't show User Story on any Firefox component:
+# 'Firefox' => [],
# Don't show User Story on Developer Tools component, visible on all other
# Firefox components
# 'Firefox' => ['Developer Tools'],
'Windows Phone',
'Mac OS X',
'Linux',
- 'Gonk (Firefox OS)',
'Android',
'iOS',
'iOS 7',
<a href="https://support.google.com/accounts/answer/1066447" target="_blank" rel="noopener noreferrer">Google Authenticator</a>,
<a href="https://freeotp.github.io/" target="_blank" rel="noopener noreferrer">Red Hat FreeOTP</a>
</li>
- <li>Firefox OS:
- <a href="https://marketplace.firefox.com/app/firekey/" target="_blank" rel="noopener noreferrer">Firekey</a>
- </li>
<li>Windows Phone:
<a href="http://www.windowsphone.com/en-us/store/app/authenticator/021dd79f-0598-e011-986b-78e7d1fa76f8"
target="_blank rel="noopener noreferrer"">Authenticator</a>