aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/constraint.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-21 11:04:06 +0900
committernsfisis <nsfisis@gmail.com>2026-02-21 11:04:06 +0900
commitf030dc63ea84a13f1e494a1541b6120c0969f383 (patch)
tree578dc7eec648c0b9ac50bcb234430fa913c0e23c /crates/mozart/src/constraint.rs
parenta03ad0152ec28cdd1cc05f96a9823807dbb2b818 (diff)
downloadphp-mozart-f030dc63ea84a13f1e494a1541b6120c0969f383.tar.gz
php-mozart-f030dc63ea84a13f1e494a1541b6120c0969f383.tar.zst
php-mozart-f030dc63ea84a13f1e494a1541b6120c0969f383.zip
feat(install): implement install command with lock-based package installation
Replaces the todo!() stub with a full implementation that reads composer.lock, computes install/update/skip/remove operations by comparing against vendor/composer/installed.json, downloads packages via the downloader module, and writes the updated installed registry. Handles edge cases: missing lock file, stale lock file, no dist info, empty packages, --dry-run, --no-dev, deprecated flags, and vendor directory cleanup after removals. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/constraint.rs')
-rw-r--r--crates/mozart/src/constraint.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/mozart/src/constraint.rs b/crates/mozart/src/constraint.rs
index ff9b14e..d009028 100644
--- a/crates/mozart/src/constraint.rs
+++ b/crates/mozart/src/constraint.rs
@@ -235,7 +235,10 @@ fn normalize_pre_release(s: &str) -> String {
.to_string();
// Extract the alphabetic prefix (stability name)
- let alpha: String = normalized.chars().take_while(|c| c.is_alphabetic()).collect();
+ let alpha: String = normalized
+ .chars()
+ .take_while(|c| c.is_alphabetic())
+ .collect();
// Extract only digits from the rest (strip separators like dots)
let num: String = normalized
.chars()