mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
Bug 1492128: [mozrelease] Add command to generate buglist for a given release; r=mtabara
Differential Revision: https://phabricator.services.mozilla.com/D10154 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
14bf597b59
commit
d8cec76a00
@ -47,6 +47,7 @@ MACH_MODULES = [
|
||||
'python/mozbuild/mozbuild/backend/mach_commands.py',
|
||||
'python/mozbuild/mozbuild/compilation/codecomplete.py',
|
||||
'python/mozbuild/mozbuild/frontend/mach_commands.py',
|
||||
'python/mozrelease/mozrelease/mach_commands.py',
|
||||
'taskcluster/mach_commands.py',
|
||||
'testing/awsy/mach_commands.py',
|
||||
'testing/firefox-ui/mach_commands.py',
|
||||
@ -89,7 +90,7 @@ CATEGORIES = {
|
||||
'ci': {
|
||||
'short': 'CI',
|
||||
'long': 'Taskcluster commands',
|
||||
'priority': 59
|
||||
'priority': 59,
|
||||
},
|
||||
'devenv': {
|
||||
'short': 'Development Environment',
|
||||
@ -106,13 +107,18 @@ CATEGORIES = {
|
||||
'long': 'Potent potables and assorted snacks.',
|
||||
'priority': 10,
|
||||
},
|
||||
'release': {
|
||||
'short': 'Release automation',
|
||||
'long': 'Commands for used in release automation.',
|
||||
'priority': 5,
|
||||
},
|
||||
'disabled': {
|
||||
'short': 'Disabled',
|
||||
'long': 'The disabled commands are hidden by default. Use -v to display them. '
|
||||
'These commands are unavailable for your current context, '
|
||||
'run "mach <command>" to see why.',
|
||||
'priority': 0,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
73
python/mozrelease/mozrelease/mach_commands.py
Normal file
73
python/mozrelease/mozrelease/mach_commands.py
Normal file
@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# 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/.
|
||||
|
||||
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from mach.decorators import (
|
||||
CommandArgument,
|
||||
CommandProvider,
|
||||
Command,
|
||||
SubCommand,
|
||||
)
|
||||
|
||||
from mozbuild.base import MachCommandBase
|
||||
from mozilla_version.gecko import GeckoVersion
|
||||
|
||||
|
||||
@CommandProvider
|
||||
class MachCommands(MachCommandBase):
|
||||
|
||||
@Command('release', category="release",
|
||||
description="Task that are part of the release process.")
|
||||
def release(self):
|
||||
"""
|
||||
The release subcommands all relate to the release process.
|
||||
"""
|
||||
|
||||
@SubCommand('release', 'buglist',
|
||||
description="Generate list of bugs since the last release.")
|
||||
@CommandArgument('--version',
|
||||
required=True,
|
||||
type=GeckoVersion.parse,
|
||||
help="The version being built.")
|
||||
@CommandArgument('--product',
|
||||
required=True,
|
||||
help="The product being built.")
|
||||
@CommandArgument('--revision',
|
||||
required=True,
|
||||
help="The revision being built.")
|
||||
def buglist(self, version, product, revision):
|
||||
self.setup_logging()
|
||||
from mozrelease.buglist_creator import create_bugs_url
|
||||
print(create_bugs_url(
|
||||
product=product,
|
||||
current_version=version,
|
||||
current_revision=revision,
|
||||
))
|
||||
|
||||
def setup_logging(self, quiet=False, verbose=True):
|
||||
"""
|
||||
Set up Python logging for all loggers, sending results to stderr (so
|
||||
that command output can be redirected easily) and adding the typical
|
||||
mach timestamp.
|
||||
"""
|
||||
# remove the old terminal handler
|
||||
old = self.log_manager.replace_terminal_handler(None)
|
||||
|
||||
# re-add it, with level and fh set appropriately
|
||||
if not quiet:
|
||||
level = logging.DEBUG if verbose else logging.INFO
|
||||
self.log_manager.add_terminal_logging(
|
||||
fh=sys.stderr, level=level,
|
||||
write_interval=old.formatter.write_interval,
|
||||
write_times=old.formatter.write_times)
|
||||
|
||||
# all of the taskgraph logging is unstructured logging
|
||||
self.log_manager.enable_unstructured()
|
Loading…
Reference in New Issue
Block a user