You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Umbrella for what Pkg-side integration needs from this package, collected from the #30/#57 review cycle (Pkg.jl PR 4738 targets the superseded #30 API and will need updating to #57's):
API mapping: resolve(info, prob; with/without, diagnose) :: Union{Dict, Diagnosis, Nothing}; issatisfiable for preflight sweeps; holdbacks for the why-command; the three-tier cost ladder documented in the guide.
Modeling conventions (these replace policy knobs, so they're load-bearing):
Pkg.add(name, version)-style restrictions enter as Problem compat entries with labels = Dict(pkg => :requested) so reports say "you requested X at 1.7" rather than "your compat".
Presentation ownership: Pkg renders from the structured Diagnosis via the public toolkit (report knobs, or fully custom via render_fact/rank_upstream!/Bound.incidental/changes) — e.g. Pkg can drop incidental facts rather than demote them, and filter upstream suggestions by its own maintained-package knowledge. Guide section "Rendering your own reports" is the contract.
pkg> why upgrade path: presence answers (why is X here / what would avoiding it cost) come from resolve(…; without = X); version answers from holdbacks/goal queries — one chain instead of the all-paths forest (the Suggest what to remove for satisfiable requirements #6 complaint).
Umbrella for what Pkg-side integration needs from this package, collected from the #30/#57 review cycle (Pkg.jl PR 4738 targets the superseded #30 API and will need updating to #57's):
resolve(info, prob; with/without, diagnose) :: Union{Dict, Diagnosis, Nothing};issatisfiablefor preflight sweeps;holdbacksfor the why-command; the three-tier cost ladder documented in the guide.Pkg.add(name, version)-style restrictions enter asProblemcompat entries withlabels = Dict(pkg => :requested)so reports say "you requested X at 1.7" rather than "your compat".allow_yankedplumbing mirrors bin's.Diagnosisvia the public toolkit (reportknobs, or fully custom viarender_fact/rank_upstream!/Bound.incidental/changes) — e.g. Pkg can drop incidental facts rather than demote them, and filter upstream suggestions by its own maintained-package knowledge. Guide section "Rendering your own reports" is the contract.pkg> whyupgrade path: presence answers (why is X here / what would avoiding it cost) come fromresolve(…; without = X); version answers fromholdbacks/goal queries — one chain instead of the all-paths forest (the Suggest what to remove for satisfiable requirements #6 complaint).🤖 Opened with Claude Code at Stefan's request.
https://claude.ai/code/session_016p2sckwc5Gjjg5LG6gdEk7