Release Support¶
Release support binds a source identity, publishable distributions, scientific evidence, public language, and refusal state into one review. A build proves that archives can be produced. It does not prove that package boundaries are coherent, generated governance is current, a workflow can be rerun, or a scientific claim is ready for publication.
Release Evidence Pipeline¶
flowchart TB
source["tagged source identity"] --> packages["package build + metadata validation"]
packages --> truth["repository truth report"]
truth --> dossier["scientific release dossier"]
dossier --> language["public-language validation"]
language --> consequence["runtime + decision + lab consequence"]
consequence --> gate{"all required evidence passes?"}
gate -->|yes| publish["publication may proceed"]
gate -->|no| refuse["preserve failures and stop"]
make release-preflight evaluates documentation clarity, package boundaries,
test collection, benchmark assets, runtime reproducibility, consequence
coherence, and artifact hygiene in a fixed order. Every stage reports its own
failures; a later pass cannot erase an earlier refusal.
Candidate Assembly¶
flowchart LR
revision["clean source revision"]
version["coherent package versions"]
distributions["wheels · sdists · containers · docs"]
inventory["hashes, metadata, SBOMs, attestations"]
evidence["gate results and scientific dossier"]
language["requested and allowed public language"]
candidate["identified release candidate"]
revision --> candidate
version --> candidate
distributions --> candidate
inventory --> candidate
evidence --> candidate
language --> candidate
Publication review starts only after these identities agree. Rebuilding one distribution, regenerating an attestation, changing documentation, or rerunning a gate on another revision creates a different candidate or requires explicit proof that the governed inputs remained identical.
Scientific Release Dossier¶
build_scientific_release_dossier() in
release/governance/scientific_readiness.py resolves each declared workflow
from configs/package-governance/scientific-release-workflows.toml. The related
configs/package-governance/flagship-workflow-manifest.toml records flagship
workflow ownership and evidence paths.
For dda, dia, lfq, multiplex, ptm, and targeted, the dossier binds:
- owning package and workflow identifier;
- dataset or public benchmark-package locator;
- builder symbol and package test evidence;
- public documentation and claim-limit route;
- scientific limitation that prevents broader wording.
The DDA evidence chain begins at
benchmark-assets/flagship-public-packages/dda_reviewable_run/package_manifest.json,
identifies the dda-maxquant-pipeline-corpus, and records
comparator_path:msfragger_imported_dda_review. Those identifiers make the
comparison inspectable; they do not turn imported search results into native
engine execution.
Repository Truth¶
build_repository_truth_report() composes evidence from package ownership,
public APIs, benchmarks, Runtime, generated governance, and package substance.
It depends on these validators rather than replacing them:
| Validator | Release question |
|---|---|
validate_ssot_readiness() |
do structured models and public symbols have coherent canonical owners? |
validate_generated_governance_freshness() |
do checked governance records match their generators and inputs? |
validate_public_language() |
does wording stay within the allowed evidence posture? |
validate_workflow_consequence_coherence() |
do grounding, recommendation, and Lab consequence agree across families? |
validate_workflow_public_scrutiny() |
can an external reviewer reach the artifacts that support or block each claim? |
Repository truth should not be cited without those shared consequence surfaces.
Open workflow-consequence-maps.md, what-changed-the-recommendation.md,
outcome-learning-loops.md, and workflow-refusal-handbook.md with the report.
Runtime And Consequence Gates¶
Runtime black-box evidence is implemented in
bijux_proteomics_runtime/workflows/black_box_reproducibility.py and reviewed
through:
runtime-execution-boundary.mdfor exact manifests and entrypoints;black-box-run-verification.mdfor installed public behavior;raw-versus-import-execution.mdfor native and imported custody;runtime-rerun-refusals.mdfor evidence required to widen a rerun claim.
The runtime flagship rerun gate answers whether the declared lane can be reopened under its recorded environment and artifact contract. The lab-consequence gate answers whether an advisory result has a controlled, feasible, and informative downstream path. Neither gate substitutes for Core scientific acceptance.
Public Scrutiny Routes¶
Review the following pages before using repository-wide readiness language:
flagship-release-candidate.mdfor the candidate bundle and current vetoes;elite-readiness-scorecard.mdfor family evidence completeness;workflow-claim-limits.mdfor allowed and blocked family language;why-multiplex-stops-at-internal-support.mdfor the multiplex boundary;public-artifact-index.mdfor externally inspectable evidence;public-artifact-role-matrix.mdfor artifact authority and non-authority;package-substance.mdfor thin-module and package-boundary pressure.
The generator modules workflow_lab_consequence.py,
workflow_consequence_chain.py, workflow_consequence_docs.py,
workflow_public_scrutiny.py, hostile_review_pages.py, and
release_narrowing_protocol.py keep the shared family and hostile-review
surfaces synchronized. final_preflight.py composes their results into the
ordered release decision. Fresh output is required, but freshness alone does
not mean the evidence passes.
Publication Refusals¶
| Failure | Required response |
|---|---|
| unresolved release identity | stop; establish the source version and tag relationship |
| wheel or sdist version differs from source | reject the artifact and rebuild from the tagged revision |
| duplicate canonical ownership | resolve the owner; do not waive the SSOT gate |
| stale generated governance | correct the generator or input and regenerate |
| requested language exceeds allowed language | apply the release narrowing protocol |
| runtime lane cannot support the claimed rerun mode | preserve the refusal and narrow the claim |
| consequence chain is incomplete or contradictory | withhold repository-wide readiness language |
| package-root artifacts or caches remain | clean the output and correct its producer |
Do not weaken a validator, hand-edit generated evidence, or discard failure
output to unblock publication. Resolve the owner-level cause, rerun the narrow
gate, and then repeat make release-preflight from a clean repository state.
| Decision | Minimum condition | Required record |
|---|---|---|
| publish | every applicable gate passes and publication authority approves the identified candidate | candidate identity, channel actions, reviewer, rationale, timestamps |
| narrow | artifacts are publishable but requested public language exceeds evidence | allowed language, blocked wording, owner, replacement public surfaces |
| withhold | candidate evidence is incomplete or temporarily blocked | missing evidence, failed prerequisite, owner, reconsideration condition |
| refuse | a contract, security, scientific, provenance, or integrity gate fails | retained failure, affected artifact or claim, required correction |
Signing and attestation prove artifact custody and build assertions; they do not override a scientific refusal, stale governance, or incompatible schema. Likewise, a publishable documentation site does not authorize package or container publication unless the same candidate passed its own channel gates.
Release Decision Record¶
A release decision is reconstructable only when the record binds the following fields to the same candidate:
| field | required evidence |
|---|---|
| source identity | commit, clean-worktree result, tag, and source version |
| distribution identity | wheel and sdist names, versions, hashes, metadata validation, and package inventory |
| validation identity | exact commands, environment, timestamps, results, and retained failure output |
| generated authority | generator inputs, checked outputs, and freshness results |
| scientific authority | workflow dossier, primary and companion benchmark identities, runtime mode, and acceptance result |
| public authority | requested and allowed language, consequence posture, and unresolved vetoes |
| publication action | published, withheld, or refused; reviewer; reason; and supersession link |
Passing results from different commits or environments cannot be assembled into one release decision unless the record demonstrates that the candidate inputs are identical. A rebuilt artifact receives new hashes and a new distribution review even when its version string is unchanged.