From 24d34dce98ca50429b312db48ad58710df2a0a97 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 2 Nov 2026 07:26:42 +0000 Subject: [PATCH 1/2] ci: model Cabal package-index readiness --- src/Assurance/Cabal.idr | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/Assurance/Cabal.idr diff --git a/src/Assurance/Cabal.idr b/src/Assurance/Cabal.idr new file mode 100644 index 0000000..66c7140 --- /dev/null +++ b/src/Assurance/Cabal.idr @@ -0,0 +1,17 @@ +module Assurance.Cabal + +%default total + +||| Evidence from the runner that will perform dependency resolution. +public export +data IndexState = Unknown | Available | Missing + +||| A cache restore alone cannot establish index availability. +public export +data BuildPlan = RefreshThenResolve | Resolve + +public export +planOnlineBuild : IndexState -> BuildPlan +planOnlineBuild Available = Resolve +planOnlineBuild Missing = RefreshThenResolve +planOnlineBuild Unknown = RefreshThenResolve From cd17148947959fc332792e7073909e0befdaf070 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 2 Nov 2026 07:34:18 +0000 Subject: [PATCH 2/2] test: typecheck all three Cabal readiness decisions --- src/Assurance/Cabal.idr | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Assurance/Cabal.idr b/src/Assurance/Cabal.idr index 66c7140..c12985b 100644 --- a/src/Assurance/Cabal.idr +++ b/src/Assurance/Cabal.idr @@ -15,3 +15,12 @@ planOnlineBuild : IndexState -> BuildPlan planOnlineBuild Available = Resolve planOnlineBuild Missing = RefreshThenResolve planOnlineBuild Unknown = RefreshThenResolve + +missingRefreshes : planOnlineBuild Missing = RefreshThenResolve +missingRefreshes = Refl + +unknownRefreshes : planOnlineBuild Unknown = RefreshThenResolve +unknownRefreshes = Refl + +availableResolves : planOnlineBuild Available = Resolve +availableResolves = Refl