@@ -791,6 +791,19 @@ function with_dependencies_loadable_at_toplevel(f, mainctx::Context, pkg::Packag
791
791
need_to_resolve = false
792
792
is_project = Types. is_project (localctx. env, pkg)
793
793
794
+ # Only put `pkg` and its deps + target deps (recursively) in the temp project
795
+ collect_deps! (seen, pkg) = begin
796
+ pkg. uuid in seen && return
797
+ push! (seen, pkg. uuid)
798
+ info = manifest_info (localctx. env, pkg. uuid)
799
+ info === nothing && return
800
+ need_to_resolve |= haskey (info, " path" )
801
+ localctx. env. project[" deps" ][pkg. name] = string (pkg. uuid)
802
+ for (dpkg, duuid) in get (info, " deps" , [])
803
+ collect_deps! (seen, PackageSpec (dpkg, UUID (duuid)))
804
+ end
805
+ end
806
+
794
807
if is_project # testing the project itself
795
808
# the project might have changes made to it so need to resolve
796
809
need_to_resolve = true
@@ -807,23 +820,11 @@ function with_dependencies_loadable_at_toplevel(f, mainctx::Context, pkg::Packag
807
820
)]
808
821
else
809
822
# Only put `pkg` and its deps (recursively) in the temp project
810
- collect_deps! (seen, pkg) = begin
811
- pkg. uuid in seen && return
812
- push! (seen, pkg. uuid)
813
- info = manifest_info (localctx. env, pkg. uuid)
814
- need_to_resolve |= haskey (info, " path" )
815
- localctx. env. project[" deps" ][pkg. name] = string (pkg. uuid)
816
- for (dpkg, duuid) in get (info, " deps" , [])
817
- collect_deps! (seen, PackageSpec (dpkg, UUID (duuid)))
818
- end
819
- end
820
- # Only put `pkg` and its deps (revursively) in the temp project
821
823
empty! (localctx. env. project[" deps" ])
822
824
localctx. env. project[" deps" ][pkg. name] = string (pkg. uuid)
823
-
824
825
seen_uuids = Set {UUID} ()
825
- collect_deps! (seen_uuids, pkg) # Only put `pkg` and its deps (recursively) in the temp project
826
-
826
+ # Only put `pkg` and its deps (recursively) in the temp project
827
+ collect_deps! (seen_uuids, pkg)
827
828
end
828
829
829
830
pkgs = PackageSpec[]
@@ -833,6 +834,11 @@ function with_dependencies_loadable_at_toplevel(f, mainctx::Context, pkg::Packag
833
834
end
834
835
if ! isempty (target)
835
836
collect_target_deps! (localctx, pkgs, pkg, target)
837
+ seen_uuids = Set {UUID} ()
838
+ for dpkg in pkgs
839
+ # Also put eventual deps of target deps in new manifest
840
+ collect_deps! (seen_uuids, dpkg)
841
+ end
836
842
end
837
843
838
844
mktempdir () do tmpdir
0 commit comments