Skip to content

AGENTS.md calls Bazel the "Production/CI" build path; no CI runs it and it cannot compile the current tree #407

Description

@avrabe

Measured

$ sed -n '145p;167p' AGENTS.md
#### Cargo (Development)
#### Bazel (Production/CI)

$ grep -rl "bazel" .github/workflows/ | wc -l
0

Bazel is documented as the production path and is run by nothing. That alone is a claim/behaviour gap, but it has gone further: the build files have drifted out of buildability while unwatched.

meld-core/BUILD.bazel globs all of src/**/*.rs and declares nine deps. Two crates the globbed sources use are absent from that list:

$ grep -cE 'petgraph|gimli' meld-core/BUILD.bazel
0
$ grep -rln 'petgraph::' meld-core/src/
meld-core/src/resource_graph.rs
$ grep -rln 'gimli::' meld-core/src/
meld-core/src/dwarf.rs

BUILD.bazel was last touched 2026-02-04; petgraph entered meld-core/Cargo.toml six weeks later. The pinned dependency set is also ~6 months stale and cannot satisfy the current manifests — MODULE.bazel.lock (dated March) has no wasmparser 0.246 while Cargo.toml requires it, and pins petgraph 0.6.5 where meld-core requires 0.8.3.

Not verified: I did not run bazel build (disk constraints on this machine). That a used extern crate missing from deps is a rustc error is mechanical rather than observed. The staleness and the missing deps are observed.

Why it matters

  1. An agent or contributor following AGENTS.md's "Production/CI" instruction hits a broken build and has no way to know the document is stale.
  2. rules/meld.bzl:214 points downstream rules_wasm_component consumers at //meld-cli:meld, so this is not a dormant path — it is the one other repos are wired to.
  3. If it were revived as-is it would immediately start stamping a false tool version into every fused artifact (Bazel build stamps a false meld version into --version and into every fused artifact's attestation #406).

The decision this needs

Not "fix the build" by default — decide which claim is true:

  • Bazel is production → fix the deps, refresh the lock, and add a CI job that builds it. Without a job it drifts again, and the next discovery is the same discovery.
  • Bazel is legacy/optional → say so in AGENTS.md, and decide what rules/meld.bzl should point at.

Either is defensible. What is not defensible is a document telling people the production build is the one nothing runs.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions