Crosswake. ReleaseStatus
(crosswake v0.2.4)
View Source
Reads Crosswake's release graph and reports local package-family release readiness.
This is intentionally repository-local by default. Pass live?: true to add best-effort
public registry probes for Hex, Maven Central, and the iOS SwiftPM mirror.
Summary
Functions
Exit-code contract for mix crosswake.release.status and the release workflow
scanner (script/check_release_workflow_integrity.exs).
Runs a live probe up to attempts times, returning the first REAL answer.
Functions
Exit-code contract for mix crosswake.release.status and the release workflow
scanner (script/check_release_workflow_integrity.exs).
| Code | Meaning |
|---|---|
0 | clean — every check ran and passed (:ok or :warning) |
1 | ran and found a defect (:error) |
3 | could not verify — one or more checks could not run (:unverifiable) |
2 is deliberately reserved to its existing meanings elsewhere in this repo
(defect-found in script/verify_generated_ios_shell.sh, usage error in
script/check_required_checks_registered.sh, shells-behind in
lib/mix/tasks/crosswake.shell.status.ex) and is never returned here.
:warning maps to 0.
@spec probe_with_retry((-> map()), pos_integer(), non_neg_integer()) :: map()
Runs a live probe up to attempts times, returning the first REAL answer.
A real answer is anything other than :unavailable — :ok and :missing are
both definite results from the registry, so the first one short-circuits
immediately. Only when every attempt fails to get an answer is the result
classified :unavailable.
This is what makes the release.live_registry_presence /
release.live_registry_unverifiable split honest: an :unavailable that
survived three attempts is a real unknown, not a single network hiccup
misreported as a missing release.
It lives on the REAL probes (git_ref_live_probe/2, http_live_probe/2), not
between build/1 and the http_probe:/git_ref_probe: injection seam — a
fixture-driven test must not retry its own fakes three times.