- 1. Version solving
- 2. Using the pubgrub crate
- 2.1. Basic example with OfflineDependencyProvider
- 2.2. Implementing a dependency provider
- 2.3. Caching dependencies
- 2.4. Strategical decision making in a DependencyProvider
- 2.5. Solution and error reporting
- 2.6. Writing your own error reporting logic
- 3. Advanced usage and limitations
- 3.1. Optional dependencies
- 3.2. Allowing multiple versions of a package
- 3.3. Public and Private packages
- 3.4. Pre-release versions
- 4. Internals of the PubGrub algorithm
- 4.1. Overview of the algorithm
- 4.2. Terms
- 4.3. Incompatibilities
- 4.4. Partial solution
- 4.5. Conflict resolution
- 4.6. Building a report tree
- 5. Testing and benchmarking
- 5.1. Property testing
- 5.2. Comparison with a SAT solver
- 5.3. Benchmarking
- 6. How can I contribute? Here are some ideas