Files
sousa-gecko/tools/moz.build
T
Heitor Neiva 41064adf09 Bug 2035606 - Add caching support to make_incremental_zucchini.py r=releng-reviewers,bhearsum
Adds two new flags to make_incremental_zucchini.py:

* --generate-hashes: writes a hashes.json file alongside manifest.json,
  keyed by dest_mar with {from_mar_files: {rel_path: sha256}, to_mar_files:
  {rel_path: sha256}} for every file in each from-mar and the to-mar.

* --patch-cache-dir: loads a hashes.json from the given directory, extracts
  the matching cached partial mar for each from-mar processed, and short-
  circuits the per-file diff path when both the from and to sha256 hashes
  match a cache entry (copies {rel_path}.patch or {rel_path} out of the
  extracted cached mar and writes the same manifest line). Any miss falls
  back silently to the existing zucchini path with an INFO log.

get_hash gains an algo="sha512" parameter so the same helper covers both
the existing sha512 mar-level digests and the new per-file sha256 hashes.

Adds unit tests at tools/update-packaging/test/ covering _hash_dir and the
_maybe_use_cached_file happy paths plus all miss paths.

Differential Revision: https://phabricator.services.mozilla.com/D297891
2026-05-20 16:59:38 +00:00

78 lines
2.2 KiB
INI

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
with Files("**"):
BUG_COMPONENT = ("Core", "General")
with Files("code-coverage/**"):
BUG_COMPONENT = ("Testing", "Code Coverage")
with Files("compare-locales/mach_commands.py"):
BUG_COMPONENT = ("Localization Infrastructure and Tools", "compare-locales")
with Files("lint/**"):
BUG_COMPONENT = ("Developer Infrastructure", "Lint and Formatting")
with Files("moztreedocs/**"):
BUG_COMPONENT = ("Developer Infrastructure", "Source Documentation")
SCHEDULES.exclusive = ["docs"]
with Files("profiler/**"):
BUG_COMPONENT = ("Core", "Gecko Profiler")
with Files("performance/**"):
BUG_COMPONENT = ("Core", "Gecko Profiler")
with Files("quitter/**"):
BUG_COMPONENT = ("Testing", "General")
with Files("rb/**"):
BUG_COMPONENT = ("Core", "XPCOM")
with Files("rewriting/**"):
BUG_COMPONENT = ("Developer Infrastructure", "Source Code Analysis")
with Files("tryselect/**"):
BUG_COMPONENT = ("Developer Infrastructure", "Try")
with Files("tryselect/selectors/release.py"):
BUG_COMPONENT = ("Release Engineering", "General")
with Files("ts/**"):
BUG_COMPONENT = ("Developer Infrastructure", "Lint and Formatting")
with Files("update-packaging/**"):
BUG_COMPONENT = ("Release Engineering", "General")
with Files("update-verify/**"):
BUG_COMPONENT = ("Release Engineering", "Release Automation")
with Files("vcs/**"):
BUG_COMPONENT = ("Firefox Build System", "General")
SPHINX_TREES["moztreedocs"] = "moztreedocs/docs"
SPHINX_TREES["try"] = "tryselect/docs"
SPHINX_TREES["fuzzing"] = "fuzzing/docs"
SPHINX_TREES["sanitizer"] = "sanitizer/docs"
SPHINX_TREES["code-coverage"] = "code-coverage/docs"
SPHINX_TREES["profiler"] = "profiler/docs"
SPHINX_TREES["update-verify"] = "update-verify/docs"
with Files("tryselect/docs/**"):
SCHEDULES.exclusive = ["docs"]
PYTHON_UNITTEST_MANIFESTS += [
"code-coverage/tests/python/python.toml",
"fuzzing/smoke/python.toml",
"lint/test/python.toml",
"tryselect/test/python.toml",
"update-packaging/test/python.toml",
]