mod resolvo_provider¶
- module resolvo_provider¶
EasyBuild candidate graph as a resolvo DependencyProvider (CDCL SAT).
Feasibility is decided by resolvo. Multi-root optimization (priority-lex newest jointly consistent stack) lives in
solve_with_resolvo, which constrains and re-solves rather than returning the first SAT assignment.Functions
- fn solve_with_resolvo(candidates: &[Candidate], policy: &Policy, baseline: Option<&StackLock>) -> Result<Vec<Candidate>, String>¶
Solve using resolvo CDCL SAT as the feasibility core, then optimize over satisfying assignments: lexicographically maximize each application root’s version in declared
Policy::effective_root_priorityorder.The outcome depends only on the policy (including priority) and the candidate set — not on incidental list order of non-priority fields or HashMap iteration order inside the provider.
- fn solve_with_stack_policy(candidates: &[Candidate], policy: &Policy, baseline: Option<&StackLock>, stack_policy: &StackPolicy) -> Result<StackPolicySolve, String>¶
Co-select a stack under a policy, honouring site pins and exclusions.
Structs and Unions
- struct EbProvider¶
Maps (package NameId, version rank) -> candidate index.
- pool: Pool<Ranges<u32>>¶
Interned names and version ranges the solver works over.
Implementations
- impl EbProvider¶
Functions
- fn candidate_for_solvable(&self, id: SolvableId) -> &Candidate¶
The candidate a solvable id refers to.
- fn from_universe(candidates_in: &[Candidate], policy: &Policy, baseline: Option<&StackLock>) -> Result<Self, String>¶
Build a provider from a candidate set and a policy.
- fn from_universe_with_stack_policy(candidates_in: &[Candidate], policy: &Policy, baseline: Option<&StackLock>, stack_policy: Option<&StackPolicy>) -> Result<Self, String>¶
As
Self::from_universe, also applying a site stack policy.
- fn root_requirements(&self, roots: &[String]) -> Vec<resolvo::ConditionalRequirement>¶
The requirements standing for the application roots.
Traits implemented
- impl Interner for EbProvider¶
- impl DependencyProvider for EbProvider¶