Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/taskcluster/gecko_taskgraph/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 5 kB image not shown  

Quelle  parameters.py

  Sprache: Python
 

# 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/.

import logging
import os
from typing import Literal, Optional, Union

from taskgraph.parameters import extend_parameters_schema
from taskgraph.util.schema import Schema

from gecko_taskgraph import GECKO
from gecko_taskgraph.files_changed import get_locally_changed_files

logger = logging.getLogger(__name__)


class GitHubConfig(Schema, kw_only=True, rename=None):
    branch: str
    pull_head_sha: str
    pull_number: int
    repo_url: str


class TasksRegex(Schema, kw_only=True):
    include: Optional[list[str]] = None
    exclude: Optional[list[str]] = None


class TryTaskConfig(Schema, kw_only=True):
    tasks: Optional[list[str]] = None
    browsertime: Optional[bool] = None
    disable_pgo: Optional[bool] = None
    env: Optional[dict[str, str]] = None
    gecko_profile: Optional[bool] = None
    gecko_profile_interval: Optional[float] = None
    gecko_profile_entries: Optional[int] = None
    gecko_profile_features: Optional[str] = None
    gecko_profile_threads: Optional[str] = None
    # Use OS-native profilers (Simpleperf for Android and xperf for Windows)
    # when running tests. Only available in raptor-browsertime tests at the moment.
    native_profiling: Optional[bool] = None
    # Github pull request triggering a code-review analysis
    github: Optional[GitHubConfig] = None
    # adjust parameters, chunks, etc. to speed up the process of greening up a new test config.
    new_test_config: Optional[bool] = None
    # Options passed from `mach perftest` to try.
    perftest_options: Optional[object] = None
    # Alternative optimization strategies to use instead of the default.
    # A module path pointing to a dict to be use as the `strategy_override`
    # argument in `taskgraph.optimize.base.optimize_task_graph`.
    optimize_strategies: Optional[str] = None
    # Record an rr trace on supported tasks using the Pernosco debugging service.
    pernosco: Optional[bool] = None
    priority: Optional[Literal["lowest""very-low""low"]] = None
    rebuild: Optional[Union[int, dict[str, int]]] = None
    tasks_regex: Optional[TasksRegex] = None
    use_artifact_builds: Optional[bool] = None
    # Mapping of worker alias to worker pools to use for those aliases.
    worker_overrides: Optional[dict[str, str]] = None
    # List of worker types that we will use to run tasks on.
    worker_types: Optional[list[str]] = None
    routes: Optional[list[str]] = None


class GeckoParametersSchema(Schema, kw_only=True, rename=None):
    android_perftest_backstop: bool
    app_version: str
    backstop: bool
    dontbuild: bool
    build_number: int
    enable_always_target: Union[bool, list[str]]
    files_changed: list[str]
    hg_branch: Optional[str]
    next_version: Optional[str]
    optimize_strategies: Optional[str]
    phabricator_diff: Optional[str]
    release_enable_emefree: bool
    release_enable_partner_repack: bool
    release_enable_partner_attribution: bool
    release_eta: Optional[str]
    release_history: dict[str, dict]
    release_partners: Optional[list[str]]
    release_partner_config: Optional[dict]
    release_partner_build_number: int
    release_type: str
    release_product: Optional[str]
    test_manifest_loader: str
    try_mode: Optional[str]
    try_task_config: TryTaskConfig
    version: str
    head_git_rev: Optional[str] = None
    pull_request_number: Optional[int] = None


def get_contents(path):
    with open(path) as fh:
        contents = fh.readline().rstrip()
    return contents


def get_version(product_dir="browser"):
    version_path = os.path.join(GECKO, product_dir, "config""version_display.txt")
    return get_contents(version_path)


def get_app_version(product_dir="browser"):
    app_version_path = os.path.join(GECKO, product_dir, "config""version.txt")
    return get_contents(app_version_path)


def get_defaults(repo_root=None):
    return {
        "android_perftest_backstop"False,
        "app_version": get_app_version(),
        "backstop"False,
        "dontbuild"False,
        "base_repository""https://hg.mozilla.org/mozilla-unified",
        "build_number"1,
        "enable_always_target": ["docker-image"],
        "files_changed"lambda: sorted(get_locally_changed_files(repo_root)),
        "head_repository""https://hg.mozilla.org/mozilla-central",
        "hg_branch""default",
        "next_version"None,
        "optimize_strategies"None,
        "phabricator_diff"None,
        "project""mozilla-central",
        "release_enable_emefree"False,
        "release_enable_partner_repack"False,
        "release_enable_partner_attribution"False,
        "release_eta""",
        "release_history": {},
        "release_partners": [],
        "release_partner_config"None,
        "release_partner_build_number"1,
        "release_product"None,
        "release_type""nightly",
        # This refers to the upstream repo rather than the local checkout, so
        # should be hardcoded to 'hg' even with git-cinnabar.
        "repository_type""hg",
        "test_manifest_loader""default",
        "try_mode"None,
        "try_task_config": {},
        "version": get_version(),
    }


def register_parameters():
    extend_parameters_schema(GeckoParametersSchema, defaults_fn=get_defaults)


def get_decision_parameters(graph_config, parameters):
    if pr_number := os.environ.get("GECKO_PULL_REQUEST_NUMBER"None):
        parameters["pull_request_number"] = int(pr_number)

Messung V0.5 in Prozent
C=90 H=100 G=95

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet am  2026-08-22) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.