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_priority order.

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.

candidates: Vec<Candidate>

Candidates, indexed by solvable id.

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