From c1733d88510b7afb88f7a17849de514365e42c84 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 2 May 2026 16:53:41 +0900 Subject: refactor(registry): introduce Repository and InstallerExecutor traits Sets up DI scaffolding for in-process installer E2E tests, mirroring how Composer's PHPUnit suite swaps Packagist (FactoryMock) and the install manager (InstallationManagerMock) without touching the network or filesystem. Additions: - Repository trait + RepositorySet (Composer's RepositoryInterface analog), with PackagistRepository, InlinePackageRepository, VcsRepository impls. - InstallerExecutor trait (Composer's InstallationManager analog) with FilesystemExecutor extracted from install_from_lock. install_from_lock now delegates per-package install/uninstall verbs to FilesystemExecutor; console output orchestration stays in the caller so existing --EXPECT-OUTPUT-shape assertions remain comparable. No behavior change - all 136 enabled installer fixtures still pass. Also tightens the installer_fixture\! ignore form to a single token (installer_fixture\!(name, ignore)) for readability. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/mozart-registry/Cargo.toml | 1 + 1 file changed, 1 insertion(+) (limited to 'crates/mozart-registry/Cargo.toml') diff --git a/crates/mozart-registry/Cargo.toml b/crates/mozart-registry/Cargo.toml index af65026..abde30d 100644 --- a/crates/mozart-registry/Cargo.toml +++ b/crates/mozart-registry/Cargo.toml @@ -10,6 +10,7 @@ mozart-sat-resolver.workspace = true mozart-semver.workspace = true mozart-vcs.workspace = true anyhow.workspace = true +async-trait.workspace = true filetime.workspace = true flate2.workspace = true md5.workspace = true -- cgit v1.3.1