Delivery¶
Atlas delivery moves one coherent source identity through validation, packaging, publication, documentation deployment, and release verification. Each lane owns a narrower claim; no single green workflow establishes complete release readiness.
flowchart LR
Source[Reviewed source and contracts] --> CI[Focused and required CI]
CI --> Candidate[Versioned release candidate]
Candidate --> Packages[Crates, binaries, images, and chart material]
Candidate --> Docs[Published documentation]
Candidate --> Evidence[Security, compatibility, load, and readiness evidence]
Packages --> Verify[Cross-channel identity verification]
Docs --> Verify
Evidence --> Verify
Verify --> Decision{Publish or reject}
Delivery Domains¶
| Decision | Reference | Required agreement |
|---|---|---|
| select required checks | CI Lanes and Status Checks | change scope, workflow trigger, and branch protection |
| classify release compatibility | Compatibility Matrix | source, target, public surface, and migration direction |
| change dependencies | Dependency Updates | lockfile, policy, security, licensing, and reproducibility |
| publish crates and images | Docker and Crate Publish | version, package inventory, digests, provenance, and channel state |
| deploy public docs | Docs Deploy Pipeline | source revision, generated references, navigation, and deployed version |
| create GitHub release material | GitHub Release Workflows | tag, assets, checksums, notes, and release manifest |
| qualify capacity | Load and Benchmark Workflows | scenario, environment, baseline, thresholds, and result |
| govern version movement | Release and Versioning | workspace, artifacts, tags, and compatibility policy |
| assess security | Security Validation Lanes | threat, supply-chain, and data-protection findings |
| assemble integrated evidence | Final Readiness | simulation, audit, compliance, and readiness status |
Cross-Lane Integrity¶
A release candidate should have one source revision and version identity across package manifests, images, documentation, generated references, SBOMs, provenance, checksums, and evidence. If a lane rebuilds or regenerates bytes, its downstream bindings must be refreshed and reverified.
flowchart TD
Identity[Candidate source and version] --> Crates[Crate artifacts]
Identity --> Images[Image digests]
Identity --> Site[Documentation]
Identity --> Reports[Validation reports]
Crates --> Manifest[Release manifest]
Images --> Manifest
Site --> Manifest
Reports --> Manifest
Manifest --> Consumer[Consumer verification]
Interpret Lane Status¶
Delivery has more state than green or red:
| State | Meaning | Required action |
|---|---|---|
| passed | the lane's owned checks and internal report status passed for the candidate | retain and bind its evidence |
| failed | the lane executed and rejected the candidate or its evidence | stop the dependent publication path |
| skipped | the lane did not execute for this candidate | narrow the release claim or execute it explicitly |
| tolerated failure | automation continued after a failing command | inspect the failure; never count workflow continuation as a pass |
| published | a channel accepted bytes | verify channel identity and reconcile other channels |
Workflow conclusion and command exit are separate observations. Report status is another. Uploaded artifact presence and release binding add two more. Promotion requires all applicable observations to agree.
Partial Publication Recovery¶
flowchart TD
Publish[Publish candidate channels] --> Result{All required channels agree?}
Result -- yes --> Verify[Verify consumer-visible versions and digests]
Verify --> Complete[Declare coherent release]
Result -- no --> Freeze[Stop remaining promotion]
Freeze --> Inventory[Record successful, failed, and unknown channels]
Inventory --> Decision{Safe deterministic completion?}
Decision -- yes --> Resume[Resume exact candidate and verify]
Decision -- no --> Withdraw[Withdraw or supersede affected channels]
Resume --> Verify
Withdraw --> Record[Publish reconciliation record]
Do not rebuild an allegedly identical candidate after partial publication. Resume with retained bytes and source identity. Otherwise issue a new release identity. A rebuild can produce different digests while preserving the same human-readable version.
Failure Rules¶
- A skipped lane does not pass; it narrows available release claims.
- A successful publish does not repair missing pre-publication evidence.
- A mutable tag or unpinned action is not an immutable artifact identity.
- A report uploaded by a workflow must still be checked for internal failure, missing evidence, and candidate binding.
- Partial channel publication requires an explicit reconciliation or withdrawal decision; do not silently describe the release as coherent.