tomato·bazeldocs v0 · latest

C1 — one live version per third-party atom

Convergence · registry-level · gates/c1_atom_multi_version.rq ↗

This is a registry-level invariant: it reports that the registry as a whole is inconsistent, not that any one module is at fault. So its findings are not attributed to a module — where a per-module view is meaningful, a companion query supplies it as contested atoms.

Why this is an invariant#

This is the convergence invariant, and since Bazel 8.6.0/9.1.0 it is also the COMPATIBILITY invariant. compatibility_level is now a no-op, so MVS will silently upgrade a consumer across a breaking change and Bazel cannot object. One version per atom means no incompatible co-selection is possible — which makes this the only thing standing between a consumer and a silent break.

Compares MVS results across every module graph in the registry, so it catches transitive divergence a scan of declared pins would miss.

Findings#

30 findings. Each row is a counterexample — the columns are the query's own, in the order it selects them.

atomversion_aversion_b
apple_support1.24.22.2.0
aspect_bazel_lib2.22.52.8.1
aspect_rules_js2.1.33.1.2
bazel_lib3.0.03.2.2
bazel_skylib1.8.21.9.0
gawk5.3.2.bcr.15.3.2.bcr.3
gazelle0.30.00.36.0
gazelle0.30.00.44.0
gazelle0.30.00.51.0
gazelle0.36.00.44.0
gazelle0.36.00.51.0
gazelle0.44.00.51.0
helly25_bzl0.3.10.4.3
jq.bzl0.1.00.4.0
nlohmann_json3.12.0.bcr.13.6.1
package_metadata0.0.20.0.5
protobuf33.434.0.bcr.1
rules_go0.39.10.60.0
rules_jvm_external6.76.8
rules_nodejs6.3.06.7.3
rules_nodejs6.3.06.7.4
rules_nodejs6.7.36.7.4
rules_python1.7.02.0.1
rules_swift3.1.23.6.1
tar.bzl0.10.40.5.1
tar.bzl0.10.40.6.0
tar.bzl0.5.10.6.0
toolchains_llvm1.7.01.8.0
upb0.0.0-20220923-a5477040.0.0-20230516-61a97ef
yq.bzl0.1.10.3.4