Expand description
High-level APIs for executing the resolver.
This module provides functions for running the resolver given a workspace, including loading
the Cargo.lock
file and checkinf if it needs updating.
There are roughly 3 main functions:
resolve_ws
: A simple, high-level function with no options.resolve_ws_with_opts
: A medium-level function with options like user-provided features. This is the most appropriate function to use in most cases.resolve_with_previous
: A low-level function for running the resolver, providing the most power and flexibility.
Data Structures
Workspace
: Usually created bycrate::util::command_prelude::ArgMatchesExt::workspace
which discovers the root of the workspace, and loads all the workspace members as aPackage
objectPackageRegistry
: The primary interface for how the dependency resolver finds packages. It contains theSourceMap
, and handles things like the[patch]
table. The dependency resolver sends a query to thePackageRegistry
to “get me all packages that match this dependency declaration”. TheRegistry
trait provides a generic interface to thePackageRegistry
, but this is only used for providing an alternate implementation of thePackageRegistry
for testing.SourceMap
: Map of all available sources.Source
: An abstraction for something that can fetch packages (a remote registry, a git repo, the local filesystem, etc.). Check out the source implementations for all the details about registries, indexes, git dependencies, etc.SourceId
: A unique identifier for a source.
Summary
: A of aManifest
, and is essentially the information that can be found in a registry index. Queries against thePackageRegistry
yields aSummary
. The resolver uses the summary information to build the dependency graph.
PackageSet
— Contains all of thePackage
objects. This works with theDownloads
struct to coordinate downloading packages. It has a reference to theSourceMap
to get theSource
objects which tell theDownloads
struct which URLs to fetch.
Structs
- Result for
resolve_ws_with_opts
.
Constants
Functions
- Read the
paths
configuration variable to discover all path overrides that have been configured. - Emits warnings of unused patches case by case.
- In this function we’re responsible for informing the
registry
of all locked dependencies from the previous lock file we had,resolve
. - Resolves all dependencies for a package using an optional previous instance of resolve to guide the resolution process.
- Resolves all dependencies for the workspace using the previous lock file as a guide if present.
- Resolves dependencies for some packages of the workspace, taking into account
paths
overrides and activated features.