aboutsummaryrefslogtreecommitdiffhomepage
path: root/Cargo.toml
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-22 18:25:16 +0900
committernsfisis <nsfisis@gmail.com>2026-02-22 18:28:04 +0900
commit84d137a19feb1f79f5bd711faff63a6bbe651cbf (patch)
tree858dee19c5933ecda3f368cb586cf140b4e4c4d2 /Cargo.toml
parent07733b3b328f6e4ec23754fcb3504ddb196d65a3 (diff)
downloadphp-mozart-84d137a19feb1f79f5bd711faff63a6bbe651cbf.tar.gz
php-mozart-84d137a19feb1f79f5bd711faff63a6bbe651cbf.tar.zst
php-mozart-84d137a19feb1f79f5bd711faff63a6bbe651cbf.zip
feat(resolver): replace pubgrub with Composer-ported SAT solver
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 <noreply@anthropic.com>
Diffstat (limited to 'Cargo.toml')
-rw-r--r--Cargo.toml2
1 files changed, 1 insertions, 1 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 3ea91a3..c2e7cc6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,6 +13,7 @@ mozart-class-map-generator = { path = "crates/mozart-class-map-generator" }
mozart-core = { path = "crates/mozart-core" }
mozart-metadata-minifier = { path = "crates/mozart-metadata-minifier" }
mozart-registry = { path = "crates/mozart-registry" }
+mozart-sat-resolver = { path = "crates/mozart-sat-resolver" }
mozart-semver = { path = "crates/mozart-semver" }
mozart-spdx-licenses = { path = "crates/mozart-spdx-licenses" }
anyhow = "1.0.102"
@@ -26,7 +27,6 @@ filetime = "0.2.27"
flate2 = "1.1.9"
md5 = "0.7.0"
predicates = "3.1.4"
-pubgrub = "0.3.0"
regex = "1.12.3"
reqwest = { version = "0.13.2", features = ["json"] }
self-replace = "1.5.0"