Build image: coverage tools; recipe copies any vendor/ fad6152112b1
cargo-llvm-cov 0.9.1 and the toolchain's llvm-tools in the build image,
on the guest's PATH, so a job can write an LCOV report for the hub's
Coverage tab (oxygenhub#113); checked in the image with a job's cleared
environment and no network. recipe.py now copies a patched crate whole
from any vendor/ directory, not only the workspace's own: oxygenhub
patches crc-fast and iana-time-zone from its pinned oxygen's vendor/,
and the stubbed copies broke the image's prebuild. Image 7705d699,
imported on Earth and plex, pinned here.
- Node 24.21.0, checked against its published SHA-256.
7
7
- git, make and pkg-config.
8
+
- Coverage: llvm-tools and cargo-llvm-cov 0.9.1, so a job can write an LCOV report for the hub's Coverage tab.
8
9
- Release cross-building: the Windows, Linux arm64 and riscv64, and macOS targets, zig 0.16.0 (checked against its SHA-256), cargo-zigbuild and MinGW, with zip, so `scripts/dist.sh` runs in a job.
9
10
- Every crate that oxygen, oxygenhub and oxygenflow use, vendored in `/opt/vendor`.
10
11
…
42 unchanged lines
modifiedimages/rust/recipe.py+4−2
…
53 unchanged lines
54
54
manifest = p["manifest_path"]
55
55
src_dir = os.path.dirname(manifest)
56
56
rel = os.path.relpath(src_dir, root)
57
-
if p["id"] not in members and (rel == "vendor" or rel.startswith("vendor/")):
58
-
# A third-party crate patched in from vendor/:registrycrates
57
+
if p["id"] not in members and "vendor" in rel.split(os.sep):
58
+
# A third-party crate patched in from a vendor/ directory(the
59
+
# workspace's own, or a pinned subrepo's, as oxygenhub patches
60
+
# from deps/…/oxygen/vendor/): registry crates
59
61
# with real code depend on it, so it goes in whole. (A pinned
60
62
# subrepo's crates under deps/ are stubbed like the members: