From 84d137a19feb1f79f5bd711faff63a6bbe651cbf Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 22 Feb 2026 18:25:16 +0900 Subject: feat(resolver): replace pubgrub with Composer-ported SAT solver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add mozart-sat-resolver crate implementing a CDCL SAT-based dependency resolver ported from Composer's DependencyResolver. This replaces the pubgrub library to ensure identical resolution behavior with Composer. The new crate includes: pool (package storage with integer IDs), rule/rule_set/rule_set_generator (constraint encoding), decisions (assignment tracking), rule_watch_graph (2-watched literal BCP), solver (CDCL loop with conflict analysis and clause learning), policy (version preference), problem (Composer-style error messages), and transaction (install/update/uninstall operation computation). The registry resolver is rewritten to use PoolBuilder → RuleSetGenerator → Solver pipeline instead of pubgrub's DependencyProvider trait. Co-Authored-By: Claude Opus 4.6 --- crates/mozart-registry/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/mozart-registry/Cargo.toml') diff --git a/crates/mozart-registry/Cargo.toml b/crates/mozart-registry/Cargo.toml index d0159b6..9d089e5 100644 --- a/crates/mozart-registry/Cargo.toml +++ b/crates/mozart-registry/Cargo.toml @@ -6,12 +6,12 @@ edition.workspace = true [dependencies] mozart-core.workspace = true mozart-metadata-minifier.workspace = true +mozart-sat-resolver.workspace = true mozart-semver.workspace = true anyhow.workspace = true filetime.workspace = true flate2.workspace = true md5.workspace = true -pubgrub.workspace = true reqwest.workspace = true serde.workspace = true serde_json.workspace = true -- cgit v1.3.1