commit 3fa95d1a9b613f9ad7e3fdd9defd8d53c9041fbd parent 8c19fa8bd6e924436ee5f8126b12b50f324348ba Author: abhishekmadan30 <amadan@mozilla.com> Date: Fri, 9 Jan 2026 02:19:17 +0000 Bug 2002002 - Stop using vendored taskcluster-taskgraph, r=firefox-build-system-reviewers,taskgraph-reviewers,releng-reviewers,mach-reviewers,ahal,ahochheiden Differential Revision: https://phabricator.services.mozilla.com/D273841 Diffstat:
42 files changed, 1462 insertions(+), 207 deletions(-)
diff --git a/.taskcluster.yml b/.taskcluster.yml @@ -216,7 +216,6 @@ tasks: # This causes cached_task digest generation to be random for # some tasks. Disable bytecode generation to work around that. PYTHONDONTWRITEBYTECODE: '1' - MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: 'system' - $if: 'tasks_for == "action"' then: ACTION_TASK_GROUP_ID: '${action.taskGroupId}' # taskGroupId of the target task diff --git a/build/sparse-profiles/sphinx-docs b/build/sparse-profiles/sphinx-docs @@ -3,6 +3,7 @@ [include] # List of dependencies for the command path:python/sites/docs.txt +path:taskcluster/requirements.txt # Code for generating docs. glob:docs/** diff --git a/python/mozbuild/mozbuild/artifact_commands.py b/python/mozbuild/mozbuild/artifact_commands.py @@ -12,16 +12,13 @@ import pathlib import shutil from collections import OrderedDict -# As a result of the selective module loading changes, this import has to be -# done here. It is not explicitly used, but it has an implicit side-effect -# (bringing in TASKCLUSTER_ROOT_URL) which is necessary. -import gecko_taskgraph.main # noqa: F401 import mozversioncontrol from mach.decorators import Command, CommandArgument, SubCommand from mozbuild.artifact_builds import JOB_CHOICES from mozbuild.base import MachCommandConditions as conditions from mozbuild.dirutils import ensureParentDir +from mozbuild.util import get_root_url, get_taskcluster_client _COULD_NOT_FIND_ARTIFACTS_TEMPLATE = ( "ERROR!!!!!! Could not find artifacts for a toolchain build named " @@ -290,7 +287,6 @@ def artifact_toolchain( import redo import requests - from taskgraph.util.taskcluster import get_artifact_url from mozbuild.action.tooltool import FileRecord, open_manifest, unpack_file from mozbuild.artifacts import ArtifactCache @@ -316,9 +312,8 @@ def artifact_toolchain( cache_dir = os.path.join(command_context._mach_context.state_dir, "toolchains") tooltool_host = os.environ.get("TOOLTOOL_HOST", "tooltool.mozilla-releng.net") - taskcluster_proxy_url = os.environ.get("TASKCLUSTER_PROXY_URL") - if taskcluster_proxy_url: - tooltool_url = f"{taskcluster_proxy_url}/{tooltool_host}" + if "TASKCLUSTER_PROXY_URL" in os.environ: + tooltool_url = f"{get_root_url()}/{tooltool_host}" else: tooltool_url = f"https://{tooltool_host}" @@ -343,10 +338,12 @@ def artifact_toolchain( class ArtifactRecord(DownloadRecord): def __init__(self, task_id, artifact_name): + queue = get_taskcluster_client("queue") for _ in redo.retrier(attempts=retry + 1, sleeptime=60): - cot = cache._download_manager.session.get( - get_artifact_url(task_id, "public/chain-of-trust.json") + cot_url = queue.buildUrl( + "getArtifact", task_id, "public/chain-of-trust.json" ) + cot = cache._download_manager.session.get(cot_url) if cot.status_code >= 500: continue cot.raise_for_status() @@ -362,11 +359,18 @@ def artifact_toolchain( pass name = os.path.basename(artifact_name) - artifact_url = get_artifact_url( - task_id, - artifact_name, - use_proxy=not artifact_name.startswith("public/"), - ) + if ( + not artifact_name.startswith("public/") + and "TASKCLUSTER_PROXY_URL" in os.environ + ): + artifact_url = queue.buildUrl( + "getLatestArtifact", task_id, artifact_name + ) + else: + public_queue = get_taskcluster_client("queue", block_proxy=True) + artifact_url = public_queue.buildUrl( + "getLatestArtifact", task_id, artifact_name + ) super().__init__(artifact_url, name, None, digest, algorithm, unpack=True) records = OrderedDict() diff --git a/python/mozbuild/mozbuild/artifacts.py b/python/mozbuild/mozbuild/artifacts.py @@ -59,13 +59,11 @@ from mozpack import executables from mozpack.files import FileFinder, JarFinder, TarFinder from mozpack.mozjar import JarReader, JarWriter from mozpack.packager.unpack import UnpackFinder -from taskcluster.exceptions import TaskclusterRestFailure -from taskgraph.util.taskcluster import find_task_id, get_artifact_url, list_artifacts from mozbuild.artifact_builds import JOB_CHOICES from mozbuild.artifact_cache import ArtifactCache from mozbuild.dirutils import ensureParentDir, mkdir -from mozbuild.util import FileAvoidWrite +from mozbuild.util import FileAvoidWrite, get_root_url, get_taskcluster_client # Number of candidate pushheads to cache per parent changeset. NUM_PUSHHEADS_TO_QUERY_PER_PARENT = 50 @@ -1173,8 +1171,13 @@ class TaskCache(CacheManager): {"namespace": namespace}, "Searching Taskcluster index with namespace: {namespace}", ) + + from taskcluster.exceptions import TaskclusterRestFailure + try: - taskId = find_task_id(namespace) + index = get_taskcluster_client("index") + task = index.findTask(namespace) + taskId = task["taskId"] except (KeyError, TaskclusterRestFailure) as e: if isinstance(e, TaskclusterRestFailure) and e.status_code != 404: raise @@ -1183,7 +1186,9 @@ class TaskCache(CacheManager): # care about; and even those that do may not have completed yet. raise ValueError(f"Task for {namespace} does not exist (yet)!") - return taskId, list_artifacts(taskId) + queue = get_taskcluster_client("queue") + response = queue.listLatestArtifacts(taskId) + return taskId, response["artifacts"] class Artifacts: @@ -1593,7 +1598,9 @@ https://firefox-source-docs.mozilla.org/contributing/vcs/mercurial_bundles.html urls = [] for artifact_name in self._artifact_job.find_candidate_artifacts(artifacts): - url = get_artifact_url(taskId, artifact_name) + url = ( + f"{get_root_url()}/api/queue/v1/task/{taskId}/artifacts/{artifact_name}" + ) urls.append(url) if urls: self.log( @@ -1809,11 +1816,15 @@ https://firefox-source-docs.mozilla.org/contributing/vcs/mercurial_bundles.html return self._install_from_hg_pushheads(pushheads, distdir) def install_from_task(self, taskId, distdir): - artifacts = list_artifacts(taskId) + queue = get_taskcluster_client("queue") + response = queue.listLatestArtifacts(taskId) + artifacts = response["artifacts"] urls = [] for artifact_name in self._artifact_job.find_candidate_artifacts(artifacts): - url = get_artifact_url(taskId, artifact_name) + url = ( + f"{get_root_url()}/api/queue/v1/task/{taskId}/artifacts/{artifact_name}" + ) urls.append(url) if not urls: raise ValueError(f"Task {taskId} existed, but no artifacts found!") diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py @@ -1376,3 +1376,29 @@ def ensure_l10n_central(command_context): raise NotAGitRepositoryError( f"Directory is not a git repository: {l10n_base_dir}" ) + + +# Taskcluster API root URL (Firefox's production instance) +TASKCLUSTER_ROOT_URL = "https://firefox-ci-tc.services.mozilla.com" + + +def get_root_url(block_proxy=False): + if "TASKCLUSTER_PROXY_URL" in os.environ and not block_proxy: + return os.environ["TASKCLUSTER_PROXY_URL"].rstrip("/") + + if "TASKCLUSTER_ROOT_URL" in os.environ: + return os.environ["TASKCLUSTER_ROOT_URL"].rstrip("/") + + return TASKCLUSTER_ROOT_URL + + +def get_taskcluster_client(service: str, block_proxy=False): + import taskcluster + + if "TASKCLUSTER_PROXY_URL" in os.environ and not block_proxy: + options = {"rootUrl": os.environ["TASKCLUSTER_PROXY_URL"].rstrip("/")} + else: + options = taskcluster.optionsFromEnvironment( + {"rootUrl": get_root_url(block_proxy)} + ) + return getattr(taskcluster, service[0].upper() + service[1:])(options) diff --git a/python/sites/build.txt b/python/sites/build.txt @@ -1,5 +1,6 @@ requires-python:>=3.9 pth:third_party/python/vsdownload +pypi-optional:taskcluster-taskgraph==18.0.3:toolchain artifacts will not be bootstrapped vendored:testing/web-platform/tests/tools/third_party/h2/src vendored:testing/web-platform/tests/tools/third_party/hpack/src vendored:testing/web-platform/tests/tools/third_party/html5lib @@ -8,53 +9,25 @@ vendored:testing/web-platform/tests/tools/third_party/pywebsocket3 vendored:testing/web-platform/tests/tools/third_party/webencodings vendored:testing/web-platform/tests/tools/wptrunner vendored:testing/web-platform/tests/tools/wptserve -vendored:third_party/python/aiohappyeyeballs -vendored:third_party/python/aiohttp -vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot vendored:third_party/python/compare_locales -vendored:third_party/python/cookiecutter vendored:third_party/python/dlmanager vendored:third_party/python/ecdsa vendored:third_party/python/fluent.migrate vendored:third_party/python/fluent.syntax -vendored:third_party/python/frozenlist vendored:third_party/python/gitignorant -vendored:third_party/python/giturlparse vendored:third_party/python/gyp/pylib vendored:third_party/python/iniparse -vendored:third_party/python/json_e vendored:third_party/python/mako -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl -vendored:third_party/python/mohawk vendored:third_party/python/moz_l10n -vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph -vendored:third_party/python/multidict vendored:third_party/python/pathspec vendored:third_party/python/ply vendored:third_party/python/polib -vendored:third_party/python/propcache vendored:third_party/python/pyasn1 vendored:third_party/python/pyasn1_modules -vendored:third_party/python/pygments vendored:third_party/python/pylru -vendored:third_party/python/python_dateutil -vendored:third_party/python/python_slugify vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket -vendored:third_party/python/rich vendored:third_party/python/rsa -vendored:third_party/python/slugid -vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph -vendored:third_party/python/taskcluster_urls -vendored:third_party/python/text_unidecode -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous vendored:third_party/python/yamllint -vendored:third_party/python/yarl diff --git a/python/sites/common.txt b/python/sites/common.txt @@ -10,11 +10,7 @@ vendored:testing/web-platform/tests/tools/wptserve vendored:third_party/python/aiohappyeyeballs vendored:third_party/python/aiohttp vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot vendored:third_party/python/compare_locales -vendored:third_party/python/cookiecutter vendored:third_party/python/cookies vendored:third_party/python/dlmanager vendored:third_party/python/ecdsa @@ -25,33 +21,24 @@ vendored:third_party/python/frozenlist vendored:third_party/python/giturlparse vendored:third_party/python/gyp/pylib vendored:third_party/python/json_e -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/multidict vendored:third_party/python/pathspec vendored:third_party/python/ply vendored:third_party/python/propcache vendored:third_party/python/pyasn1 vendored:third_party/python/pyasn1_modules -vendored:third_party/python/pygments vendored:third_party/python/pylru vendored:third_party/python/python_dateutil -vendored:third_party/python/python_slugify vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket vendored:third_party/python/responses -vendored:third_party/python/rich vendored:third_party/python/rsa vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls -vendored:third_party/python/text_unidecode -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous vendored:third_party/python/yamllint vendored:third_party/python/yarl diff --git a/python/sites/docs.txt b/python/sites/docs.txt @@ -21,13 +21,10 @@ pypi:sphinx-markdown-tables==0.0.17 pypi:sphinx-rtd-theme==2.0.0 pypi:sphinx-tabs==3.4.7 pypi:sphinxcontrib-mermaid==1.0.0 +requirements-txt:taskcluster/requirements.txt vendored:third_party/python/aiohappyeyeballs vendored:third_party/python/aiohttp vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot -vendored:third_party/python/cookiecutter vendored:third_party/python/dlmanager vendored:third_party/python/fluent.migrate vendored:third_party/python/fluent.syntax @@ -35,21 +32,15 @@ vendored:third_party/python/frozenlist vendored:third_party/python/giturlparse vendored:third_party/python/gyp/pylib vendored:third_party/python/json_e -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls vendored:third_party/python/propcache -vendored:third_party/python/pygments vendored:third_party/python/pylru vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket vendored:third_party/python/responses -vendored:third_party/python/rich vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous diff --git a/python/sites/lint.txt b/python/sites/lint.txt @@ -21,40 +21,28 @@ pypi:sphinxcontrib-htmlhelp==2.0.1 pypi:sphinxcontrib-mermaid==1.0.0 pypi:tox==2.7.0 pypi:virtualenv==20.24.7 +requirements-txt:taskcluster/requirements.txt vendored:third_party/python/aiohappyeyeballs vendored:third_party/python/aiohttp vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot vendored:third_party/python/compare_locales -vendored:third_party/python/cookiecutter vendored:third_party/python/esprima vendored:third_party/python/fluent.syntax vendored:third_party/python/frozenlist vendored:third_party/python/giturlparse vendored:third_party/python/json_e -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/multidict vendored:third_party/python/pathspec vendored:third_party/python/propcache -vendored:third_party/python/pygments vendored:third_party/python/python_dateutil -vendored:third_party/python/python_slugify vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket -vendored:third_party/python/rich vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls -vendored:third_party/python/text_unidecode -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous vendored:third_party/python/yamllint -vendored:third_party/python/yarl +vendored:third_party/python/yarl +\ No newline at end of file diff --git a/python/sites/mach.txt b/python/sites/mach.txt @@ -63,18 +63,18 @@ pypi-optional:orjson>=3.10:json operations will be slower in various tools # Mach gracefully handles the case where `psutil` is unavailable. # We aren't (yet) able to pin packages in automation, so we have to # support down to the oldest locally-installed version (5.4.2). -pypi-optional:psutil>=5.4.2:telemetry will be missing some data +pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data pypi-optional:rtoml>=0.11.0:toml operations will be slower in various tools -pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract +pypi-optional:zstandard>=0.11.1,<=0.25.0:zstd archives will not be possible to extract vendored-fallback:pyyaml:third_party/python/pyyaml/lib/:faster native loading is disabled vendored:third_party/python/ansicon vendored:third_party/python/appdirs +vendored:third_party/python/async_timeout vendored:third_party/python/attrs vendored:third_party/python/blessed vendored:third_party/python/build vendored:third_party/python/cbor2 vendored:third_party/python/certifi -vendored:third_party/python/chardet vendored:third_party/python/charset_normalizer vendored:third_party/python/click vendored:third_party/python/colorama diff --git a/python/sites/perftest-test.txt b/python/sites/perftest-test.txt @@ -2,16 +2,14 @@ requires-python:>=3.9 pypi:coverage==5.1 pypi:pytest-asyncio==1.2.0 pypi:pytest==8.4.2 +requirements-txt:taskcluster/requirements.txt vendored:third_party/python/dlmanager vendored:third_party/python/esprima vendored:third_party/python/giturlparse vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/responses vendored:third_party/python/slugid -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls vendored:third_party/python/voluptuous diff --git a/python/sites/python-test.txt b/python/sites/python-test.txt @@ -20,7 +20,8 @@ pypi:sphinxcontrib-applehelp==1.0.4 pypi:sphinxcontrib-htmlhelp==2.0.1 pypi:sphinxcontrib-mermaid==1.0.0 pypi:werkzeug==2.3.8 -pypi:zstandard==0.24.0 +pypi:zstandard==0.25.0 +requirements-txt:taskcluster/requirements.txt vendored:testing/web-platform/tests/tools/third_party/h2/src vendored:testing/web-platform/tests/tools/third_party/hpack/src vendored:testing/web-platform/tests/tools/third_party/html5lib @@ -32,11 +33,7 @@ vendored:testing/web-platform/tests/tools/wptserve vendored:third_party/python/aiohappyeyeballs vendored:third_party/python/aiohttp vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot vendored:third_party/python/compare_locales -vendored:third_party/python/cookiecutter vendored:third_party/python/cookies vendored:third_party/python/dlmanager vendored:third_party/python/ecdsa @@ -47,33 +44,24 @@ vendored:third_party/python/frozenlist vendored:third_party/python/giturlparse vendored:third_party/python/gyp/pylib vendored:third_party/python/json_e -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/multidict vendored:third_party/python/pathspec vendored:third_party/python/ply vendored:third_party/python/propcache vendored:third_party/python/pyasn1 vendored:third_party/python/pyasn1_modules -vendored:third_party/python/pygments vendored:third_party/python/pylru vendored:third_party/python/python_dateutil -vendored:third_party/python/python_slugify vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket vendored:third_party/python/responses -vendored:third_party/python/rich vendored:third_party/python/rsa vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls -vendored:third_party/python/text_unidecode -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous vendored:third_party/python/yamllint vendored:third_party/python/yarl diff --git a/python/sites/taskgraph.txt b/python/sites/taskgraph.txt @@ -0,0 +1,10 @@ +requires-python:>=3.9 +requirements-txt:taskcluster/requirements.txt +vendored:testing/web-platform/tests/tools/third_party/h2/src +vendored:testing/web-platform/tests/tools/third_party/hpack/src +vendored:testing/web-platform/tests/tools/third_party/html5lib +vendored:testing/web-platform/tests/tools/third_party/hyperframe/src +vendored:testing/web-platform/tests/tools/third_party/pywebsocket3 +vendored:testing/web-platform/tests/tools/third_party/webencodings +vendored:testing/web-platform/tests/tools/wptrunner +vendored:testing/web-platform/tests/tools/wptserve diff --git a/python/sites/try.txt b/python/sites/try.txt @@ -2,6 +2,7 @@ requires-python:>=3.9 pypi:Flask==2.1.3 pypi:auth0-python==4.4.1 pypi:werkzeug==2.3.8 +requirements-txt:taskcluster/requirements.txt vendored:testing/web-platform/tests/tools/third_party/h2/src vendored:testing/web-platform/tests/tools/third_party/hpack/src vendored:testing/web-platform/tests/tools/third_party/html5lib @@ -13,11 +14,7 @@ vendored:testing/web-platform/tests/tools/wptserve vendored:third_party/python/aiohappyeyeballs vendored:third_party/python/aiohttp vendored:third_party/python/aiosignal -vendored:third_party/python/arrow -vendored:third_party/python/async_timeout -vendored:third_party/python/binaryornot vendored:third_party/python/compare_locales -vendored:third_party/python/cookiecutter vendored:third_party/python/cookies vendored:third_party/python/dlmanager vendored:third_party/python/ecdsa @@ -28,33 +25,24 @@ vendored:third_party/python/frozenlist vendored:third_party/python/giturlparse vendored:third_party/python/gyp/pylib vendored:third_party/python/json_e -vendored:third_party/python/markdown_it_py -vendored:third_party/python/mdurl vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/multidict vendored:third_party/python/pathspec vendored:third_party/python/ply vendored:third_party/python/propcache vendored:third_party/python/pyasn1 vendored:third_party/python/pyasn1_modules -vendored:third_party/python/pygments vendored:third_party/python/pylru vendored:third_party/python/python_dateutil -vendored:third_party/python/python_slugify vendored:third_party/python/pyyaml/lib/ vendored:third_party/python/redo vendored:third_party/python/requests_unixsocket vendored:third_party/python/responses -vendored:third_party/python/rich vendored:third_party/python/rsa vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls -vendored:third_party/python/text_unidecode -vendored:third_party/python/types_python_dateutil vendored:third_party/python/voluptuous vendored:third_party/python/yamllint -vendored:third_party/python/yarl +vendored:third_party/python/yarl +\ No newline at end of file diff --git a/python/sites/update.txt b/python/sites/update.txt @@ -1,6 +1,7 @@ requires-python:>=3.9 pth:taskcluster/gecko_taskgraph pypi:psutil==5.9.4 +requirements-txt:taskcluster/requirements.txt vendored:testing/web-platform/tests/tools/third_party/h2/src vendored:testing/web-platform/tests/tools/third_party/hpack/src vendored:testing/web-platform/tests/tools/third_party/html5lib @@ -10,15 +11,12 @@ vendored:testing/web-platform/tests/tools/third_party/webencodings vendored:testing/web-platform/tests/tools/wptrunner vendored:testing/web-platform/tests/tools/wptserve vendored:third_party/python/aiohttp -vendored:third_party/python/async_timeout vendored:third_party/python/giturlparse vendored:third_party/python/mohawk vendored:third_party/python/mozilla_repo_urls -vendored:third_party/python/mozilla_taskgraph vendored:third_party/python/python_dateutil vendored:third_party/python/redo vendored:third_party/python/slugid vendored:third_party/python/taskcluster -vendored:third_party/python/taskcluster_taskgraph vendored:third_party/python/taskcluster_urls vendored:third_party/python/voluptuous diff --git a/taskcluster/docker/debian-base/Dockerfile b/taskcluster/docker/debian-base/Dockerfile @@ -62,10 +62,8 @@ COPY --chown=worker topsrcdir/taskcluster/docker/recipes/dot-config /builds/work # %include taskcluster/scripts/run-task COPY topsrcdir/taskcluster/scripts/run-task /builds/worker/bin/run-task-hg -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task -COPY topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task /builds/worker/bin/run-task-git -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content -ADD topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content /builds/worker/bin/fetch-content +# Setup upstream `run-task` and `fetch-content` +# %include-run-task RUN chown -R worker:worker /builds/worker/bin && chmod 755 /builds/worker/bin/* diff --git a/taskcluster/docker/decision/system-setup.sh b/taskcluster/docker/decision/system-setup.sh @@ -8,12 +8,8 @@ apt-get update apt-get install \ python-is-python3 \ sudo \ - python3-yaml \ - python3-pip + python3-yaml -pip install --break-system-packages --disable-pip-version-check --quiet --no-cache-dir orjson==3.10.15 rtoml==0.13.0 - -apt-get remove --purge python3-pip apt-get autoremove --purge apt-get clean apt-get autoclean diff --git a/taskcluster/docker/fetch/Dockerfile b/taskcluster/docker/fetch/Dockerfile @@ -28,10 +28,7 @@ RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAG # %include taskcluster/scripts/run-task COPY topsrcdir/taskcluster/scripts/run-task /builds/worker/bin/run-task-hg -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task -COPY topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task /builds/worker/bin/run-task-git -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content -ADD topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content /builds/worker/bin/fetch-content +# %include-run-task RUN pip3 install redo==2.0.4 --break-system-packages diff --git a/taskcluster/docker/ubuntu1804-base/Dockerfile b/taskcluster/docker/ubuntu1804-base/Dockerfile @@ -64,10 +64,7 @@ COPY topsrcdir/taskcluster/docker/recipes/dot-config /builds/worker/.config # %include taskcluster/scripts/run-task COPY topsrcdir/taskcluster/scripts/run-task /builds/worker/bin/run-task-hg -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task -COPY topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/run-task /builds/worker/bin/run-task-git -# %include third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content -ADD topsrcdir/third_party/python/taskcluster_taskgraph/taskgraph/run-task/fetch-content /builds/worker/bin/fetch-content +# %include-run-task RUN chown -R worker:worker /builds/worker/bin && chmod 755 /builds/worker/bin/* diff --git a/taskcluster/docs/index.rst b/taskcluster/docs/index.rst @@ -31,10 +31,10 @@ documentation. of being merged back together. Today the version of Taskgraph under ``taskcluster/gecko_taskgraph`` depends - on the standalone version, which is vendored under - ``third_party/python/taskcluster_taskgraph``. There is still a lot of - duplication between these places, but ``gecko_taskgraph`` is slowly being - re-written to consume standalone Taskgraph. + on the upstream version, which is installed as part of + ``taskcluster/requirements.txt``. There is still a lot of duplication + between these places, but ``gecko_taskgraph`` is slowly being re-written to + consume upstream Taskgraph. The ``taskcluster`` directory contains all the files needed to define the graph of tasks that must be executed to build and test the Gecko tree. This is more diff --git a/taskcluster/gecko_taskgraph/__init__.py b/taskcluster/gecko_taskgraph/__init__.py @@ -10,7 +10,7 @@ from taskgraph import config as taskgraph_config from taskgraph import generator from taskgraph import morph as taskgraph_morph from taskgraph.transforms.task import payload_builders -from taskgraph.util import schema +from taskgraph.util import docker, schema from taskgraph.util import taskcluster as tc_util from gecko_taskgraph.config import graph_config_schema @@ -21,6 +21,20 @@ TEST_CONFIGS = os.path.join(GECKO, "taskcluster", "test_configs") # Overwrite Taskgraph's default graph_config_schema with a custom one. taskgraph_config.graph_config_schema = graph_config_schema +# Overwrite Taskgraph's RUN_TASK_SNIPPET to place the binaries in Gecko +# specific locations. +docker.RUN_TASK_FILES = { + f"run-task/{path}": os.path.join(docker.RUN_TASK_ROOT, path) + for path in [ + "run-task", + "fetch-content", + ] +} +docker.RUN_TASK_SNIPPET = [ + "COPY run-task/run-task /builds/worker/bin/run-task-git\n", + "COPY run-task/fetch-content /builds/worker/bin/fetch-content\n", +] + # Don't use any of the upstream morphs. # TODO Investigate merging our morphs with upstream. taskgraph_morph.registered_morphs = [] diff --git a/taskcluster/gecko_taskgraph/decision.py b/taskcluster/gecko_taskgraph/decision.py @@ -10,6 +10,7 @@ import time from collections import defaultdict from pathlib import Path +import taskgraph import yaml from redo import retry from taskgraph import create @@ -243,9 +244,7 @@ def taskgraph_decision(options, parameters=None): # upload run-task, fetch-content, robustcheckout.py and more as artifacts mozharness_dir = Path(GECKO, "testing", "mozharness") scripts_dir = Path(GECKO, "taskcluster", "scripts") - taskgraph_dir = Path( - GECKO, "third_party", "python", "taskcluster_taskgraph", "taskgraph" - ) + taskgraph_dir = Path(taskgraph.__file__).parent to_copy = { scripts_dir / "run-task": f"{ARTIFACTS_DIR}/run-task-hg", scripts_dir / "tester" / "test-linux.sh": ARTIFACTS_DIR, diff --git a/taskcluster/gecko_taskgraph/main.py b/taskcluster/gecko_taskgraph/main.py @@ -356,7 +356,7 @@ def show_taskgraph(options): ].endswith(("taskgraph", "mozbuild")): del sys.modules[mod] - # Ensure gecko_taskgraph is ahead of taskcluster_taskgraph in sys.path. + # Ensure gecko_taskgraph is ahead of upstream Taskgraph in sys.path. # Without this, we may end up validating some things against the wrong # schema. import gecko_taskgraph # noqa diff --git a/taskcluster/gecko_taskgraph/morph.py b/taskcluster/gecko_taskgraph/morph.py @@ -259,8 +259,7 @@ def add_try_task_duplicates(taskgraph, label_to_taskid, parameters, graph_config # this shim function exists so we can call it from the unittests. -# this works around an issue with -# third_party/python/taskcluster_taskgraph/taskgraph/morph.py#40 +# this works around an issue with the morph in upstream Taskgraph def _add_try_task_duplicates(taskgraph, label_to_taskid, parameters, graph_config): try_config = parameters.get("try_task_config", {}) tasks = try_config.get("tasks", []) diff --git a/taskcluster/gecko_taskgraph/transforms/task.py b/taskcluster/gecko_taskgraph/transforms/task.py @@ -13,7 +13,9 @@ import hashlib import os import re import time +from pathlib import Path +import taskgraph from mozbuild.util import memoize from mozilla_taskgraph.util.signed_artifacts import get_signed_artifacts from taskcluster.utils import fromNow @@ -43,16 +45,8 @@ from gecko_taskgraph.util.partners import get_partners_to_be_published from gecko_taskgraph.util.scriptworker import BALROG_ACTIONS, get_release_config from gecko_taskgraph.util.workertypes import get_worker_type, worker_type_implementation -RUN_TASK_HG = os.path.join(GECKO, "taskcluster", "scripts", "run-task") -RUN_TASK_GIT = os.path.join( - GECKO, - "third_party", - "python", - "taskcluster_taskgraph", - "taskgraph", - "run-task", - "run-task", -) +RUN_TASK_HG = Path(GECKO, "taskcluster", "scripts", "run-task") +RUN_TASK_GIT = Path(taskgraph.__file__).parent / "run-task" / "run-task" SCCACHE_GCS_PROJECT = "sccache-3" @@ -61,8 +55,8 @@ SCCACHE_GCS_PROJECT = "sccache-3" def _run_task_suffix(repo_type): """String to append to cache names under control of run-task.""" if repo_type == "hg": - return hash_path(RUN_TASK_HG)[0:20] - return hash_path(RUN_TASK_GIT)[0:20] + return hash_path(str(RUN_TASK_HG))[0:20] + return hash_path(str(RUN_TASK_GIT))[0:20] def _compute_geckoview_version(app_version, moz_build_date): diff --git a/taskcluster/kinds/source-test/python.yml b/taskcluster/kinds/source-test/python.yml @@ -58,7 +58,7 @@ firefox-ci: - '.taskcluster.yml' - 'taskcluster/kinds/**' - 'taskcluster/**/*.py' - - 'third_party/python/taskcluster_taskgraph/**/*.py' + - 'taskcluster/requirements.txt' - 'tools/tryselect/selectors/auto.py' fog: @@ -354,7 +354,7 @@ taskgraph-tests: files-changed: - 'python/mach/**/*.py' - 'taskcluster/**/*.py' - - 'third_party/python/taskcluster_taskgraph/**/*.py' + - 'taskcluster/requirements.txt' tryselect: description: tools/tryselect unit tests @@ -371,7 +371,7 @@ tryselect: - 'taskcluster/config.yml' - 'taskcluster/kinds/test/**' - 'taskcluster/gecko_taskgraph/transforms/**' - - 'third_party/python/taskcluster_taskgraph/**/*.py' + - 'taskcluster/requirements.txt' - 'tools/tryselect/**' mozbuild: @@ -645,8 +645,6 @@ verify-decision: - .cron.yml - .taskcluster.yml - 'taskcluster/**' - - 'third_party/python/taskcluster/**' - - 'third_party/python/taskcluster_taskgraph/**' webext: description: WebExtensions python utilities unit tests diff --git a/taskcluster/kinds/source-test/taskgraph.yml b/taskcluster/kinds/source-test/taskgraph.yml @@ -42,4 +42,4 @@ diff: files-changed: - 'taskcluster/kinds/**' - 'taskcluster/**/*.py' - - 'third_party/python/taskcluster_taskgraph/**/*.py' + - 'taskcluster/requirements.txt' diff --git a/taskcluster/mach_commands.py b/taskcluster/mach_commands.py @@ -13,17 +13,10 @@ import time import traceback from functools import partial -import gecko_taskgraph.main -from gecko_taskgraph.files_changed import get_locally_changed_files -from gecko_taskgraph.main import commands as taskgraph_commands from mach.decorators import Command, CommandArgument, SubCommand from mach.util import strtobool from mozsystemmonitor.resourcemonitor import SystemResourceMonitor -# We're likely going to need the result of get_locally_changed_files, and it -# takes time to finish, so prefetch it as soon as possible. -get_locally_changed_files.preload(os.getcwd()) - def setup_logging(command_context, quiet=False, verbose=True): """ @@ -58,6 +51,8 @@ def get_taskgraph_command_parser(name): Returns: ArgumentParser: An ArgumentParser instance. """ + from gecko_taskgraph.main import commands as taskgraph_commands + command = taskgraph_commands[name] parser = argparse.ArgumentParser() for arg in command.func.args: @@ -111,6 +106,7 @@ def get_taskgraph_decision_parser(): "taskgraph", category="ci", description="Manipulate TaskCluster task graphs defined in-tree", + virtualenv_name="taskgraph", ) def taskgraph_command(command_context): """The taskgraph subcommands all relate to the generation of task graphs @@ -127,6 +123,8 @@ def taskgraph_command(command_context): parser=partial(get_taskgraph_command_parser, "kind-graph"), ) def taskgraph_kind_graph(command_context, **options): + from gecko_taskgraph.main import commands as taskgraph_commands + try: setup_logging(command_context) return taskgraph_commands["kind-graph"].func(options) @@ -196,6 +194,8 @@ def taskgraph_morphed(command_context, **options): def run_show_taskgraph(command_context, **options): + import gecko_taskgraph.main + # There are cases where we don't want to set up mach logging (e.g logs # are being redirected to disk). By monkeypatching the 'setup_logging' # function we can let 'taskgraph.main' decide whether or not to log to @@ -269,6 +269,8 @@ def taskgraph_decision(command_context, **options): and requires a great many arguments. Commands like `mach taskgraph optimized` are better suited to use on the command line, and can take the parameters file generated by a decision task.""" + from gecko_taskgraph.main import commands as taskgraph_commands + try: setup_logging(command_context) @@ -330,6 +332,8 @@ def taskgraph_decision(command_context, **options): parser=partial(get_taskgraph_command_parser, "action-callback"), ) def action_callback(command_context, **options): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) taskgraph_commands["action-callback"].func(options) @@ -341,6 +345,8 @@ def action_callback(command_context, **options): parser=partial(get_taskgraph_command_parser, "test-action-callback"), ) def test_action_callback(command_context, **options): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) if not options["parameters"]: @@ -357,6 +363,8 @@ def test_action_callback(command_context, **options): parser=partial(get_taskgraph_command_parser, "load-image"), ) def load_image(command_context, **kwargs): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) taskgraph_commands["load-image"].func(kwargs) @@ -368,6 +376,8 @@ def load_image(command_context, **kwargs): parser=partial(get_taskgraph_command_parser, "build-image"), ) def build_image(command_context, **kwargs): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) try: taskgraph_commands["build-image"].func(kwargs) @@ -384,6 +394,8 @@ def build_image(command_context, **kwargs): parser=partial(get_taskgraph_command_parser, "build-image"), ) def image_digest(command_context, **kwargs): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) taskgraph_commands["image-digest"].func(kwargs) @@ -398,6 +410,8 @@ def image_digest(command_context, **kwargs): parser=partial(get_taskgraph_command_parser, "load-task"), ) def load_task(command_context, **kwargs): + from gecko_taskgraph.main import commands as taskgraph_commands + setup_logging(command_context) taskgraph_commands["load-task"].func(kwargs) @@ -406,6 +420,7 @@ def load_task(command_context, **kwargs): "release-history", category="ci", description="Query balrog for release history used by enable partials generation", + virtualenv_name="try", ) @CommandArgument( "-b", diff --git a/taskcluster/requirements.in b/taskcluster/requirements.in @@ -0,0 +1,8 @@ +-c ../third_party/python/requirements.txt + +mozilla-taskgraph==4.0.1 +requests-unixsocket +taskcluster-taskgraph[orjson,load-image]==18.0.3 +rtoml==0.13.0; python_version >= "3.10" +# Temporarily resolve conflict with myst-parser 2.0.0 in python/sites/docs.txt +markdown-it-py < 4 diff --git a/taskcluster/requirements.txt b/taskcluster/requirements.txt @@ -0,0 +1,1264 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile requirements.in --generate-hashes -o requirements.txt --universal +aiohappyeyeballs==2.6.1 \ + --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ + --hash=sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8 + # via + # -c ../third_party/python/requirements.txt + # aiohttp +aiohttp==3.12.13 \ + --hash=sha256:0022de47ef63fd06b065d430ac79c6b0bd24cdae7feaf0e8c6bac23b805a23a8 \ + --hash=sha256:003038e83f1a3ff97409999995ec02fe3008a1d675478949643281141f54751d \ + --hash=sha256:03d5eb3cfb4949ab4c74822fb3326cd9655c2b9fe22e4257e2100d44215b2e2b \ + --hash=sha256:04076d8c63471e51e3689c93940775dc3d12d855c0c80d18ac5a1c68f0904358 \ + --hash=sha256:050bd277dfc3768b606fd4eae79dd58ceda67d8b0b3c565656a89ae34525d15e \ + --hash=sha256:0653d15587909a52e024a261943cf1c5bdc69acb71f411b0dd5966d065a51a47 \ + --hash=sha256:06b07c418bde1c8e737d8fa67741072bd3f5b0fb66cf8c0655172188c17e5fa6 \ + --hash=sha256:09c4767af0b0b98c724f5d47f2bf33395c8986995b0a9dab0575ca81a554a8c0 \ + --hash=sha256:0aa580cf80558557285b49452151b9c69f2fa3ad94c5c9e76e684719a8791b73 \ + --hash=sha256:0f7df1f620ec40f1a7fbcb99ea17d7326ea6996715e78f71a1c9a021e31b96b8 \ + --hash=sha256:0fcda86f6cb318ba36ed8f1396a6a4a3fd8f856f84d426584392083d10da4de0 \ + --hash=sha256:119c79922a7001ca6a9e253228eb39b793ea994fd2eccb79481c64b5f9d2a055 \ + --hash=sha256:1561db63fa1b658cd94325d303933553ea7d89ae09ff21cc3bcd41b8521fbbb6 \ + --hash=sha256:1582745eb63df267c92d8b61ca655a0ce62105ef62542c00a74590f306be8cb5 \ + --hash=sha256:177f52420cde4ce0bb9425a375d95577fe082cb5721ecb61da3049b55189e4e6 \ + --hash=sha256:1b6f46613031dbc92bdcaad9c4c22c7209236ec501f9c0c5f5f0b6a689bf50f3 \ + --hash=sha256:1e8b27b2d414f7e3205aa23bb4a692e935ef877e3a71f40d1884f6e04fd7fa74 \ + --hash=sha256:2332b4c361c05ecd381edb99e2a33733f3db906739a83a483974b3df70a51b40 \ + --hash=sha256:2637a60910b58f50f22379b6797466c3aa6ae28a6ab6404e09175ce4955b4e6a \ + --hash=sha256:29c955989bf4c696d2ededc6b0ccb85a73623ae6e112439398935362bacfaaf6 \ + --hash=sha256:29e08111ccf81b2734ae03f1ad1cb03b9615e7d8f616764f22f71209c094f122 \ + --hash=sha256:3062d4ad53b36e17796dce1c0d6da0ad27a015c321e663657ba1cc7659cfc710 \ + --hash=sha256:34ebf1aca12845066c963016655dac897651e1544f22a34c9b461ac3b4b1d3aa \ + --hash=sha256:36f6c973e003dc9b0bb4e8492a643641ea8ef0e97ff7aaa5c0f53d68839357b4 \ + --hash=sha256:372feeace612ef8eb41f05ae014a92121a512bd5067db8f25101dd88a8db11da \ + --hash=sha256:3fea41a2c931fb582cb15dc86a3037329e7b941df52b487a9f8b5aa960153cbd \ + --hash=sha256:47e2da578528264a12e4e3dd8dd72a7289e5f812758fe086473fab037a10fcce \ + --hash=sha256:4cd71c9fb92aceb5a23c4c39d8ecc80389c178eba9feab77f19274843eb9412d \ + --hash=sha256:4dc507481266b410dede95dd9f26c8d6f5a14315372cc48a6e43eac652237d9b \ + --hash=sha256:4f95db8c8b219bcf294a53742c7bda49b80ceb9d577c8e7aa075612b7f39ffb7 \ + --hash=sha256:5304d74867028cca8f64f1cc1215eb365388033c5a691ea7aa6b0dc47412f495 \ + --hash=sha256:532542cb48691179455fab429cdb0d558b5e5290b033b87478f2aa6af5d20ace \ + --hash=sha256:5421af8f22a98f640261ee48aae3a37f0c41371e99412d55eaf2f8a46d5dad29 \ + --hash=sha256:54fbbe6beafc2820de71ece2198458a711e224e116efefa01b7969f3e2b3ddae \ + --hash=sha256:55683615813ce3601640cfaa1041174dc956d28ba0511c8cbd75273eb0587014 \ + --hash=sha256:5a178390ca90419bfd41419a809688c368e63c86bd725e1186dd97f6b89c2706 \ + --hash=sha256:5a1ecce0ed281bec7da8550da052a6b89552db14d0a0a45554156f085a912f48 \ + --hash=sha256:5d6c85ac7dd350f8da2520bac8205ce99df4435b399fa7f4dc4a70407073e390 \ + --hash=sha256:60f2ce6b944e97649051d5f5cc0f439360690b73909230e107fd45a359d3e911 \ + --hash=sha256:6383dd0ffa15515283c26cbf41ac8e6705aab54b4cbb77bdb8935a713a89bee9 \ + --hash=sha256:64d1f24ee95a2d1e094a4cd7a9b7d34d08db1bbcb8aa9fb717046b0a884ac294 \ + --hash=sha256:6548a411bc8219b45ba2577716493aa63b12803d1e5dc70508c539d0db8dbf5a \ + --hash=sha256:663d8ee3ffb3494502ebcccb49078faddbb84c1d870f9c1dd5a29e85d1f747ce \ + --hash=sha256:671f41e6146a749b6c81cb7fd07f5a8356d46febdaaaf07b0e774ff04830461e \ + --hash=sha256:69fc1909857401b67bf599c793f2183fbc4804717388b0b888f27f9929aa41f3 \ + --hash=sha256:6a83797a0174e7995e5edce9dcecc517c642eb43bc3cba296d4512edf346eee2 \ + --hash=sha256:6af355b483e3fe9d7336d84539fef460120c2f6e50e06c658fe2907c69262d6b \ + --hash=sha256:6cbfc73179bd67c229eb171e2e3745d2afd5c711ccd1e40a68b90427f282eab1 \ + --hash=sha256:78f64e748e9e741d2eccff9597d09fb3cd962210e5b5716047cbb646dc8fe06f \ + --hash=sha256:7a0b9170d5d800126b5bc89d3053a2363406d6e327afb6afaeda2d19ee8bb103 \ + --hash=sha256:7c229b1437aa2576b99384e4be668af1db84b31a45305d02f61f5497cfa6f60c \ + --hash=sha256:7d7e68787a2046b0e44ba5587aa723ce05d711e3a3665b6b7545328ac8e3c0dd \ + --hash=sha256:81b0fcbfe59a4ca41dc8f635c2a4a71e63f75168cc91026c61be665945739e2d \ + --hash=sha256:846104f45d18fb390efd9b422b27d8f3cf8853f1218c537f36e71a385758c896 \ + --hash=sha256:8605e22d2a86b8e51ffb5253d9045ea73683d92d47c0b1438e11a359bdb94462 \ + --hash=sha256:893a4639694c5b7edd4bdd8141be296042b6806e27cc1d794e585c43010cc294 \ + --hash=sha256:8a94daa873465d518db073bd95d75f14302e0208a08e8c942b2f3f1c07288a75 \ + --hash=sha256:921bc91e602d7506d37643e77819cb0b840d4ebb5f8d6408423af3d3bf79a7b7 \ + --hash=sha256:9445c1842680efac0f81d272fd8db7163acfcc2b1436e3f420f4c9a9c5a50795 \ + --hash=sha256:9a27da9c3b5ed9d04c36ad2df65b38a96a37e9cfba6f1381b842d05d98e6afe9 \ + --hash=sha256:9b28ea2f708234f0a5c44eb6c7d9eb63a148ce3252ba0140d050b091b6e842d1 \ + --hash=sha256:a0be857f0b35177ba09d7c472825d1b711d11c6d0e8a2052804e3b93166de1ad \ + --hash=sha256:a0c4725fae86555bbb1d4082129e21de7264f4ab14baf735278c974785cd2041 \ + --hash=sha256:a5734d8469a5633a4e9ffdf9983ff7cdb512524645c7a3d4bc8a3de45b935ac3 \ + --hash=sha256:a77b48997c66722c65e157c06c74332cdf9c7ad00494b85ec43f324e5c5a9b9a \ + --hash=sha256:a946d3702f7965d81f7af7ea8fb03bb33fe53d311df48a46eeca17e9e0beed2d \ + --hash=sha256:a95cf9f097498f35c88e3609f55bb47b28a5ef67f6888f4390b3d73e2bac6177 \ + --hash=sha256:ac941a80aeea2aaae2875c9500861a3ba356f9ff17b9cb2dbfb5cbf91baaf5bf \ + --hash=sha256:ad7c8e5c25f2a26842a7c239de3f7b6bfb92304593ef997c04ac49fb703ff4d7 \ + --hash=sha256:b103a7e414b57e6939cc4dece8e282cfb22043efd0c7298044f6594cf83ab347 \ + --hash=sha256:b8ed8c38a1c584fe99a475a8f60eefc0b682ea413a84c6ce769bb19a7ff1c5ef \ + --hash=sha256:bb18f00396d22e2f10cd8825d671d9f9a3ba968d708a559c02a627536b36d91c \ + --hash=sha256:c332c6bb04650d59fb94ed96491f43812549a3ba6e7a16a218e612f99f04145e \ + --hash=sha256:d4a18e61f271127465bdb0e8ff36e8f02ac4a32a80d8927aa52371e93cd87938 \ + --hash=sha256:d4f5becd2a5791829f79608c6f3dc745388162376f310eb9c142c985f9441cc1 \ + --hash=sha256:d59227776ee2aa64226f7e086638baa645f4b044f2947dbf85c76ab11dcba073 \ + --hash=sha256:d640191016763fab76072c87d8854a19e8e65d7a6fcfcbf017926bdbbb30a7e5 \ + --hash=sha256:d6946bae55fd36cfb8e4092c921075cde029c71c7cb571d72f1079d1e4e013bc \ + --hash=sha256:d7eea18b52f23c050ae9db5d01f3d264ab08f09e7356d6f68e3f3ac2de9dfabb \ + --hash=sha256:e72d17fe0974ddeae8ed86db297e23dba39c7ac36d84acdbb53df2e18505a013 \ + --hash=sha256:e986067357550d1aaa21cfe9897fa19e680110551518a5a7cf44e6c5638cb8b5 \ + --hash=sha256:eabded0c2b2ef56243289112c48556c395d70150ce4220d9008e6b4b3dd15690 \ + --hash=sha256:f0f8f6a85a0006ae2709aa4ce05749ba2cdcb4b43d6c21a16c8517c16593aabe \ + --hash=sha256:f3854fbde7a465318ad8d3fc5bef8f059e6d0a87e71a0d3360bb56c0bf87b18a \ + --hash=sha256:fcc30ad4fb5cb41a33953292d45f54ef4066746d625992aeac33b8c681173178 \ + --hash=sha256:fef8d50dfa482925bb6b4c208b40d8e9fa54cecba923dc65b825a72eed9a5dbd + # via + # -c ../third_party/python/requirements.txt + # taskcluster +aiosignal==1.3.2 \ + --hash=sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5 \ + --hash=sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54 + # via + # -c ../third_party/python/requirements.txt + # aiohttp +appdirs==1.4.4 \ + --hash=sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41 \ + --hash=sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128 + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +arrow==1.3.0 \ + --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ + --hash=sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +async-timeout==5.0.1 \ + --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ + --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 + # via + # -c ../third_party/python/requirements.txt + # aiohttp + # taskcluster +attrs==25.3.0 \ + --hash=sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3 \ + --hash=sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b + # via + # -c ../third_party/python/requirements.txt + # aiohttp +binaryornot==0.4.4 \ + --hash=sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061 \ + --hash=sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +certifi==2025.6.15 \ + --hash=sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057 \ + --hash=sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b + # via + # -c ../third_party/python/requirements.txt + # requests +chardet==5.2.0 \ + --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ + --hash=sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970 + # via + # -c ../third_party/python/requirements.txt + # binaryornot +charset-normalizer==3.4.2 \ + --hash=sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4 \ + --hash=sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45 \ + --hash=sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7 \ + --hash=sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0 \ + --hash=sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7 \ + --hash=sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d \ + --hash=sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d \ + --hash=sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0 \ + --hash=sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184 \ + --hash=sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db \ + --hash=sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b \ + --hash=sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64 \ + --hash=sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b \ + --hash=sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8 \ + --hash=sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff \ + --hash=sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344 \ + --hash=sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58 \ + --hash=sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e \ + --hash=sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471 \ + --hash=sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148 \ + --hash=sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a \ + --hash=sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836 \ + --hash=sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e \ + --hash=sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63 \ + --hash=sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c \ + --hash=sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1 \ + --hash=sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01 \ + --hash=sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366 \ + --hash=sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58 \ + --hash=sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5 \ + --hash=sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c \ + --hash=sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2 \ + --hash=sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a \ + --hash=sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597 \ + --hash=sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b \ + --hash=sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5 \ + --hash=sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb \ + --hash=sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f \ + --hash=sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0 \ + --hash=sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941 \ + --hash=sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0 \ + --hash=sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86 \ + --hash=sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7 \ + --hash=sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7 \ + --hash=sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455 \ + --hash=sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6 \ + --hash=sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4 \ + --hash=sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0 \ + --hash=sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3 \ + --hash=sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1 \ + --hash=sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6 \ + --hash=sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981 \ + --hash=sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c \ + --hash=sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980 \ + --hash=sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645 \ + --hash=sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7 \ + --hash=sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12 \ + --hash=sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa \ + --hash=sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd \ + --hash=sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef \ + --hash=sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f \ + --hash=sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2 \ + --hash=sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d \ + --hash=sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5 \ + --hash=sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02 \ + --hash=sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3 \ + --hash=sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd \ + --hash=sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e \ + --hash=sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214 \ + --hash=sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd \ + --hash=sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a \ + --hash=sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c \ + --hash=sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681 \ + --hash=sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba \ + --hash=sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f \ + --hash=sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a \ + --hash=sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28 \ + --hash=sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691 \ + --hash=sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82 \ + --hash=sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a \ + --hash=sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027 \ + --hash=sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7 \ + --hash=sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518 \ + --hash=sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf \ + --hash=sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b \ + --hash=sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9 \ + --hash=sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544 \ + --hash=sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da \ + --hash=sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509 \ + --hash=sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f \ + --hash=sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a \ + --hash=sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f + # via + # -c ../third_party/python/requirements.txt + # requests +click==8.1.7 \ + --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ + --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +colorama==0.4.6 ; sys_platform == 'win32' \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + # via + # -c ../third_party/python/requirements.txt + # click +cookiecutter==2.6.0 \ + --hash=sha256:a54a8e37995e4ed963b3e82831072d1ad4b005af736bb17b99c2cbd9d41b6e2d \ + --hash=sha256:db21f8169ea4f4fdc2408d48ca44859349de2647fbe494a9d6c3edfc0542c21c + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +frozenlist==1.7.0 \ + --hash=sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f \ + --hash=sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b \ + --hash=sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949 \ + --hash=sha256:1073557c941395fdfcfac13eb2456cb8aad89f9de27bae29fabca8e563b12615 \ + --hash=sha256:1137b78384eebaf70560a36b7b229f752fb64d463d38d1304939984d5cb887b6 \ + --hash=sha256:15900082e886edb37480335d9d518cec978afc69ccbc30bd18610b7c1b22a718 \ + --hash=sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df \ + --hash=sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf \ + --hash=sha256:1e63344c4e929b1a01e29bc184bbb5fd82954869033765bfe8d65d09e336a677 \ + --hash=sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5 \ + --hash=sha256:1ed8d2fa095aae4bdc7fdd80351009a48d286635edffee66bf865e37a9125c50 \ + --hash=sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb \ + --hash=sha256:21884e23cffabb157a9dd7e353779077bf5b8f9a58e9b262c6caad2ef5f80a56 \ + --hash=sha256:24c34bea555fe42d9f928ba0a740c553088500377448febecaa82cc3e88aa1fa \ + --hash=sha256:284d233a8953d7b24f9159b8a3496fc1ddc00f4db99c324bd5fb5f22d8698ea7 \ + --hash=sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43 \ + --hash=sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f \ + --hash=sha256:2ea2a7369eb76de2217a842f22087913cdf75f63cf1307b9024ab82dfb525938 \ + --hash=sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c \ + --hash=sha256:34a69a85e34ff37791e94542065c8416c1afbf820b68f720452f636d5fb990cd \ + --hash=sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c \ + --hash=sha256:3789ebc19cb811163e70fe2bd354cea097254ce6e707ae42e56f45e31e96cb8e \ + --hash=sha256:387cbfdcde2f2353f19c2f66bbb52406d06ed77519ac7ee21be0232147c2592d \ + --hash=sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81 \ + --hash=sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e \ + --hash=sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657 \ + --hash=sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478 \ + --hash=sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2 \ + --hash=sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca \ + --hash=sha256:400ddd24ab4e55014bba442d917203c73b2846391dd42ca5e38ff52bb18c3c5e \ + --hash=sha256:41be2964bd4b15bf575e5daee5a5ce7ed3115320fb3c2b71fca05582ffa4dc9e \ + --hash=sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3 \ + --hash=sha256:43a82fce6769c70f2f5a06248b614a7d268080a9d20f7457ef10ecee5af82b63 \ + --hash=sha256:45a6f2fdbd10e074e8814eb98b05292f27bad7d1883afbe009d96abdcf3bc898 \ + --hash=sha256:46d84d49e00c9429238a7ce02dc0be8f6d7cd0cd405abd1bebdc991bf27c15bd \ + --hash=sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca \ + --hash=sha256:4a646531fa8d82c87fe4bb2e596f23173caec9185bfbca5d583b4ccfb95183e2 \ + --hash=sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104 \ + --hash=sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba \ + --hash=sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a \ + --hash=sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1 \ + --hash=sha256:61d1a5baeaac6c0798ff6edfaeaa00e0e412d49946c53fae8d4b8e8b3566c4ae \ + --hash=sha256:69cac419ac6a6baad202c85aaf467b65ac860ac2e7f2ac1686dc40dbb52f6577 \ + --hash=sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60 \ + --hash=sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee \ + --hash=sha256:6eb93efb8101ef39d32d50bce242c84bcbddb4f7e9febfa7b524532a239b4464 \ + --hash=sha256:716a9973a2cc963160394f701964fe25012600f3d311f60c790400b00e568b61 \ + --hash=sha256:72c1b0fe8fe451b34f12dce46445ddf14bd2a5bcad7e324987194dc8e3a74c86 \ + --hash=sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01 \ + --hash=sha256:74739ba8e4e38221d2c5c03d90a7e542cb8ad681915f4ca8f68d04f810ee0a87 \ + --hash=sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb \ + --hash=sha256:79b2ffbba483f4ed36a0f236ccb85fbb16e670c9238313709638167670ba235f \ + --hash=sha256:7d536ee086b23fecc36c2073c371572374ff50ef4db515e4e503925361c24f71 \ + --hash=sha256:7edf5c043c062462f09b6820de9854bf28cc6cc5b6714b383149745e287181a8 \ + --hash=sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d \ + --hash=sha256:836b42f472a0e006e02499cef9352ce8097f33df43baaba3e0a28a964c26c7d2 \ + --hash=sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00 \ + --hash=sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b \ + --hash=sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b \ + --hash=sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146 \ + --hash=sha256:960d67d0611f4c87da7e2ae2eacf7ea81a5be967861e0c63cf205215afbfac59 \ + --hash=sha256:974c5336e61d6e7eb1ea5b929cb645e882aadab0095c5a6974a111e6479f8878 \ + --hash=sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08 \ + --hash=sha256:9a19e85cc503d958abe5218953df722748d87172f71b73cf3c9257a91b999890 \ + --hash=sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e \ + --hash=sha256:9b35db7ce1cd71d36ba24f80f0c9e7cff73a28d7a74e91fe83e23d27c7828750 \ + --hash=sha256:9ccec739a99e4ccf664ea0775149f2749b8a6418eb5b8384b4dc0a7d15d304cb \ + --hash=sha256:a0fd1bad056a3600047fb9462cff4c5322cebc59ebf5d0a3725e0ee78955001d \ + --hash=sha256:a26f205c9ca5829cbf82bb2a84b5c36f7184c4316617d7ef1b271a56720d6b30 \ + --hash=sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3 \ + --hash=sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d \ + --hash=sha256:aa51e147a66b2d74de1e6e2cf5921890de6b0f4820b257465101d7f37b49fb5a \ + --hash=sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8 \ + --hash=sha256:ac64b6478722eeb7a3313d494f8342ef3478dff539d17002f849101b212ef97c \ + --hash=sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1 \ + --hash=sha256:af369aa35ee34f132fcfad5be45fbfcde0e3a5f6a1ec0712857f286b7d20cca9 \ + --hash=sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e \ + --hash=sha256:b3950f11058310008a87757f3eee16a8e1ca97979833239439586857bc25482e \ + --hash=sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384 \ + --hash=sha256:bcacfad3185a623fa11ea0e0634aac7b691aa925d50a440f39b458e41c561d98 \ + --hash=sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb \ + --hash=sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4 \ + --hash=sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65 \ + --hash=sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08 \ + --hash=sha256:c70db4a0ab5ab20878432c40563573229a7ed9241506181bba12f6b7d0dc41cb \ + --hash=sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43 \ + --hash=sha256:cc4df77d638aa2ed703b878dd093725b72a824c3c546c076e8fdf276f78ee84a \ + --hash=sha256:ce48b2fece5aeb45265bb7a58259f45027db0abff478e3077e12b05b17fb9da7 \ + --hash=sha256:cea3dbd15aea1341ea2de490574a4a37ca080b2ae24e4b4f4b51b9057b4c3630 \ + --hash=sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d \ + --hash=sha256:d50ac7627b3a1bd2dcef6f9da89a772694ec04d9a61b66cf87f7d9446b4a0c31 \ + --hash=sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d \ + --hash=sha256:dfcebf56f703cb2e346315431699f00db126d158455e513bd14089d992101e44 \ + --hash=sha256:e22b9a99741294b2571667c07d9f8cceec07cb92aae5ccda39ea1b6052ed4319 \ + --hash=sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e \ + --hash=sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025 \ + --hash=sha256:e793a9f01b3e8b5c0bc646fb59140ce0efcc580d22a3468d70766091beb81b35 \ + --hash=sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee \ + --hash=sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1 \ + --hash=sha256:f22dac33bb3ee8fe3e013aa7b91dc12f60d61d05b7fe32191ffa84c3aafe77bd \ + --hash=sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74 \ + --hash=sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b \ + --hash=sha256:f89f65d85774f1797239693cef07ad4c97fdd0639544bad9ac4b869782eb1981 \ + --hash=sha256:fe2365ae915a1fafd982c146754e1de6ab3478def8a59c86e1f7242d794f97d5 + # via + # -c ../third_party/python/requirements.txt + # aiohttp + # aiosignal +giturlparse==0.12.0 \ + --hash=sha256:412b74f2855f1da2fefa89fd8dde62df48476077a72fc19b62039554d27360eb \ + --hash=sha256:c0fff7c21acc435491b1779566e038757a205c1ffdcb47e4f81ea52ad8c3859a + # via + # -c ../third_party/python/requirements.txt + # mozilla-repo-urls +idna==3.10 \ + --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ + --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + # via + # -c ../third_party/python/requirements.txt + # requests + # yarl +jinja2==3.1.6 \ + --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ + --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +json-e==4.8.0 \ + --hash=sha256:51ead93962912d701c6f1a6a0b27cc34bb2cb8397a82affd8adb2401898e27ea \ + --hash=sha256:91a50ba4e1a9e6d40c36c0601d68acda9ae44ca2817525e09938b2c82ce23572 + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +markdown-it-py==3.0.0 \ + --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ + --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb + # via + # -c ../third_party/python/requirements.txt + # -r requirements.in + # rich +markupsafe==3.0.2 \ + --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ + --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ + --hash=sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0 \ + --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ + --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ + --hash=sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13 \ + --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ + --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ + --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ + --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ + --hash=sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0 \ + --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ + --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ + --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ + --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ + --hash=sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff \ + --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ + --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ + --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ + --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ + --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ + --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ + --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ + --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ + --hash=sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a \ + --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ + --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ + --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ + --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ + --hash=sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144 \ + --hash=sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f \ + --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ + --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ + --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ + --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ + --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ + --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ + --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ + --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ + --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ + --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ + --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ + --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ + --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ + --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ + --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ + --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ + --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ + --hash=sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29 \ + --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ + --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ + --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ + --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ + --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ + --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ + --hash=sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a \ + --hash=sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178 \ + --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ + --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ + --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ + --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 + # via + # -c ../third_party/python/requirements.txt + # jinja2 +mdurl==0.1.2 \ + --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ + --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba + # via + # -c ../third_party/python/requirements.txt + # markdown-it-py +mohawk==1.1.0 \ + --hash=sha256:3ed296a30453d0b724679e0fd41e4e940497f8e461a9a9c3b7f36e43bab0fa09 \ + --hash=sha256:d2a0e3ab10a209cc79e95e28f2dd54bd4a73fd1998ffe27b7ba0f962b6be9723 + # via + # -c ../third_party/python/requirements.txt + # taskcluster +mozilla-repo-urls==0.1.1 \ + --hash=sha256:30510d3519479aa70211145d0ac9cf6e2fadcb8d30fa3b196bb957bd773502ba \ + --hash=sha256:7364da790751db2a060eb45adbf1d7db89a145ed279ba235f3425db9dd255915 + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +mozilla-taskgraph==4.0.1 \ + --hash=sha256:2b3dc28d9b4c3bf5fdcf90e68b2518e57c478052782406229f451152c8f262d9 \ + --hash=sha256:64167d71ddb79207dadd5a5d554c0e4ab239cc797bf138356528ec19d3837b49 + # via + # -c ../third_party/python/requirements.txt + # -r requirements.in +multidict==6.6.4 \ + --hash=sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9 \ + --hash=sha256:01d0959807a451fe9fdd4da3e139cb5b77f7328baf2140feeaf233e1d777b729 \ + --hash=sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5 \ + --hash=sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e \ + --hash=sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138 \ + --hash=sha256:0af5f9dee472371e36d6ae38bde009bd8ce65ac7335f55dcc240379d7bed1495 \ + --hash=sha256:0b2e886624be5773e69cf32bcb8534aecdeb38943520b240fed3d5596a430f2f \ + --hash=sha256:0c5cbac6b55ad69cb6aa17ee9343dfbba903118fd530348c330211dc7aa756d1 \ + --hash=sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e \ + --hash=sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6 \ + --hash=sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8 \ + --hash=sha256:105245cc6b76f51e408451a844a54e6823bbd5a490ebfe5bdfc79798511ceded \ + --hash=sha256:10a68a9191f284fe9d501fef4efe93226e74df92ce7a24e301371293bd4918ae \ + --hash=sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69 \ + --hash=sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364 \ + --hash=sha256:163c7ea522ea9365a8a57832dea7618e6cbdc3cd75f8c627663587459a4e328f \ + --hash=sha256:17d2cbbfa6ff20821396b25890f155f40c986f9cfbce5667759696d83504954f \ + --hash=sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e \ + --hash=sha256:1a0ccbfe93ca114c5d65a2471d52d8829e56d467c97b0e341cf5ee45410033b3 \ + --hash=sha256:21f216669109e02ef3e2415ede07f4f8987f00de8cdfa0cc0b3440d42534f9f0 \ + --hash=sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657 \ + --hash=sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c \ + --hash=sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb \ + --hash=sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7 \ + --hash=sha256:350f6b0fe1ced61e778037fdc7613f4051c8baf64b1ee19371b42a3acdb016a0 \ + --hash=sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d \ + --hash=sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b \ + --hash=sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141 \ + --hash=sha256:3bb0eae408fa1996d87247ca0d6a57b7fc1dcf83e8a5c47ab82c558c250d4adf \ + --hash=sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f \ + --hash=sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf \ + --hash=sha256:43868297a5759a845fa3a483fb4392973a95fb1de891605a3728130c52b8f40f \ + --hash=sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24 \ + --hash=sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a \ + --hash=sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa \ + --hash=sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f \ + --hash=sha256:4a1fb393a2c9d202cb766c76208bd7945bc194eba8ac920ce98c6e458f0b524b \ + --hash=sha256:4bb7627fd7a968f41905a4d6343b0d63244a0623f006e9ed989fa2b78f4438a0 \ + --hash=sha256:4d09384e75788861e046330308e7af54dd306aaf20eb760eb1d0de26b2bea2cb \ + --hash=sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d \ + --hash=sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879 \ + --hash=sha256:55624b3f321d84c403cb7d8e6e982f41ae233d85f85db54ba6286f7295dc8a9c \ + --hash=sha256:56c6b3652f945c9bc3ac6c8178cd93132b8d82dd581fcbc3a00676c51302bc1a \ + --hash=sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d \ + --hash=sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812 \ + --hash=sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da \ + --hash=sha256:630f70c32b8066ddfd920350bc236225814ad94dfa493fe1910ee17fe4365cbb \ + --hash=sha256:66247d72ed62d5dd29752ffc1d3b88f135c6a8de8b5f63b7c14e973ef5bda19e \ + --hash=sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287 \ + --hash=sha256:6bf2f10f70acc7a2446965ffbc726e5fc0b272c97a90b485857e5c70022213eb \ + --hash=sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb \ + --hash=sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4 \ + --hash=sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad \ + --hash=sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f \ + --hash=sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395 \ + --hash=sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5 \ + --hash=sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0 \ + --hash=sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793 \ + --hash=sha256:8c91cdb30809a96d9ecf442ec9bc45e8cfaa0f7f8bdf534e082c2443a196727e \ + --hash=sha256:8c9854df0eaa610a23494c32a6f44a3a550fb398b6b51a56e8c6b9b3689578db \ + --hash=sha256:8e42332cf8276bb7645d310cdecca93a16920256a5b01bebf747365f86a1675b \ + --hash=sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c \ + --hash=sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45 \ + --hash=sha256:9a950b7cf54099c1209f455ac5970b1ea81410f2af60ed9eb3c3f14f0bfcf987 \ + --hash=sha256:a1b20a9d56b2d81e2ff52ecc0670d583eaabaa55f402e8d16dd062373dbbe796 \ + --hash=sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92 \ + --hash=sha256:a59c63061f1a07b861c004e53869eb1211ffd1a4acbca330e3322efa6dd02978 \ + --hash=sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802 \ + --hash=sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438 \ + --hash=sha256:aaea28ba20a9026dfa77f4b80369e51cb767c61e33a2d4043399c67bd95fb7c6 \ + --hash=sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a \ + --hash=sha256:ad887a8250eb47d3ab083d2f98db7f48098d13d42eb7a3b67d8a5c795f224ace \ + --hash=sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f \ + --hash=sha256:af7618b591bae552b40dbb6f93f5518328a949dac626ee75927bba1ecdeea9f4 \ + --hash=sha256:b6819f83aef06f560cb15482d619d0e623ce9bf155115150a85ab11b8342a665 \ + --hash=sha256:b8aa6f0bd8125ddd04a6593437bad6a7e70f300ff4180a531654aa2ab3f6d58f \ + --hash=sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402 \ + --hash=sha256:b95494daf857602eccf4c18ca33337dd2be705bccdb6dddbfc9d513e6addb9d9 \ + --hash=sha256:b9e5853bbd7264baca42ffc53391b490d65fe62849bf2c690fa3f6273dbcd0cb \ + --hash=sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7 \ + --hash=sha256:be5bf4b3224948032a845d12ab0f69f208293742df96dc14c4ff9b09e508fc17 \ + --hash=sha256:c5c97aa666cf70e667dfa5af945424ba1329af5dd988a437efeb3a09430389fb \ + --hash=sha256:c7a0e9b561e6460484318a7612e725df1145d46b0ef57c6b9866441bf6e27e0c \ + --hash=sha256:caebafea30ed049c57c673d0b36238b1748683be2593965614d7b0e99125c877 \ + --hash=sha256:cbbc54e58b34c3bae389ef00046be0961f30fef7cb0dd9c7756aee376a4f7683 \ + --hash=sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e \ + --hash=sha256:ce9a40fbe52e57e7edf20113a4eaddfacac0561a0879734e636aa6d4bb5e3fb0 \ + --hash=sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3 \ + --hash=sha256:d24f351e4d759f5054b641c81e8291e5d122af0fca5c72454ff77f7cbe492de8 \ + --hash=sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd \ + --hash=sha256:d8c112f7a90d8ca5d20213aa41eac690bb50a76da153e3afb3886418e61cb22e \ + --hash=sha256:d9890d68c45d1aeac5178ded1d1cccf3bc8d7accf1f976f79bf63099fb16e4bd \ + --hash=sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0 \ + --hash=sha256:db6a3810eec08280a172a6cd541ff4a5f6a97b161d93ec94e6c4018917deb6b7 \ + --hash=sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7 \ + --hash=sha256:e167bf899c3d724f9662ef00b4f7fef87a19c22b2fead198a6f68b263618df52 \ + --hash=sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0 \ + --hash=sha256:e5b1413361cef15340ab9dc61523e653d25723e82d488ef7d60a12878227ed50 \ + --hash=sha256:ecab51ad2462197a4c000b6d5701fc8585b80eecb90583635d7e327b7b6923eb \ + --hash=sha256:ed3b94c5e362a8a84d69642dbeac615452e8af9b8eb825b7bc9f31a53a1051e2 \ + --hash=sha256:ed8358ae7d94ffb7c397cecb62cbac9578a83ecefc1eba27b9090ee910e2efb6 \ + --hash=sha256:edfdcae97cdc5d1a89477c436b61f472c4d40971774ac4729c613b4b133163cb \ + --hash=sha256:ee25f82f53262f9ac93bd7e58e47ea1bdcc3393cef815847e397cba17e284210 \ + --hash=sha256:f3be27440f7644ab9a13a6fc86f09cdd90b347c3c5e30c6d6d860de822d7cb53 \ + --hash=sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e \ + --hash=sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605 \ + --hash=sha256:f8d4916a81697faec6cb724a273bd5457e4c6c43d82b29f9dc02c5542fd21fc9 \ + --hash=sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e \ + --hash=sha256:f9867e55590e0855bcec60d4f9a092b69476db64573c9fe17e92b0c50614c16a \ + --hash=sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773 + # via + # -c ../third_party/python/requirements.txt + # aiohttp + # yarl +orjson==3.11.4 \ + --hash=sha256:01ee5487fefee21e6910da4c2ee9eef005bee568a0879834df86f888d2ffbdd9 \ + --hash=sha256:03bfa548cf35e3f8b3a96c4e8e41f753c686ff3d8e182ce275b1751deddab58c \ + --hash=sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a \ + --hash=sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a \ + --hash=sha256:0a54d6635fa3aaa438ae32e8570b9f0de36f3f6562c308d2a2a452e8b0592db1 \ + --hash=sha256:0b2eba969ea4203c177c7b38b36c69519e6067ee68c34dc37081fac74c796e10 \ + --hash=sha256:0baa0ea43cfa5b008a28d3c07705cf3ada40e5d347f0f44994a64b1b7b4b5350 \ + --hash=sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73 \ + --hash=sha256:149d95d5e018bdd822e3f38c103b1a7c91f88d38a88aada5c4e9b3a73a244241 \ + --hash=sha256:1e3704d35e47d5bee811fb1cbd8599f0b4009b14d451c4c57be5a7e25eb89a13 \ + --hash=sha256:1e539e382cf46edec157ad66b0b0872a90d829a6b71f17cb633d6c160a223155 \ + --hash=sha256:23ef7abc7fca96632d8174ac115e668c1e931b8fe4dde586e92a500bf1914dcc \ + --hash=sha256:26a20f3fbc6c7ff2cb8e89c4c5897762c9d88cf37330c6a117312365d6781d54 \ + --hash=sha256:2c82e4f0b1c712477317434761fbc28b044c838b6b1240d895607441412371ac \ + --hash=sha256:2d6737d0e616a6e053c8b4acc9eccea6b6cce078533666f32d140e4f85002534 \ + --hash=sha256:3740bffd9816fc0326ddc406098a3a8f387e42223f5f455f2a02a9f834ead80c \ + --hash=sha256:38aa9e65c591febb1b0aed8da4d469eba239d434c218562df179885c94e1a3ad \ + --hash=sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d \ + --hash=sha256:3b2427ed5791619851c52a1261b45c233930977e7de8cf36de05636c708fa905 \ + --hash=sha256:3c36e524af1d29982e9b190573677ea02781456b2e537d5840e4538a5ec41907 \ + --hash=sha256:3d40d46f348c0321df01507f92b95a377240c4ec31985225a6668f10e2676f9a \ + --hash=sha256:3e0a700c4b82144b72946b6629968df9762552ee1344bfdb767fecdd634fbd5a \ + --hash=sha256:405261b0a8c62bcbd8e2931c26fdc08714faf7025f45531541e2b29e544b545b \ + --hash=sha256:41bf25fb39a34cf8edb4398818523277ee7096689db352036a9e8437f2f3ee6b \ + --hash=sha256:42d43a1f552be1a112af0b21c10a5f553983c2a0938d2bbb8ecd8bc9fb572803 \ + --hash=sha256:4806363144bb6e7297b8e95870e78d30a649fdc4e23fc84daa80c8ebd366ce44 \ + --hash=sha256:525021896afef44a68148f6ed8a8bf8375553d6066c7f48537657f64823565b9 \ + --hash=sha256:5c3aedecfc1beb988c27c79d52ebefab93b6c3921dbec361167e6559aba2d36d \ + --hash=sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9 \ + --hash=sha256:5d7feb0741ebb15204e748f26c9638e6665a5fa93c37a2c73d64f1669b0ddc63 \ + --hash=sha256:5e59d23cd93ada23ec59a96f215139753fbfe3a4d989549bcb390f8c00370b39 \ + --hash=sha256:600e0e9ca042878c7fdf189cf1b028fe2c1418cc9195f6cb9824eb6ed99cb938 \ + --hash=sha256:622463ab81d19ef3e06868b576551587de8e4d518892d1afab71e0fbc1f9cffc \ + --hash=sha256:624f3951181eb46fc47dea3d221554e98784c823e7069edb5dbd0dc826ac909b \ + --hash=sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6 \ + --hash=sha256:65fd2f5730b1bf7f350c6dc896173d3460d235c4be007af73986d7cd9a2acd23 \ + --hash=sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0 \ + --hash=sha256:6bb6bb41b14c95d4f2702bce9975fda4516f1db48e500102fc4d8119032ff045 \ + --hash=sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839 \ + --hash=sha256:6e18a5c15e764e5f3fc569b47872450b4bcea24f2a6354c0a0e95ad21045d5a9 \ + --hash=sha256:6e3f20be9048941c7ffa8fc523ccbd17f82e24df1549d1d1fe9317712d19938e \ + --hash=sha256:724ca721ecc8a831b319dcd72cfa370cc380db0bf94537f08f7edd0a7d4e1780 \ + --hash=sha256:78b999999039db3cf58f6d230f524f04f75f129ba3d1ca2ed121f8657e575d3d \ + --hash=sha256:7bbf9b333f1568ef5da42bc96e18bf30fd7f8d54e9ae066d711056add508e415 \ + --hash=sha256:80fd082f5dcc0e94657c144f1b2a3a6479c44ad50be216cf0c244e567f5eae19 \ + --hash=sha256:842289889de515421f3f224ef9c1f1efb199a32d76d8d2ca2706fa8afe749549 \ + --hash=sha256:87255b88756eab4a68ec61837ca754e5d10fa8bc47dc57f75cedfeaec358d54c \ + --hash=sha256:8873812c164a90a79f65368f8f96817e59e35d0cc02786a5356f0e2abed78040 \ + --hash=sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a \ + --hash=sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196 \ + --hash=sha256:94f206766bf1ea30e1382e4890f763bd1eefddc580e08fec1ccdc20ddd95c827 \ + --hash=sha256:95713e5fc8af84d8edc75b785d2386f653b63d62b16d681687746734b4dfc0be \ + --hash=sha256:977c393f2e44845ce1b540e19a786e9643221b3323dae190668a98672d43fb23 \ + --hash=sha256:97eb5942c7395a171cbfecc4ef6701fc3c403e762194683772df4c54cfbb2210 \ + --hash=sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436 \ + --hash=sha256:9fdc3ae730541086158d549c97852e2eea6820665d4faf0f41bf99df41bc11ea \ + --hash=sha256:a69ab657a4e6733133a3dca82768f2f8b884043714e8d2b9ba9f52b6efef5c44 \ + --hash=sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de \ + --hash=sha256:aac364c758dc87a52e68e349924d7e4ded348dedff553889e4d9f22f74785316 \ + --hash=sha256:ad355e8308493f527d41154e9053b86a5be892b3b359a5c6d5d95cda23601cb2 \ + --hash=sha256:ad73ede24f9083614d6c4ca9a85fe70e33be7bf047ec586ee2363bc7418fe4d7 \ + --hash=sha256:af02ff34059ee9199a3546f123a6ab4c86caf1708c79042caf0820dc290a6d4f \ + --hash=sha256:afb14052690aa328cc118a8e09f07c651d301a72e44920b887c519b313d892ff \ + --hash=sha256:b13c478fa413d4b4ee606ec8e11c3b2e52683a640b006bb586b3041c2ca5f606 \ + --hash=sha256:b58430396687ce0f7d9eeb3dd47761ca7d8fda8e9eb92b3077a7a353a75efefa \ + --hash=sha256:bba5118143373a86f91dadb8df41d9457498226698ebdf8e11cbb54d5b0e802d \ + --hash=sha256:bfc2a484cad3585e4ba61985a6062a4c2ed5c7925db6d39f1fa267c9d166487f \ + --hash=sha256:c6dbf422894e1e3c80a177133c0dda260f81428f9de16d61041949f6a2e5c140 \ + --hash=sha256:c8a7517482667fb9f0ff1b2f16fe5829296ed7a655d04d68cd9711a4d8a4e708 \ + --hash=sha256:caa447f2b5356779d914658519c874cf3b7629e99e63391ed519c28c8aea4919 \ + --hash=sha256:d38d2bc06d6415852224fcc9c0bfa834c25431e466dc319f0edd56cca81aa96e \ + --hash=sha256:d4371de39319d05d3f482f372720b841c841b52f5385bd99c61ed69d55d9ab50 \ + --hash=sha256:d58c166a18f44cc9e2bad03a327dc2d1a3d2e85b847133cfbafd6bfc6719bd79 \ + --hash=sha256:d5c54a6d76e3d741dcc3f2707f8eeb9ba2a791d3adbf18f900219b62942803b1 \ + --hash=sha256:d63076d625babab9db5e7836118bdfa086e60f37d8a174194ae720161eb12394 \ + --hash=sha256:da9e5301f1c2caa2a9a4a303480d79c9ad73560b2e7761de742ab39fe59d9175 \ + --hash=sha256:e10b4d65901da88845516ce9f7f9736f9638d19a1d483b3883dc0182e6e5edba \ + --hash=sha256:e2985ce8b8c42d00492d0ed79f2bd2b6460d00f2fa671dfde4bf2e02f49bf5c6 \ + --hash=sha256:e2d5d5d798aba9a0e1fede8d853fa899ce2cb930ec0857365f700dffc2c7af6a \ + --hash=sha256:e34dbd508cb91c54f9c9788923daca129fe5b55c5b4eebe713bf5ed3791280cf \ + --hash=sha256:e3aa2118a3ece0d25489cbe48498de8a5d580e42e8d9979f65bf47900a15aba1 \ + --hash=sha256:e41fd3b3cac850eaae78232f37325ed7d7436e11c471246b87b2cd294ec94853 \ + --hash=sha256:f28485bdca8617b79d44627f5fb04336897041dfd9fa66d383a49d09d86798bc \ + --hash=sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5 \ + --hash=sha256:fa9627eba4e82f99ca6d29bc967f09aba446ee2b5a1ea728949ede73d313f5d3 \ + --hash=sha256:fb1c37c71cad991ef4d89c7a634b5ffb4447dbd7ae3ae13e8f5ee7f1775e7ab1 \ + --hash=sha256:fb6a03a678085f64b97f9d4a9ae69376ce91a3a9e9b56a82b1580d8e1d501aff + # via taskcluster-taskgraph +propcache==0.3.2 \ + --hash=sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c \ + --hash=sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81 \ + --hash=sha256:06766d8f34733416e2e34f46fea488ad5d60726bb9481d3cddf89a6fa2d9603f \ + --hash=sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6 \ + --hash=sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535 \ + --hash=sha256:0b8d2f607bd8f80ddc04088bc2a037fdd17884a6fcadc47a96e334d72f3717be \ + --hash=sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba \ + --hash=sha256:0d0fda578d1dc3f77b6b5a5dce3b9ad69a8250a891760a548df850a5e8da87f3 \ + --hash=sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0 \ + --hash=sha256:1f43837d4ca000243fd7fd6301947d7cb93360d03cd08369969450cc6b2ce3b4 \ + --hash=sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168 \ + --hash=sha256:2183111651d710d3097338dd1893fcf09c9f54e27ff1a8795495a16a469cc90b \ + --hash=sha256:21d8759141a9e00a681d35a1f160892a36fb6caa715ba0b832f7747da48fb6ea \ + --hash=sha256:22d9962a358aedbb7a2e36187ff273adeaab9743373a272976d2e348d08c7770 \ + --hash=sha256:261df2e9474a5949c46e962065d88eb9b96ce0f2bd30e9d3136bcde84befd8f2 \ + --hash=sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892 \ + --hash=sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154 \ + --hash=sha256:2a4092e8549031e82facf3decdbc0883755d5bbcc62d3aea9d9e185549936dcf \ + --hash=sha256:2ca6d378f09adb13837614ad2754fa8afaee330254f404299611bce41a8438cb \ + --hash=sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1 \ + --hash=sha256:31248e44b81d59d6addbb182c4720f90b44e1efdc19f58112a3c3a1615fb47ef \ + --hash=sha256:34a624af06c048946709f4278b4176470073deda88d91342665d95f7c6270fbe \ + --hash=sha256:36c8d9b673ec57900c3554264e630d45980fd302458e4ac801802a7fd2ef7897 \ + --hash=sha256:3def3da3ac3ce41562d85db655d18ebac740cb3fa4367f11a52b3da9d03a5cc3 \ + --hash=sha256:404d70768080d3d3bdb41d0771037da19d8340d50b08e104ca0e7f9ce55fce70 \ + --hash=sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330 \ + --hash=sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44 \ + --hash=sha256:4927842833830942a5d0a56e6f4839bc484785b8e1ce8d287359794818633ba0 \ + --hash=sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88 \ + --hash=sha256:4ba3fef1c30f306b1c274ce0b8baaa2c3cdd91f645c48f06394068f37d3837a1 \ + --hash=sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3 \ + --hash=sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43 \ + --hash=sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4 \ + --hash=sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1 \ + --hash=sha256:55ffda449a507e9fbd4aca1a7d9aa6753b07d6166140e5a18d2ac9bc49eac220 \ + --hash=sha256:5745bc7acdafa978ca1642891b82c19238eadc78ba2aaa293c6863b304e552d7 \ + --hash=sha256:59d61f6970ecbd8ff2e9360304d5c8876a6abd4530cb752c06586849ac8a9dc9 \ + --hash=sha256:5f559e127134b07425134b4065be45b166183fdcb433cb6c24c8e4149056ad50 \ + --hash=sha256:5f57aa0847730daceff0497f417c9de353c575d8da3579162cc74ac294c5369e \ + --hash=sha256:6107ddd08b02654a30fb8ad7a132021759d750a82578b94cd55ee2772b6ebea2 \ + --hash=sha256:62180e0b8dbb6b004baec00a7983e4cc52f5ada9cd11f48c3528d8cfa7b96a66 \ + --hash=sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1 \ + --hash=sha256:64a67fb39229a8a8491dd42f864e5e263155e729c2e7ff723d6e25f596b1e8cb \ + --hash=sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe \ + --hash=sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c \ + --hash=sha256:70bd8b9cd6b519e12859c99f3fc9a93f375ebd22a50296c3a295028bea73b9e7 \ + --hash=sha256:7435d766f978b4ede777002e6b3b6641dd229cd1da8d3d3106a45770365f9ad9 \ + --hash=sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e \ + --hash=sha256:76cace5d6b2a54e55b137669b30f31aa15977eeed390c7cbfb1dafa8dfe9a701 \ + --hash=sha256:7a2368eed65fc69a7a7a40b27f22e85e7627b74216f0846b04ba5c116e191ec9 \ + --hash=sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8 \ + --hash=sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b \ + --hash=sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f \ + --hash=sha256:85871b050f174bc0bfb437efbdb68aaf860611953ed12418e4361bc9c392749e \ + --hash=sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02 \ + --hash=sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e \ + --hash=sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1 \ + --hash=sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10 \ + --hash=sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387 \ + --hash=sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198 \ + --hash=sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f \ + --hash=sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b \ + --hash=sha256:9bec58347a5a6cebf239daba9bda37dffec5b8d2ce004d9fe4edef3d2815137e \ + --hash=sha256:9da1cf97b92b51253d5b68cf5a2b9e0dafca095e36b7f2da335e27dc6172a614 \ + --hash=sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252 \ + --hash=sha256:a2dc1f4a1df4fecf4e6f68013575ff4af84ef6f478fe5344317a65d38a8e6dc9 \ + --hash=sha256:a7fad897f14d92086d6b03fdd2eb844777b0c4d7ec5e3bac0fbae2ab0602bbe5 \ + --hash=sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c \ + --hash=sha256:abb7fa19dbf88d3857363e0493b999b8011eea856b846305d8c0512dfdf8fbb1 \ + --hash=sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770 \ + --hash=sha256:aff2e4e06435d61f11a428360a932138d0ec288b0a31dd9bd78d200bd4a2b339 \ + --hash=sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251 \ + --hash=sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db \ + --hash=sha256:be29c4f4810c5789cf10ddf6af80b041c724e629fa51e308a7a0fb19ed1ef7bf \ + --hash=sha256:c0075bf773d66fa8c9d41f66cc132ecc75e5bb9dd7cce3cfd14adc5ca184cb95 \ + --hash=sha256:c144ca294a204c470f18cf4c9d78887810d04a3e2fbb30eea903575a779159df \ + --hash=sha256:c5c2a784234c28854878d68978265617aa6dc0780e53d44b4d67f3651a17a9a2 \ + --hash=sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945 \ + --hash=sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474 \ + --hash=sha256:cc2782eb0f7a16462285b6f8394bbbd0e1ee5f928034e941ffc444012224171b \ + --hash=sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615 \ + --hash=sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06 \ + --hash=sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33 \ + --hash=sha256:d4a996adb6904f85894570301939afeee65f072b4fd265ed7e569e8d9058e4ec \ + --hash=sha256:d81ac3ae39d38588ad0549e321e6f773a4e7cc68e7751524a22885d5bbadf886 \ + --hash=sha256:db429c19a6c7e8a1c320e6a13c99799450f411b02251fb1b75e6217cf4a14fcb \ + --hash=sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1 \ + --hash=sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05 \ + --hash=sha256:e514326b79e51f0a177daab1052bc164d9d9e54133797a3a58d24c9c87a3fe6d \ + --hash=sha256:e53af8cb6a781b02d2ea079b5b853ba9430fcbe18a8e3ce647d5982a3ff69f39 \ + --hash=sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67 \ + --hash=sha256:eef914c014bf72d18efb55619447e0aecd5fb7c2e3fa7441e2e5d6099bddff7e \ + --hash=sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28 \ + --hash=sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a \ + --hash=sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394 \ + --hash=sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725 \ + --hash=sha256:fb075ad271405dcad8e2a7ffc9a750a3bf70e533bd86e89f0603e607b93aa64c \ + --hash=sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206 + # via + # -c ../third_party/python/requirements.txt + # aiohttp + # yarl +pygments==2.19.1 \ + --hash=sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f \ + --hash=sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c + # via + # -c ../third_party/python/requirements.txt + # rich +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 + # via + # -c ../third_party/python/requirements.txt + # arrow + # taskcluster +python-slugify==8.0.4 \ + --hash=sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8 \ + --hash=sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +pyyaml==6.0.3 \ + --hash=sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c \ + --hash=sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a \ + --hash=sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3 \ + --hash=sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956 \ + --hash=sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6 \ + --hash=sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c \ + --hash=sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65 \ + --hash=sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a \ + --hash=sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0 \ + --hash=sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b \ + --hash=sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1 \ + --hash=sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6 \ + --hash=sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7 \ + --hash=sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e \ + --hash=sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007 \ + --hash=sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310 \ + --hash=sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4 \ + --hash=sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9 \ + --hash=sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295 \ + --hash=sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea \ + --hash=sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0 \ + --hash=sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e \ + --hash=sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac \ + --hash=sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9 \ + --hash=sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7 \ + --hash=sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35 \ + --hash=sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb \ + --hash=sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b \ + --hash=sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69 \ + --hash=sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5 \ + --hash=sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b \ + --hash=sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c \ + --hash=sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369 \ + --hash=sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd \ + --hash=sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824 \ + --hash=sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198 \ + --hash=sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065 \ + --hash=sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c \ + --hash=sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c \ + --hash=sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764 \ + --hash=sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196 \ + --hash=sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b \ + --hash=sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00 \ + --hash=sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac \ + --hash=sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8 \ + --hash=sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e \ + --hash=sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28 \ + --hash=sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3 \ + --hash=sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5 \ + --hash=sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4 \ + --hash=sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b \ + --hash=sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf \ + --hash=sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5 \ + --hash=sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702 \ + --hash=sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8 \ + --hash=sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788 \ + --hash=sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da \ + --hash=sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d \ + --hash=sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc \ + --hash=sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c \ + --hash=sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba \ + --hash=sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f \ + --hash=sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917 \ + --hash=sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 \ + --hash=sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26 \ + --hash=sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f \ + --hash=sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b \ + --hash=sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be \ + --hash=sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c \ + --hash=sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3 \ + --hash=sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6 \ + --hash=sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926 \ + --hash=sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter + # taskcluster-taskgraph +redo==3.0.0 \ + --hash=sha256:52a14200004d6708924a547b31b7d1c717cb36b944f3a5c7b176e0d61ab81eef \ + --hash=sha256:66905396b2882577fa4bf7edb90fee081db2b98992d303f12e3f898ac7f7bd56 + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +requests==2.32.4 \ + --hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \ + --hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter + # requests-unixsocket + # taskcluster + # taskcluster-taskgraph +requests-unixsocket==0.4.1 \ + --hash=sha256:60c4942e9dbecc2f64d611039fb1dfc25da382083c6434ac0316dca3ff908f4d \ + --hash=sha256:b2596158c356ecee68d27ba469a52211230ac6fb0cde8b66afb19f0ed47a1995 + # via + # -c ../third_party/python/requirements.txt + # -r requirements.in +rich==14.0.0 \ + --hash=sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0 \ + --hash=sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725 + # via + # -c ../third_party/python/requirements.txt + # cookiecutter +rtoml==0.13.0 ; python_full_version >= '3.10' \ + --hash=sha256:020fe78f7e53b9fef1762cd3734374baa506b225dd72ee7603242b11f33602c3 \ + --hash=sha256:0434e3d196375b82cfa5dc155cad6c78fd96c2cc6692e1d887505e1d99900986 \ + --hash=sha256:0d94c29362722ef39b7455d54b1d845f3137c4c593d5619f3beac3c17dc54d8a \ + --hash=sha256:0e904779134a2d9658edbdc58392a84f7a531620afdd2ded67a6bb792b2cfb86 \ + --hash=sha256:1292bbf888f75ded2599ec774fd404a9bd1b91ad5e08702c93c8b1ea8d297a94 \ + --hash=sha256:18a141e0ea5ec8e0be88726d768956affe4a937b109421567cbd4dfdc5016d0c \ + --hash=sha256:1af5785c1f0119d523c77461de8c910e87f6254d3786f9768a8e16ec8250d42d \ + --hash=sha256:1e15f554e62b3b1661bd2ee5972f0a2d3dca925753481c6022b3f31d05634bb4 \ + --hash=sha256:1f4ceacdeab625f9585006976961f65165318d494f13f2cd114880576996f8ab \ + --hash=sha256:2823c41a3d0d019f3a0724e3a7c95439d6e034acc5251ed5c8129a5c8edcfb0a \ + --hash=sha256:2fe4a2443246b56e1fb25f298acb7f3d93da0623d52ef76dbfb2abeb0cfbdfaf \ + --hash=sha256:3bb30794ae9302f94cfba9b623332b4fa4a9a94f63a8bad84a3ef1b117ae4d7b \ + --hash=sha256:44ef5f5deb6eb735b93074dd56e7039c3c4929055e91feb83e2032e4c2bd1665 \ + --hash=sha256:479b76b02e66985621b06856e090917e41114922a20dce12fc2fe8555c2305be \ + --hash=sha256:49be00b28d35da2b60067e0340d163fdb7bf30fc38bc904d7395e655b00f8400 \ + --hash=sha256:4a5c0dfed4734f6738eee8f6459366ccb15d67bf0c1384e2675ae8285425f9fa \ + --hash=sha256:4cb9d95d72a9cba3abd3972cabafef32bf71a50bc4c04386f9ed1a8ee964761a \ + --hash=sha256:4f1c6fa1c31f2baabc1436e8b87997da2b960e61a5a4dac52f7f4e4ef7b6810c \ + --hash=sha256:55b003f31a87f49dd941d02aac84b7c4d8cfbd1dfcc80d7a6a71835c72ddd74f \ + --hash=sha256:564903f2ea90191ac172f89a47a3d6b7d633ff7e2ac92b82590924ad6e1452ba \ + --hash=sha256:566f8f8e6dc2e965972b0d8f7c856e4920c443815e9d29a895ae04d588d9b48f \ + --hash=sha256:59f53f569118409dca6089816f35b76b00548777e103ca8536eebb4fc899213c \ + --hash=sha256:5a0939d03ce3dc5340645e0cb191e82d248dff5a77d6646139c5f9ac8531799d \ + --hash=sha256:5c874416441b7a7a3b3c321979fb778bd1482b550d1903d6821a4ddcfb5691bb \ + --hash=sha256:5f315170541dafcfc49cfde173e554b3be11a45f4052933fd9aff676946be72d \ + --hash=sha256:633a23a91b0ce5d4995a72342110ebbaa2b5963b78d4a27a2883406beb19709f \ + --hash=sha256:642ad0162120268a62007774a41ad62521cc657c75c6c6876faeb8bd0000fe38 \ + --hash=sha256:763f8b86db927e1bb6e6d65c676a03c6431f1de1037ae896c3a0984353573547 \ + --hash=sha256:7fb0c9f266136a2072d082bc781e49c27422e740505788573ad9cdc58015f58e \ + --hash=sha256:813b26bf63abe4e901cc1a32d13ee8d2a7d69fcfa44ddd16c02d6a3cd35276f5 \ + --hash=sha256:8377affbcf36c4fc8360778015c82972b4d0134faacee426ec37e8e7afcf3855 \ + --hash=sha256:85428686fb8b8f7958ec748ffa30f3de58dc6816df46178cbd8911b3cf39123a \ + --hash=sha256:8e80308bcce3c10ec3928385fb1dcfeb3e8e4978d492b92d016fb88a65930b8d \ + --hash=sha256:956fcce8ec80ea59e32f85e8897cfaabd63a2a945aad1d9e439274ee71b9a6f6 \ + --hash=sha256:95a229595254449cbf0b2e396f1b444ed8a0c259f78bab505326bb2a1e4239ff \ + --hash=sha256:974522c887b47abc0bb62ee8ae9e44d3a0c2cdac9d60ba0ed01c5a40df0ea424 \ + --hash=sha256:9c7ade406218833fbbc97ceca92050c02f4d724045770eb9020be1b3d97df455 \ + --hash=sha256:9fb0792ce87a49bb7ba8e9332854ca0b178c6f86462ae1142813b2b780875633 \ + --hash=sha256:a3bf2a94df8bb22642fbd263b17aa6b7822384a756204c1da9ae05c4c5c749f9 \ + --hash=sha256:a5b2543992cc16c33dd055dcd098b2cd8f6c13a444e635f6ca4f96a104431235 \ + --hash=sha256:ac04606ae7ffa744d07f0311bb45b3ffcef88c3fa7bb412c26be2c38209c2dbc \ + --hash=sha256:ad2e3e3accec89d112a431fa0991c9dd2f1ca5282e385a75f6697b5de6910ef9 \ + --hash=sha256:ad9988a3a4bd11e45d8cc2064c16397dfe6686cef18f2cfdeb7e93bdb2ca9775 \ + --hash=sha256:ae8beee0988a650804b4fb9ec60b62ed8060ee57e643dad914fb797c6ef4e77f \ + --hash=sha256:b756dc66682b89f3fa2dea3dc17d2acf7ca2af416ba7a36f19e97340f2b3ffa4 \ + --hash=sha256:b844b95939cc4f7b88d99fc874a191957d218ecf057bdc381745ad58e953361b \ + --hash=sha256:ba2fbc1f1fa7bff8d722fd2539dc9962064b6193b90424625b2d4fe87726f945 \ + --hash=sha256:c328fb7d90420c9c75073012f9b44395ab595b139930034ddad2a561c536f9ad \ + --hash=sha256:c84d8b77cd0dbb5cf1da33846d5c5fd02536c06ab5ab560e90e4ca2920942b58 \ + --hash=sha256:cadb00e9a4d09832d2842ae18638d27103c992ccfbc5a702eb14b6b40e4e0ed9 \ + --hash=sha256:cfe6ed73740ba93f15c070fd8236efeb4d57d0bcc8852c73f25c5b9dd1b8e6ba \ + --hash=sha256:d2f248c5e9a3a909a4ab3da79586da9753e4f4b3e5d5d085179dfb774a001399 \ + --hash=sha256:d7435f2b11384216461e2355a2795e67dc812d701f66890bd43680b6a8e365ce \ + --hash=sha256:d780e33792d37b8195f7f559c720281b09ce3d3db3a37e464033ba193c2d07c9 \ + --hash=sha256:e289dc70d1ad0a81266b0f85ffbbc2a0e3ab58c1aedbd2bd5f46cfd8d3da5afe \ + --hash=sha256:e5634d2079c8912958791973e0a4cfed311660286bfb6b14698294735ede7b7d \ + --hash=sha256:e94c60ee00b6625c1e0f42d411edc8aa1c4fcf09c183347eb362a7b87e36f199 \ + --hash=sha256:eae970f8613a4de80ce8f250e0c58a17b889fbf4a2de200820adb6de6add7e5f \ + --hash=sha256:eafa7371184cf88fd962986f019150e07f473387aabfe2bd5fb8fbb5d1a07802 \ + --hash=sha256:ed5120b56e568df8f297e7a8228b2f2c258daaee3af8b690584cbc0dce1d7f05 \ + --hash=sha256:f0333ce68b4aeb18cccfaafcded3461a2c6c1ccca0d925e79df154061d914323 \ + --hash=sha256:f4a8896475cfb4ef68fd2dda2ad3aacecb6d9c40696e85f47ad8b18b8f003b42 \ + --hash=sha256:f513e54f6788038bb6473564544b27cecd48dc2666fc066eb09f3759df4e3b42 \ + --hash=sha256:f8a2d9c8234d245334765a89f65b0d934f403629423f70f30a688fc8194e8ed1 \ + --hash=sha256:ff2f38ffbd3c8bfdc60513ef8efdc732fa205bd53a45226559df5605cb1431d5 + # via -r requirements.in +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 + # via + # -c ../third_party/python/requirements.txt + # mohawk + # python-dateutil +slugid==2.0.0 \ + --hash=sha256:a950d98b72691178bdd4d6c52743c4a2aa039207cf7a97d71060a111ff9ba297 \ + --hash=sha256:aec8b0e01c4ad32e38e12d609eab3ec912fd129aaf6b2ded0199b56a5f8fd67c + # via + # -c ../third_party/python/requirements.txt + # taskcluster + # taskcluster-taskgraph +taskcluster==91.1.0 \ + --hash=sha256:87cad1b7c54689c5d635a9422c59554cf648014d67af3cb3a30af20bb6f81879 \ + --hash=sha256:e58fbcdcd33ba9c4a4dbd5a71cb7cbe2dc7f4918cd92025dd53d590ab85f472b + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +taskcluster-taskgraph==18.0.3 \ + --hash=sha256:612c9267f24b195f0b0e3ec409eae8a5b3e5b977d9a2643055125ef8adee00c7 \ + --hash=sha256:d37e46f07c1ee98df3d0fc4915f6b66d115dd3faba5249907626ff378e6a3971 + # via + # -c ../third_party/python/requirements.txt + # -r requirements.in + # mozilla-taskgraph +taskcluster-urls==13.0.1 \ + --hash=sha256:5e25e7e6818e8877178b175ff43d2e6548afad72694aa125f404a7329ece0973 \ + --hash=sha256:b25e122ecec249c4299ac7b20b08db76e3e2025bdaeb699a9d444556de5fd367 \ + --hash=sha256:f66dcbd6572a6216ab65949f0fa0b91f2df647918028436c384e6af5cd12ae2b + # via + # -c ../third_party/python/requirements.txt + # taskcluster + # taskcluster-taskgraph +text-unidecode==1.3 \ + --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ + --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 + # via + # -c ../third_party/python/requirements.txt + # python-slugify +types-python-dateutil==2.9.0.20250516 \ + --hash=sha256:13e80d6c9c47df23ad773d54b2826bd52dbbb41be87c3f339381c1700ad21ee5 \ + --hash=sha256:2b2b3f57f9c6a61fba26a9c0ffb9ea5681c9b83e69cd897c6b5f668d9c0cab93 + # via + # -c ../third_party/python/requirements.txt + # arrow +typing-extensions==4.15.0 ; python_full_version < '3.11' \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 + # via + # -c ../third_party/python/requirements.txt + # multidict + # rich +urllib3==2.5.0 \ + --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ + --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc + # via + # -c ../third_party/python/requirements.txt + # requests +voluptuous==0.15.2 \ + --hash=sha256:016348bc7788a9af9520b1764ebd4de0df41fe2138ebe9e06fa036bf86a65566 \ + --hash=sha256:6ffcab32c4d3230b4d2af3a577c87e1908a714a11f6f95570456b1849b0279aa + # via + # -c ../third_party/python/requirements.txt + # taskcluster-taskgraph +yarl==1.20.1 \ + --hash=sha256:03aa1e041727cb438ca762628109ef1333498b122e4c76dd858d186a37cec845 \ + --hash=sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53 \ + --hash=sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a \ + --hash=sha256:0c869f2651cc77465f6cd01d938d91a11d9ea5d798738c1dc077f3de0b5e5fed \ + --hash=sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2 \ + --hash=sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02 \ + --hash=sha256:12e768f966538e81e6e7550f9086a6236b16e26cd964cf4df35349970f3551cf \ + --hash=sha256:14a85f3bd2d7bb255be7183e5d7d6e70add151a98edf56a770d6140f5d5f4010 \ + --hash=sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3 \ + --hash=sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef \ + --hash=sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04 \ + --hash=sha256:1f8a891e4a22a89f5dde7862994485e19db246b70bb288d3ce73a34422e55b23 \ + --hash=sha256:21242b4288a6d56f04ea193adde174b7e347ac46ce6bc84989ff7c1b1ecea84e \ + --hash=sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6 \ + --hash=sha256:26ef53a9e726e61e9cd1cda6b478f17e350fb5800b4bd1cd9fe81c4d91cfeb2e \ + --hash=sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a \ + --hash=sha256:2c7b34d804b8cf9b214f05015c4fee2ebe7ed05cf581e7192c06555c71f4446a \ + --hash=sha256:2c89b5c792685dd9cd3fa9761c1b9f46fc240c2a3265483acc1565769996a3f8 \ + --hash=sha256:30c41ad5d717b3961b2dd785593b67d386b73feca30522048d37298fee981805 \ + --hash=sha256:33f29ecfe0330c570d997bcf1afd304377f2e48f61447f37e846a6058a4d33b2 \ + --hash=sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458 \ + --hash=sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc \ + --hash=sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d \ + --hash=sha256:41493b9b7c312ac448b7f0a42a089dffe1d6e6e981a2d76205801a023ed26a2b \ + --hash=sha256:41ebd28167bc6af8abb97fec1a399f412eec5fd61a3ccbe2305a18b84fb4ca73 \ + --hash=sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7 \ + --hash=sha256:46b5e0ccf1943a9a6e766b2c2b8c732c55b34e28be57d8daa2b3c1d1d4009309 \ + --hash=sha256:47ee6188fea634bdfaeb2cc420f5b3b17332e6225ce88149a17c413c77ff269e \ + --hash=sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698 \ + --hash=sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c \ + --hash=sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691 \ + --hash=sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16 \ + --hash=sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f \ + --hash=sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f \ + --hash=sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004 \ + --hash=sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3 \ + --hash=sha256:57edc88517d7fc62b174fcfb2e939fbc486a68315d648d7e74d07fac42cec240 \ + --hash=sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28 \ + --hash=sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513 \ + --hash=sha256:597f40615b8d25812f14562699e287f0dcc035d25eb74da72cae043bb884d773 \ + --hash=sha256:59febc3969b0781682b469d4aca1a5cab7505a4f7b85acf6db01fa500fa3f6ba \ + --hash=sha256:6032e6da6abd41e4acda34d75a816012717000fa6839f37124a47fcefc49bec4 \ + --hash=sha256:62915e6688eb4d180d93840cda4110995ad50c459bf931b8b3775b37c264af1e \ + --hash=sha256:642980ef5e0fa1de5fa96d905c7e00cb2c47cb468bfcac5a18c58e27dbf8d8d1 \ + --hash=sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31 \ + --hash=sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16 \ + --hash=sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819 \ + --hash=sha256:69e9b141de5511021942a6866990aea6d111c9042235de90e08f94cf972ca03d \ + --hash=sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3 \ + --hash=sha256:6c4fbf6b02d70e512d7ade4b1f998f237137f1417ab07ec06358ea04f69134f8 \ + --hash=sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf \ + --hash=sha256:749d73611db8d26a6281086f859ea7ec08f9c4c56cec864e52028c8b328db723 \ + --hash=sha256:76d12524d05841276b0e22573f28d5fbcb67589836772ae9244d90dd7d66aa13 \ + --hash=sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1 \ + --hash=sha256:7a8900a42fcdaad568de58887c7b2f602962356908eedb7628eaf6021a6e435b \ + --hash=sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f \ + --hash=sha256:812303eb4aa98e302886ccda58d6b099e3576b1b9276161469c25803a8db277d \ + --hash=sha256:835ab2cfc74d5eb4a6a528c57f05688099da41cf4957cf08cad38647e4a83b30 \ + --hash=sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77 \ + --hash=sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a \ + --hash=sha256:8601bc010d1d7780592f3fc1bdc6c72e2b6466ea34569778422943e1a1f3c389 \ + --hash=sha256:86971e2795584fe8c002356d3b97ef6c61862720eeff03db2a7c86b678d85b3e \ + --hash=sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e \ + --hash=sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c \ + --hash=sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1 \ + --hash=sha256:8f969afbb0a9b63c18d0feecf0db09d164b7a44a053e78a7d05f5df163e43833 \ + --hash=sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b \ + --hash=sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee \ + --hash=sha256:9427925776096e664c39e131447aa20ec738bdd77c049c48ea5200db2237e000 \ + --hash=sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38 \ + --hash=sha256:98c4a7d166635147924aa0bf9bfe8d8abad6fffa6102de9c99ea04a1376f91e8 \ + --hash=sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd \ + --hash=sha256:aef6c4d69554d44b7f9d923245f8ad9a707d971e6209d51279196d8e8fe1ae16 \ + --hash=sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d \ + --hash=sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a \ + --hash=sha256:b5f307337819cdfdbb40193cad84978a029f847b0a357fbe49f712063cfc4f06 \ + --hash=sha256:b982fa7f74c80d5c0c7b5b38f908971e513380a10fecea528091405f519b9ebb \ + --hash=sha256:bad6d131fda8ef508b36be3ece16d0902e80b88ea7200f030a0f6c11d9e508d4 \ + --hash=sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9 \ + --hash=sha256:bea21cdae6c7eb02ba02a475f37463abfe0a01f5d7200121b03e605d6a0439f8 \ + --hash=sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390 \ + --hash=sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8 \ + --hash=sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be \ + --hash=sha256:c7ddf7a09f38667aea38801da8b8d6bfe81df767d9dfc8c88eb45827b195cd1c \ + --hash=sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac \ + --hash=sha256:d0f6500f69e8402d513e5eedb77a4e1818691e8f45e6b687147963514d84b44b \ + --hash=sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5 \ + --hash=sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4 \ + --hash=sha256:d2b6fb3622b7e5bf7a6e5b679a69326b4279e805ed1699d749739a61d242449e \ + --hash=sha256:daadbdc1f2a9033a2399c42646fbd46da7992e868a5fe9513860122d7fe7a73f \ + --hash=sha256:dab096ce479d5894d62c26ff4f699ec9072269d514b4edd630a393223f45a0ee \ + --hash=sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5 \ + --hash=sha256:dd803820d44c8853a109a34e3660e5a61beae12970da479cf44aa2954019bf70 \ + --hash=sha256:df018d92fe22aaebb679a7f89fe0c0f368ec497e3dda6cb81a567610f04501f1 \ + --hash=sha256:df47c55f7d74127d1b11251fe6397d84afdde0d53b90bedb46a23c0e534f9d24 \ + --hash=sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653 \ + --hash=sha256:e42ba79e2efb6845ebab49c7bf20306c4edf74a0b20fc6b2ccdd1a219d12fad3 \ + --hash=sha256:eae7bfe2069f9c1c5b05fc7fe5d612e5bbc089a39309904ee8b829e322dcad00 \ + --hash=sha256:f5a5928ff5eb13408c62a968ac90d43f8322fd56d87008b8f9dabf3c0f6ee983 \ + --hash=sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d \ + --hash=sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7 \ + --hash=sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce \ + --hash=sha256:fe41919b9d899661c5c28a8b4b0acf704510b88f27f0934ac7a7bebdd8938d5e \ + --hash=sha256:ff70f32aa316393eaf8222d518ce9118148eddb8a53073c2403863b41033eed5 + # via + # -c ../third_party/python/requirements.txt + # aiohttp +zstandard==0.25.0 \ + --hash=sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64 \ + --hash=sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a \ + --hash=sha256:05353cef599a7b0b98baca9b068dd36810c3ef0f42bf282583f438caf6ddcee3 \ + --hash=sha256:05df5136bc5a011f33cd25bc9f506e7426c0c9b3f9954f056831ce68f3b6689f \ + --hash=sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6 \ + --hash=sha256:07b527a69c1e1c8b5ab1ab14e2afe0675614a09182213f21a0717b62027b5936 \ + --hash=sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431 \ + --hash=sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250 \ + --hash=sha256:106281ae350e494f4ac8a80470e66d1fe27e497052c8d9c3b95dc4cf1ade81aa \ + --hash=sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f \ + --hash=sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851 \ + --hash=sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3 \ + --hash=sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9 \ + --hash=sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6 \ + --hash=sha256:19796b39075201d51d5f5f790bf849221e58b48a39a5fc74837675d8bafc7362 \ + --hash=sha256:1cd5da4d8e8ee0e88be976c294db744773459d51bb32f707a0f166e5ad5c8649 \ + --hash=sha256:1f3689581a72eaba9131b1d9bdbfe520ccd169999219b41000ede2fca5c1bfdb \ + --hash=sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5 \ + --hash=sha256:223415140608d0f0da010499eaa8ccdb9af210a543fac54bce15babbcfc78439 \ + --hash=sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137 \ + --hash=sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa \ + --hash=sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd \ + --hash=sha256:25f8f3cd45087d089aef5ba3848cd9efe3ad41163d3400862fb42f81a3a46701 \ + --hash=sha256:2b6bd67528ee8b5c5f10255735abc21aa106931f0dbaf297c7be0c886353c3d0 \ + --hash=sha256:2e54296a283f3ab5a26fc9b8b5d4978ea0532f37b231644f367aa588930aa043 \ + --hash=sha256:3756b3e9da9b83da1796f8809dd57cb024f838b9eeafde28f3cb472012797ac1 \ + --hash=sha256:37daddd452c0ffb65da00620afb8e17abd4adaae6ce6310702841760c2c26860 \ + --hash=sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611 \ + --hash=sha256:3b870ce5a02d4b22286cf4944c628e0f0881b11b3f14667c1d62185a99e04f53 \ + --hash=sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b \ + --hash=sha256:4203ce3b31aec23012d3a4cf4a2ed64d12fea5269c49aed5e4c3611b938e4088 \ + --hash=sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e \ + --hash=sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa \ + --hash=sha256:4b14abacf83dfb5c25eb4e4a79520de9e7e205f72c9ee7702f91233ae57d33a2 \ + --hash=sha256:4b6d83057e713ff235a12e73916b6d356e3084fd3d14ced499d84240f3eecee0 \ + --hash=sha256:4d441506e9b372386a5271c64125f72d5df6d2a8e8a2a45a0ae09b03cb781ef7 \ + --hash=sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf \ + --hash=sha256:51526324f1b23229001eb3735bc8c94f9c578b1bd9e867a0a646a3b17109f388 \ + --hash=sha256:53e08b2445a6bc241261fea89d065536f00a581f02535f8122eba42db9375530 \ + --hash=sha256:53f94448fe5b10ee75d246497168e5825135d54325458c4bfffbaafabcc0a577 \ + --hash=sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902 \ + --hash=sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc \ + --hash=sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98 \ + --hash=sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a \ + --hash=sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097 \ + --hash=sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea \ + --hash=sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09 \ + --hash=sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb \ + --hash=sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7 \ + --hash=sha256:75ffc32a569fb049499e63ce68c743155477610532da1eb38e7f24bf7cd29e74 \ + --hash=sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b \ + --hash=sha256:78228d8a6a1c177a96b94f7e2e8d012c55f9c760761980da16ae7546a15a8e9b \ + --hash=sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b \ + --hash=sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91 \ + --hash=sha256:81dad8d145d8fd981b2962b686b2241d3a1ea07733e76a2f15435dfb7fb60150 \ + --hash=sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049 \ + --hash=sha256:89c4b48479a43f820b749df49cd7ba2dbc2b1b78560ecb5ab52985574fd40b27 \ + --hash=sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a \ + --hash=sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00 \ + --hash=sha256:9174f4ed06f790a6869b41cba05b43eeb9a35f8993c4422ab853b705e8112bbd \ + --hash=sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072 \ + --hash=sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c \ + --hash=sha256:9654dbc012d8b06fc3d19cc825af3f7bf8ae242226df5f83936cb39f5fdc846c \ + --hash=sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065 \ + --hash=sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512 \ + --hash=sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1 \ + --hash=sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f \ + --hash=sha256:a4089a10e598eae6393756b036e0f419e8c1d60f44a831520f9af41c14216cf2 \ + --hash=sha256:a51ff14f8017338e2f2e5dab738ce1ec3b5a851f23b18c1ae1359b1eecbee6df \ + --hash=sha256:a5a419712cf88862a45a23def0ae063686db3d324cec7edbe40509d1a79a0aab \ + --hash=sha256:a9ec8c642d1ec73287ae3e726792dd86c96f5681eb8df274a757bf62b750eae7 \ + --hash=sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b \ + --hash=sha256:ab85470ab54c2cb96e176f40342d9ed41e58ca5733be6a893b730e7af9c40550 \ + --hash=sha256:b9af1fe743828123e12b41dd8091eca1074d0c1569cc42e6e1eee98027f2bbd0 \ + --hash=sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea \ + --hash=sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277 \ + --hash=sha256:c19bcdd826e95671065f8692b5a4aa95c52dc7a02a4c5a0cac46deb879a017a2 \ + --hash=sha256:c2ba942c94e0691467ab901fc51b6f2085ff48f2eea77b1a48240f011e8247c7 \ + --hash=sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778 \ + --hash=sha256:ca54090275939dc8ec5dea2d2afb400e0f83444b2fc24e07df7fdef677110859 \ + --hash=sha256:d7541afd73985c630bafcd6338d2518ae96060075f9463d7dc14cfb33514383d \ + --hash=sha256:d8c56bb4e6c795fc77d74d8e8b80846e1fb8292fc0b5060cd8131d522974b751 \ + --hash=sha256:da469dc041701583e34de852d8634703550348d5822e66a0c827d39b05365b12 \ + --hash=sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2 \ + --hash=sha256:e05ab82ea7753354bb054b92e2f288afb750e6b439ff6ca78af52939ebbc476d \ + --hash=sha256:e09bb6252b6476d8d56100e8147b803befa9a12cea144bbe629dd508800d1ad0 \ + --hash=sha256:e29f0cf06974c899b2c188ef7f783607dbef36da4c242eb6c82dcd8b512855e3 \ + --hash=sha256:e59fdc271772f6686e01e1b3b74537259800f57e24280be3f29c8a0deb1904dd \ + --hash=sha256:e7360eae90809efd19b886e59a09dad07da4ca9ba096752e61a2e03c8aca188e \ + --hash=sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f \ + --hash=sha256:ea9d54cc3d8064260114a0bbf3479fc4a98b21dffc89b3459edd506b69262f6e \ + --hash=sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94 \ + --hash=sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708 \ + --hash=sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313 \ + --hash=sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4 \ + --hash=sha256:f604efd28f239cc21b3adb53eb061e2a205dc164be408e553b41ba2ffe0ca15c \ + --hash=sha256:f67e8f1a324a900e75b5e28ffb152bcac9fbed1cc7b43f99cd90f395c4375344 \ + --hash=sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551 \ + --hash=sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01 + # via taskcluster-taskgraph diff --git a/taskcluster/scripts/run-task b/taskcluster/scripts/run-task @@ -577,16 +577,6 @@ def fetch_artifacts(): print_line(b"fetches", b"fetching artifacts\n") fetch_content = shutil.which("fetch-content") - if not fetch_content and os.environ.get("GECKO_PATH"): - fetch_content = os.path.join( - os.environ["GECKO_PATH"], - "third_party", - "python", - "taskcluster_taskgraph", - "taskgraph", - "run-task", - "fetch-content", - ) if not fetch_content or not os.path.isfile(fetch_content): fetch_content = os.path.join(os.path.dirname(__file__), "fetch-content") diff --git a/taskcluster/scripts/setup-run-task.sh b/taskcluster/scripts/setup-run-task.sh diff --git a/taskcluster/test_configs/os-integration.yml b/taskcluster/test_configs/os-integration.yml @@ -6,8 +6,7 @@ # # For each key, if it is a string the task's attribute must match exactly. If # it is a list, the task's attribute must be a value contained in the list. -# For more information, see the `attrmatch` function in: -# https://searchfox.org/mozilla-central/source/third_party/python/taskcluster_taskgraph/taskgraph/util/attributes.py +# For more information, see the `attrmatch` function in `taskgraph.util.attributes`. ### Unittests - kind: &unittest-kinds diff --git a/testing/mozbase/mozinfo/mozinfo/platforminfo.py b/testing/mozbase/mozinfo/mozinfo/platforminfo.py @@ -183,6 +183,7 @@ class PlatformInfo: filename = ( os.environ.get("GECKO_PATH", ".") + "/taskcluster/test_configs/variants.yml" ) + with open(filename) as f: PlatformInfo.variant_data = yaml.safe_load(f.read()) diff --git a/testing/update/mach_commands.py b/testing/update/mach_commands.py @@ -9,6 +9,7 @@ import subprocess import sys import tempfile from dataclasses import dataclass +from enum import Enum from os import environ, makedirs from pathlib import Path from shutil import copytree, unpack_archive @@ -16,12 +17,22 @@ from shutil import copytree, unpack_archive import mozinfo import mozinstall import requests -from gecko_taskgraph.transforms.update_test import ReleaseType from mach.decorators import Command, CommandArgument from mozbuild.base import BinaryNotFoundException from mozlog.structured import commandline from mozrelease.update_verify import UpdateVerifyConfig + +class ReleaseType(Enum): + """Release type - duplicated from gecko_taskgraph.transforms.update_test + to avoid importing taskgraph dependencies at mach command load time.""" + + release = 0 + beta = 1 + esr = 2 + other = 3 + + STAGING_POLICY_PAYLOAD = { "policies": { "AppUpdateURL": "https://stage.balrog.nonprod.cloudops.mozgcp.net/update/6/Firefox/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml" diff --git a/third_party/python/requirements.txt b/third_party/python/requirements.txt @@ -98,7 +98,7 @@ aiosignal==1.3.2 \ --hash=sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5 \ --hash=sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54 # via aiohttp -ansicon==1.89.0 \ +ansicon==1.89.0 ; sys_platform == 'win32' \ --hash=sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1 \ --hash=sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec # via jinxed @@ -461,7 +461,7 @@ jinja2==3.1.6 \ # cookiecutter # glean-parser # mozilla-third-party-python-vendor-dir -jinxed==1.3.0 \ +jinxed==1.3.0 ; sys_platform == 'win32' \ --hash=sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf \ --hash=sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5 # via blessed @@ -1058,7 +1058,7 @@ toml==0.10.2 \ # via # compare-locales # mozilla-third-party-python-vendor-dir -tomli==2.2.1 \ +tomli==2.2.1 ; python_full_version < '3.11' \ --hash=sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6 \ --hash=sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd \ --hash=sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c \ @@ -1252,4 +1252,4 @@ yarl==1.20.1 \ zipp==3.23.0 \ --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \ --hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166 - # via importlib-metadata -\ No newline at end of file + # via importlib-metadata diff --git a/tools/tryselect/cli.py b/tools/tryselect/cli.py @@ -8,8 +8,6 @@ import subprocess import tempfile from argparse import ArgumentParser -from .task_config import all_task_configs - COMMON_ARGUMENT_GROUPS = { "push": [ [ @@ -129,6 +127,9 @@ class BaseTryParser(ArgumentParser): task_configs = [] def __init__(self, *args, **kwargs): + + from .task_config import all_task_configs + ArgumentParser.__init__(self, *args, **kwargs) group = self.add_argument_group(f"{self.name} arguments") @@ -153,6 +154,7 @@ class BaseTryParser(ArgumentParser): group_no_push.add_argument(*cli, **push_kwargs) group = self.add_argument_group("task configuration arguments") + self.task_configs = {c: all_task_configs[c]() for c in self.task_configs} for cfg in self.task_configs.values(): cfg.add_arguments(group) diff --git a/tools/tryselect/selectors/fuzzy.py b/tools/tryselect/selectors/fuzzy.py @@ -6,8 +6,6 @@ import sys from pathlib import PurePath -from gecko_taskgraph.target_tasks import filter_by_uncommon_try_tasks - from ..cli import BaseTryParser from ..push import check_working_directory, generate_try_task_config, push_to_try from ..tasks import filter_tasks_by_paths, filter_tasks_by_worker_type, generate_tasks @@ -138,6 +136,8 @@ def run( new_test_config=False, **kwargs, ): + from gecko_taskgraph.target_tasks import filter_by_uncommon_try_tasks + fzf = fzf_bootstrap(update) if not fzf: @@ -160,6 +160,7 @@ def run( all_tasks = tg.tasks if not full and not disable_target_task_filter: + all_tasks = { task_name: task for task_name, task in all_tasks.items() diff --git a/tools/tryselect/selectors/scriptworker.py b/tools/tryselect/selectors/scriptworker.py @@ -6,9 +6,6 @@ import sys import requests -from gecko_taskgraph.util.taskgraph import find_existing_tasks -from taskgraph.parameters import Parameters -from taskgraph.util.taskcluster import find_task_id, get_artifact, get_session from ..cli import BaseTryParser from ..push import push_to_try @@ -84,6 +81,8 @@ def get_release_graph(release): def get_nightly_graph(): + from taskgraph.util.taskcluster import find_task_id + return find_task_id( "gecko.v2.mozilla-central.latest.taskgraph.decision-nightly-all" ) @@ -98,6 +97,8 @@ def print_available_task_types(): def get_hg_file(parameters, path): + from taskgraph.util.taskcluster import get_session + session = get_session() response = session.get(parameters.file_url(path)) response.raise_for_status() @@ -118,6 +119,10 @@ def run( print_available_task_types() sys.exit(0) + from gecko_taskgraph.util.taskgraph import find_existing_tasks + from taskgraph.parameters import Parameters + from taskgraph.util.taskcluster import get_artifact + if release_type == "nightly": previous_graph = get_nightly_graph() else: diff --git a/tools/tryselect/task_config.py b/tools/tryselect/task_config.py @@ -19,7 +19,6 @@ from textwrap import dedent import mozpack.path as mozpath import requests from mozbuild.base import BuildEnvironmentNotFoundException, MozbuildObject -from taskgraph.util import taskcluster from .tasks import resolve_tests_by_suite from .util.ssh import get_ssh_user @@ -339,6 +338,8 @@ class ExistingTasks(ParameterConfig): ] def find_decision_task(self, use_existing_tasks): + from taskgraph.util import taskcluster + branch = "try" if use_existing_tasks == "last_try_push": # Use existing tasks from user's previous try push. @@ -366,6 +367,8 @@ class ExistingTasks(ParameterConfig): if not use_existing_tasks: return + from taskgraph.util import taskcluster + if use_existing_tasks.startswith("task-id="): tid = use_existing_tasks[len("task-id=") :] else: diff --git a/tools/tryselect/test/conftest.py b/tools/tryselect/test/conftest.py @@ -61,7 +61,7 @@ def patch_vcs(monkeypatch): @pytest.fixture(scope="session") def run_mach(): - mach = mach_initialize.initialize(tasks.build.topsrcdir) + mach = mach_initialize.initialize(tasks.build.topsrcdir, ["try"]) def inner(args): return mach.run(args) diff --git a/tools/tryselect/util/fzf.py b/tools/tryselect/util/fzf.py @@ -10,7 +10,6 @@ import subprocess import sys import mozfile -from gecko_taskgraph.target_tasks import filter_by_uncommon_try_tasks from mach.util import get_state_dir from mozboot.util import http_download_and_save from mozbuild.base import MozbuildObject @@ -352,6 +351,8 @@ def setup_tasks_for_fzf( full=False, disable_target_task_filter=False, ): + from gecko_taskgraph.target_tasks import filter_by_uncommon_try_tasks + check_working_directory(push) tg = generate_tasks( parameters, full=full, disable_target_task_filter=disable_target_task_filter