Glossary¶
Use this glossary when a release argument becomes vague. Each definition names a bounded claim, the evidence that can support it, and a nearby term it must not replace.
Page Maps¶
graph LR
family["Reproducible Research"]
program["Deep Dive Make"]
section["Release Engineering Artifact Contracts"]
page["Glossary"]
capstone["Capstone evidence"]
family --> program --> section --> page
page -.applies in.-> capstone
flowchart LR
bytes["candidate bytes"] --> identity["identity"]
bytes --> contents["content observation"]
identity --> integrity["integrity check"]
contents --> policy["package-policy decision"]
integrity --> acceptance["acceptance record"]
policy --> acceptance
acceptance --> handoff["publication handoff"]
Release objects and boundaries¶
Accepted candidate¶
A release candidate whose exact identity passed every gate required by a named scope. Acceptance is not transferable to different bytes, even if the filename and version label are unchanged.
Evidence: acceptance record plus the candidate digest.
Do not confuse with: published release. Acceptance may deliberately stop before any remote action.
Acceptance gate¶
One explicit decision that either admits or rejects a candidate at a trust boundary. Examples include exact-byte verification, package-member comparison, extraction-safety inspection, and install-convergence comparison.
Evidence: command, observed input identity, output, exit status, and decision.
Do not confuse with: a command that always returns success after rewriting the candidate.
Acceptance record¶
A bounded statement that names one candidate digest, required gates, their results, scope, and any action not attempted.
Evidence: the record can be checked against the existing candidate and each gate's retained evidence.
Do not confuse with: a cryptographic signature. A local text record does not establish authorization or origin by itself.
Candidate assembly tree¶
An isolated filesystem tree containing exactly the members intended for one candidate before archive creation. It exposes package layout for inspection and keeps sidecars and older candidates outside the archive root.
Evidence: declared member policy and observed tree listing.
Do not confuse with: a shared build directory containing compiler intermediates.
Distribution target¶
A public build interface, commonly dist, whose narrow responsibility is to make the
declared local candidate current.
Evidence: target contract, prerequisite graph, and produced candidate.
Do not confuse with: release-check, installation, approval, or remote publication.
Publication boundary¶
The exact transition after which another consumer is allowed to rely on an object. For a local candidate, this may be the atomic rename that replaces the candidate pathname. For a remote registry, it may be an authenticated upload or pointer update.
Evidence: boundary-specific success plus the identity that crossed it.
Do not confuse with: candidate assembly, which remains untrusted until validation and publication complete.
Publication handoff¶
The check that the candidate offered to a remote action is the same exact candidate named by local acceptance, checksum, provenance, and signature policy where applicable.
Evidence: identity comparison immediately before the remote boundary.
Do not confuse with: rebuilding by version name and assuming equivalent bytes.
Published release¶
A candidate that crossed the repository's declared remote publication boundary. The term says nothing by itself about package quality; that depends on the acceptance and authorization policies that preceded handoff.
Evidence: remote identity, immutable locator, and publication result.
Do not confuse with: any file placed in a local dist/ directory.
Release candidate¶
Immutable bytes proposed for acceptance. A candidate has an exact identity even before it passes any gate.
Evidence: candidate file plus computed digest.
Do not confuse with: a mutable pathname. Replacing app.tar.gz creates a new candidate even
if the name stays constant.
Release contract¶
The stable promise made to a named consumer: target meanings, candidate scope, package members, evidence, gates, retry behavior, and excluded side effects.
Evidence: documentation aligned with executable verification.
Do not confuse with: a list of commands lacking acceptance criteria.
Release surface¶
The small public interface through which humans and automation produce, verify, accept, install, or publish candidates.
Evidence: named targets and their contracts.
Do not confuse with: every internal helper used by release recipes.
Identity, contents, and trust¶
Artifact identity¶
The exact bytes of one artifact, normally represented by a cryptographic digest. Identity answers "is this the same byte sequence?"
Evidence: digest computed from the existing artifact.
Do not confuse with: package correctness. Wrong contents still have a precise identity.
Authorization¶
Permission from a trusted principal to publish or accept named bytes. A digital signature can support authorization when key trust and verification policy are defined.
Evidence: valid signature, trusted key identity, and policy decision.
Do not confuse with: package-member verification. A trusted signer can authorize the wrong package.
Checksum¶
A digest sidecar or recorded digest used to compare exact bytes. Its strength depends on the algorithm, sidecar format, and independent trust source.
Evidence: successful recomputation and comparison.
Do not confuse with: origin. If an attacker can replace candidate and sidecar together, the checksum alone does not establish who produced them.
Content correctness¶
The decision that observed candidate members satisfy declared package policy by path, type, mode, and link rules.
Evidence: independent policy manifest, archive observation, and comparison result.
Do not confuse with: checksum success. Exact wrong bytes remain wrong.
Integrity¶
The property that candidate bytes have not changed relative to a trusted recorded identity.
Evidence: digest or signature verification against an independently trusted value.
Do not confuse with: reproducibility. One intact candidate may differ from another valid production.
Observed archive listing¶
Evidence produced by inspecting one candidate's actual members, types, modes, ownership, and links.
Evidence: verbose archive inspection retained with candidate identity.
Do not confuse with: package-policy manifest. Observation says what is present; policy says what should be present.
Package-policy manifest¶
An independent declaration of allowed or required members and their relevant properties. It exists before or outside observation of the candidate under review.
Evidence: version-controlled or otherwise governed policy source.
Do not confuse with: a member list generated from the same candidate and labeled "expected."
Provenance¶
Structured evidence connecting candidate identity to declared source revision, producer, toolchain, and process facts.
Evidence: attestation bound to the candidate digest and verified under a defined schema.
Do not confuse with: authorization, content correctness, or a dump of the whole host environment.
Reproducible candidate¶
A candidate for which two defined production attempts from equivalent declared inputs produced identical bytes under the declared tool and path contract.
Evidence: retained observations and byte comparison.
Do not confuse with: a universal guarantee across undeclared platforms, output filenames, or tool versions.
Sidecar evidence¶
Evidence stored beside candidate bytes rather than embedded in their identity. Examples include a checksum file, provenance attestation, signature, or acceptance record.
Evidence: explicit binding to the candidate digest.
Do not confuse with: unrelated nearby logs. Proximity without identity binding is weak.
Extraction and installation¶
Contained extraction¶
Unpacking an eligible candidate so every filesystem effect remains below one new consumer root.
Evidence: pre-extraction path/type audit, extraction command, and observed resulting tree.
Do not confuse with: extracting first and checking paths afterward.
Destination contract¶
The install policy defining logical paths, staging root, modes, overwrite behavior, unrelated-file ownership, rerun expectations, and partial-failure recovery.
Evidence: declared mapping plus first-run, rerun, and rejection observations.
Do not confuse with: "cp returned zero."
DESTDIR¶
A root prepended during package-building or installation rehearsal so logical install paths are materialized below a controlled tree.
Example:
DESTDIR=artifacts/module08-release/install-root
PREFIX=/usr/local
result=artifacts/module08-release/install-root/usr/local/bin/app
Do not confuse with: PREFIX. DESTDIR changes where this invocation writes; it does not
change the package's logical destination.
Extraction eligibility¶
The decision that every archive member path, type, and link satisfies policy before any member is unpacked.
Evidence: complete member inspection and zero exit status.
Do not confuse with: contained extraction. Eligibility precedes the filesystem mutation.
Idempotent install¶
An install route whose repeated application to the same starting destination and accepted payload converges on the same policy-relevant tree.
Evidence: comparison of paths, contents, modes, and other declared properties after first run and rerun.
Do not confuse with: two successful exit statuses.
Install root¶
The concrete filesystem boundary below which an installation rehearsal may write. It is
often the composition of DESTDIR and PREFIX.
Evidence: resolved destination paths, ancestor preflight, and resulting-tree observation.
Do not confuse with: a live system root used casually for testing.
PREFIX¶
The logical location where a package belongs on the eventual target system, such as
/usr/local or /opt/example.
Do not confuse with: a safe rehearsal root. Setting only PREFIX does not prove writes are
contained below a repository artifact directory.
Install convergence¶
The observed equality of policy-relevant destination state after first install and rerun.
Evidence: stable relative paths, checksums, modes, and repository status.
Do not confuse with: transactional rollback or uninstall support.
Failure and recovery¶
First failed boundary¶
The earliest release boundary whose declared truth differs from observed evidence. Later failures may be consequences and should not be repaired first.
Evidence: ordered gate results and preserved candidate state.
Do not confuse with: the last command that printed an error.
Failure packet¶
Preserved evidence for one rejected candidate identity: bytes, sidecars, command, exit status, policy, observations, failed boundary, and blocked action.
Evidence: digest-named directory whose contents are not overwritten by another incident.
Do not confuse with: an unbounded environment dump containing secrets or unrelated data.
Recovery contract¶
The declared route after interruption or rejection: preserve evidence, discard a dedicated rehearsal root, repair a producer or verifier, restore prior package-manager state, or produce a new candidate.
Evidence: repeatable recovery procedure and post-recovery verification.
Do not confuse with: rerun until success.
Rejected candidate¶
Exact bytes that failed a required acceptance gate. Rejection blocks the next trust transition but does not erase the candidate's diagnostic value.
Evidence: failure packet tied to the rejected digest.
Do not confuse with: a candidate to repair in place. A changed file is a new candidate.
Contrast table¶
| Question | Correct term | Typical evidence |
|---|---|---|
| Are these the same bytes? | artifact identity | cryptographic digest |
| Did the bytes change relative to a trusted value? | integrity | checksum or signature verification |
| Does the archive contain the intended package? | content correctness | policy-to-observation comparison |
| How were these bytes produced? | provenance | digest-bound attestation |
| Did a trusted principal approve these bytes? | authorization | signature and key policy |
| May this archive be unpacked? | extraction eligibility | member path/type/link audit |
| Did unpacking remain below one root? | contained extraction | resulting-tree and boundary evidence |
| Did install settle on the same tree? | install convergence | first-run and rerun comparison |
| Did all required local gates pass? | accepted candidate | digest-bound acceptance record |
| Did the accepted identity cross the remote boundary? | publication handoff | pre-handoff identity comparison |
Vocabulary review¶
Replace vague statements with bounded ones:
| Vague statement | Reviewable statement |
|---|---|
| "The checksum proves the release is good." | "The checksum matches these candidate bytes; member policy is a separate gate." |
| "The archive is reproducible." | "Two clean productions through the declared pathname yielded identical bytes with this toolchain." |
| "Install is safe." | "The rehearsal wrote only below this root and first-run and rerun evidence matched." |
| "The release failed." | "This digest was rejected at the extraction-eligibility gate because it contained ../escape.txt." |
| "The artifact was published." | "The remotely stored digest matches the locally accepted candidate digest." |
Precise vocabulary does not add ceremony. It prevents one kind of evidence from being used to support a claim it cannot prove.