@@ -1109,12 +1109,13 @@ const EXT_DORMITORY_FAILED = ExtensionId[]
11091109
11101110function insert_extension_triggers (pkg:: PkgId )
11111111 pkg. uuid === nothing && return
1112+ extensions_added = Set {PkgId} ()
11121113 for env in load_path ()
1113- insert_extension_triggers ( env, pkg)
1114+ insert_extension_triggers! (extensions_added, env, pkg)
11141115 end
11151116end
11161117
1117- function insert_extension_triggers ( env:: String , pkg:: PkgId ):: Union{Nothing,Missing}
1118+ function insert_extension_triggers! (extensions_added :: Set{PkgId} , env:: String , pkg:: PkgId ):: Union{Nothing,Missing}
11181119 project_file = env_project_file (env)
11191120 if project_file isa String
11201121 manifest_file = project_file_manifest_path (project_file)
@@ -1132,7 +1133,7 @@ function insert_extension_triggers(env::String, pkg::PkgId)::Union{Nothing,Missi
11321133 extensions === nothing && return
11331134 weakdeps === nothing && return
11341135 if weakdeps isa Dict{String, Any}
1135- return _insert_extension_triggers ( pkg, extensions, weakdeps)
1136+ return _insert_extension_triggers! (extensions_added, pkg, extensions, weakdeps)
11361137 end
11371138
11381139 d_weakdeps = Dict {String, String} ()
@@ -1147,18 +1148,21 @@ function insert_extension_triggers(env::String, pkg::PkgId)::Union{Nothing,Missi
11471148 d_weakdeps[dep_name] = uuid
11481149 end
11491150 @assert length (d_weakdeps) == length (weakdeps)
1150- return _insert_extension_triggers ( pkg, extensions, d_weakdeps)
1151+ return _insert_extension_triggers! (extensions_added, pkg, extensions, d_weakdeps)
11511152 end
11521153 end
11531154 end
11541155 end
11551156 return nothing
11561157end
11571158
1158- function _insert_extension_triggers ( parent:: PkgId , extensions:: Dict{String, <:Any} , weakdeps:: Dict{String, <:Any} )
1159+ function _insert_extension_triggers! (extensions_added :: Set{PkgId} , parent:: PkgId , extensions:: Dict{String, <:Any} , weakdeps:: Dict{String, <:Any} )
11591160 for (ext:: String , triggers:: Union{String, Vector{String}} ) in extensions
11601161 triggers isa String && (triggers = [triggers])
11611162 id = PkgId (uuid5 (parent. uuid, ext), ext)
1163+ # Only add triggers for an extension from one env.
1164+ id in extensions_added && continue
1165+ push! (extensions_added, id)
11621166 gid = ExtensionId (id, parent, 1 + length (triggers))
11631167 trigger1 = get! (Vector{ExtensionId}, EXT_DORMITORY, parent)
11641168 push! (trigger1, gid)
0 commit comments