aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands
diff options
context:
space:
mode:
Diffstat (limited to 'crates/mozart/src/commands')
-rw-r--r--crates/mozart/src/commands/install.rs16
-rw-r--r--crates/mozart/src/commands/update.rs1
2 files changed, 17 insertions, 0 deletions
diff --git a/crates/mozart/src/commands/install.rs b/crates/mozart/src/commands/install.rs
index 356d622..9555ba7 100644
--- a/crates/mozart/src/commands/install.rs
+++ b/crates/mozart/src/commands/install.rs
@@ -670,6 +670,22 @@ pub async fn install_from_lock(
}
};
executor.install_package(op, &exec_ctx).await?;
+
+ // After the target install/update, emit MarkAliasInstalled for any
+ // aliases whose `package`+`version` (the target's pretty version)
+ // match. Mirrors Composer's `Transaction::calculateOperations` DFS
+ // which pushes alias targets first and emits MarkAliasInstalled
+ // when the alias itself is processed.
+ for alias in &lock.aliases {
+ if alias.package.eq_ignore_ascii_case(&pkg.name) && alias.version == pkg.version {
+ executor
+ .install_package(
+ PackageOperation::MarkAliasInstalled { alias, target: pkg },
+ &exec_ctx,
+ )
+ .await?;
+ }
+ }
}
// Step 8: Write updated vendor/composer/installed.json (unless download_only)
diff --git a/crates/mozart/src/commands/update.rs b/crates/mozart/src/commands/update.rs
index 9ac2664..847ccf7 100644
--- a/crates/mozart/src/commands/update.rs
+++ b/crates/mozart/src/commands/update.rs
@@ -1370,6 +1370,7 @@ mod tests {
version: version.to_string(),
version_normalized: format!("{}.0", version),
is_dev: false,
+ alias_of_normalized: None,
}
}