# Copyright 2024 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """ Reads version files from the chromium source code. """
import argparse import logging import os.path
from typing import Dict
from common import DIR_SRC_ROOT
def chrome_version() -> Dict[str, int]: """ Returns a replica of //chrome/VERSION, crashes if the file does not
exist. This function does not assume the existence of all the fields, but
treats missing ones as0; on the other hand, the unexpected fields would be
also ignored."""
file = os.path.join(DIR_SRC_ROOT, 'chrome', 'VERSION') assert os.path.exists(file)
result = {}
with open(file, 'r') as reader: for line in reader: if (not parse_line('major', line) andnot parse_line('minor', line) andnot parse_line('build', line) andnot parse_line('patch', line)):
logging.warning('Unexpected line %s in the VERSION file', line) return result
def chrome_version_str() -> str: """ Returns the chrome_version in a string representation. """
version = chrome_version() return (f'{version["major"]}.{version["minor"]}.'
f'{version["build"]}.{version["patch"]}')
def _load_git_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument('--git-revision', default=None)
parser.add_argument('--gerrit-issue', type=int, default=None)
parser.add_argument('--gerrit-patchset', type=int, default=None)
parser.add_argument('--buildbucket-id', type=int, default=None)
args, _ = parser.parse_known_args() # The args look like # '--git-revision=e98127af84bf5b33a6e657c90dfd3f3a731eb28c' # '--gerrit-issue=5009604' # '--gerrit-patchset=16' # '--buildbucket-id=8756180599882888289' # on a try build. CI builds have only git-revision. return args
_GIT_ARGS: argparse.Namespace = _load_git_args()
def is_try_build() -> bool: """ Returns whether current build is running as a try-build, or unmerged
change. This function crashes if the info cannot be retrieved. """ assert _GIT_ARGS.git_revision return _GIT_ARGS.gerrit_issue isnotNone
def git_revision() -> str: """ Returns the git revision to identify the current change list or the
commit info of the CI build. This function crashes if the info cannot be
retrieved. """ assert _GIT_ARGS.git_revision ifnot is_try_build(): return _GIT_ARGS.git_revision return (f'{_GIT_ARGS.git_revision}/{_GIT_ARGS.gerrit_issue}/'
f'{_GIT_ARGS.gerrit_patchset}')
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.