From daa580b97ad2d585c100927842ba88e891eb9aca Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 20 Jul 2026 17:25:38 +0900 Subject: fix(pool-builder): fix three build_pool bugs found by un-ignoring test_pool_builder build_pool never populated skipped_load for locked packages skipped due to the update allow list (nor their replace targets), so load_package's skipped_load-driven transitive-unlock branch never fired. load_packages_marked_for_loading never recorded loaded packages into loaded_per_repo, so repositories had no way to dedupe already-loaded versions when a constraint got re-expanded, producing duplicate pool entries. unlock_package looked up a locked package's removal index via the position in a Vec snapshot of self.packages.values() instead of its actual IndexMap key, so after earlier removals the wrong entry (or none) got removed, leaving stale locked packages in the pool. Fixing all three lets test_pool_builder run un-ignored. --- crates/shirabe/tests/dependency_resolver/pool_builder_test.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'crates/shirabe/tests/dependency_resolver/pool_builder_test.rs') diff --git a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs index ce5310b2..9b82908d 100644 --- a/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs +++ b/crates/shirabe/tests/dependency_resolver/pool_builder_test.rs @@ -621,7 +621,6 @@ fn run_test_pool_builder( std::env::set_current_dir(&old_cwd).unwrap(); } -#[ignore = "PoolBuilder::build_pool never populates skipped_load (PHP populates it at buildPool's lockedPackage loop, incl. its replace targets), so load_package's skipped_load-driven transitive unlock branch never fires; fails partial-update-unfixing-with-replacers-providers.test"] #[test] fn test_pool_builder() { let fixtures_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")) -- cgit v1.3.1