Skip to content

Commit 77620a9

Browse files
authored
extensions: fixup entire manifest (#3720)
Not just explicitly installed packages. Do I understand this logic? No. Do I understand if this fixes anything? No. Fixes #3719
1 parent 8cc835c commit 77620a9

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

src/Operations.jl

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -225,19 +225,16 @@ end
225225
# This has to be done after the packages have been downloaded
226226
# since we need access to the Project file to read the information
227227
# about extensions
228-
function fixup_ext!(env, pkgs)
229-
for pkg in pkgs
228+
function fixup_ext!(env::EnvCache)
229+
for pkg in values(env.manifest)
230230
v = joinpath(source_path(env.manifest_file, pkg), "Project.toml")
231-
if haskey(env.manifest, pkg.uuid)
232-
entry = env.manifest[pkg.uuid]
233-
if isfile(v)
234-
p = Types.read_project(v)
235-
entry.weakdeps = p.weakdeps
236-
entry.exts = p.exts
237-
for (name, _) in p.weakdeps
238-
if !haskey(p.deps, name)
239-
delete!(entry.deps, name)
240-
end
231+
if isfile(v)
232+
p = Types.read_project(v)
233+
pkg.weakdeps = p.weakdeps
234+
pkg.exts = p.exts
235+
for (name, _) in p.weakdeps
236+
if !haskey(p.deps, name)
237+
delete!(pkg.deps, name)
241238
end
242239
end
243240
end
@@ -1509,7 +1506,7 @@ function add(ctx::Context, pkgs::Vector{PackageSpec}, new_git=Set{UUID}();
15091506
man_pkgs, deps_map = _resolve(ctx.io, ctx.env, ctx.registries, pkgs, preserve, ctx.julia_version)
15101507
update_manifest!(ctx.env, man_pkgs, deps_map, ctx.julia_version)
15111508
new_apply = download_source(ctx)
1512-
fixup_ext!(ctx.env, man_pkgs)
1509+
fixup_ext!(ctx.env)
15131510

15141511
# After downloading resolutionary packages, search for (Julia)Artifacts.toml files
15151512
# and ensure they are all downloaded and unpacked as well:
@@ -1553,7 +1550,7 @@ function develop(ctx::Context, pkgs::Vector{PackageSpec}, new_git::Set{UUID};
15531550
pkgs, deps_map = _resolve(ctx.io, ctx.env, ctx.registries, pkgs, preserve, ctx.julia_version)
15541551
update_manifest!(ctx.env, pkgs, deps_map, ctx.julia_version)
15551552
new_apply = download_source(ctx)
1556-
fixup_ext!(ctx.env, pkgs)
1553+
fixup_ext!(ctx.env)
15571554
download_artifacts(ctx.env; platform=platform, julia_version=ctx.julia_version, io=ctx.io)
15581555
write_env(ctx.env) # write env before building
15591556
show_update(ctx.env, ctx.registries; io=ctx.io)
@@ -1694,7 +1691,7 @@ function up(ctx::Context, pkgs::Vector{PackageSpec}, level::UpgradeLevel;
16941691
end
16951692
update_manifest!(ctx.env, pkgs, deps_map, ctx.julia_version)
16961693
new_apply = download_source(ctx)
1697-
fixup_ext!(ctx.env, pkgs)
1694+
fixup_ext!(ctx.env)
16981695
download_artifacts(ctx.env, julia_version=ctx.julia_version, io=ctx.io)
16991696
write_env(ctx.env; skip_writing_project) # write env before building
17001697
show_update(ctx.env, ctx.registries; io=ctx.io, hidden_upgrades_info = true)
@@ -1740,7 +1737,7 @@ function pin(ctx::Context, pkgs::Vector{PackageSpec})
17401737

17411738
update_manifest!(ctx.env, pkgs, deps_map, ctx.julia_version)
17421739
new = download_source(ctx)
1743-
fixup_ext!(ctx.env, pkgs)
1740+
fixup_ext!(ctx.env)
17441741
download_artifacts(ctx.env; julia_version=ctx.julia_version, io=ctx.io)
17451742
write_env(ctx.env) # write env before building
17461743
show_update(ctx.env, ctx.registries; io=ctx.io)
@@ -1788,7 +1785,7 @@ function free(ctx::Context, pkgs::Vector{PackageSpec}; err_if_free=true)
17881785

17891786
update_manifest!(ctx.env, pkgs, deps_map, ctx.julia_version)
17901787
new = download_source(ctx)
1791-
fixup_ext!(ctx.env, pkgs)
1788+
fixup_ext!(ctx.env)
17921789
download_artifacts(ctx.env, io=ctx.io)
17931790
write_env(ctx.env) # write env before building
17941791
show_update(ctx.env, ctx.registries; io=ctx.io)

0 commit comments

Comments
 (0)