Skip to content

The three-build comparison decision 0010 requires has no committed implementation #10

Description

@marcos-mendez

Handbook decision 0010 accepts the component split on one condition, and
its step 3 states the condition: components move one at a time, "re-running
this three-build comparison for each, including the control-vs-control run".
Nothing in any repository runs that comparison.

What exists is /root/measure/build.sh on the build host, generalised there
from /root/unitbuild.sh, which builds one layer and captures
pkgs-$tag.tsv, tree-$tag.sha256 and links-$tag.txt into /root/measure.
It is a scratch file in root's home directory on one machine, it captures
only, and the comparison half, the part that turns three captures into the
number a pull request quotes, was ad hoc shell that was never written down at
all. grep -r over this organization's repositories finds no build.sh for
it, no unitbuild.sh and no /root/measure.

Three consequences.

The measurement is testimony, not evidence. Keel-Linux/keel-mariadb#11 and
Keel-Linux/keel-postgresql#7 were both approved on a count of attributable
differences that only their author could produce. A reviewer could not re-run
it, and neither can the next person to extract a component.

It is blind where it matters most. For mariadb the noise floor is 179
files, of which 173 are /var/lib/mysql/**. That directory holds
mysql/global_priv and mysql/user.*. The component's build-time job
includes deleting accounts, so the measurement subtracted, as noise, exactly
the region where the thing being measured would show up. A path is put inside
the noise floor by its name; whether its difference is really noise is a
question about its bytes, and nothing asked that question.

It counts wrong. The capture writes sha256sum's default
<hash> + two spaces + <path>, and the comparison split on whitespace.
docs/traps.md, "A path with a space in it", records the result: the Debian
rootfs contains setuptools/_vendor/jaraco/text/Lorem ipsum.txt, which
becomes two fields and never matches itself, so the LAMP measurement of
2026-09-27 reported 199 and 183 differing files where the true counts were
198 and 182.

Expected: a committed, tested tool in this repository, next to bt-layer and
bin/layer-lib, that does both halves. A capture subcommand that builds a
layer and records its package list, file tree and symlinks in a
tab-separated, path-keyed form, into a directory named on the command line
rather than a home directory. A comparison subcommand over two captures, and
an attribution subcommand over the three the decision asks for, that reports
what differs rather than only that a path fell inside the floor, and prints a
block a pull request body can quote so a claim names the command that
produced it.

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