diff options
Diffstat (limited to 'crates/mozart/src/commands')
| -rw-r--r-- | crates/mozart/src/commands/install.rs | 16 | ||||
| -rw-r--r-- | crates/mozart/src/commands/update.rs | 1 |
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, } } |
