JuliaLang / Pkg.jl

Pkg - Package manager for the Julia programming language
https://pkgdocs.julialang.org
Other
609 stars 251 forks source link

prune manifest after the set of some deps have been "demoted" to weakdeps #3864

Closed KristofferC closed 2 months ago

KristofferC commented 3 months ago

Fixes the manifest pruning issue in https://github.com/JuliaLang/Pkg.jl/issues/3863.

Before we run this fixup code we do not know which deps are weak and not (all are considered normal deps). Or well, we kind of know but we don't have the information easily retrievable. Manifest pruning before this stage will not prune orphan entries which are weak deps of some package which is why in #3863 Enzyme was not pruned away (it is a weak dep of DiffEqBase).

Solve this by just pruning after we have categorized things into weak/normal deps.

KristofferC commented 3 months ago

This is not 100% satisfactory though because we download the packages before this step and IIUC it means we would download Enzyme in this case and only then prune the manifest to remove it. So perhaps we need to do this before we have downloaded anything.

(The reason Enzyme ends up here at all is because with the tiered resolver we first try to resolve things with all non-input packages having identical versions, so Enzyme being in the manifest then ends up as an output from the resolver).

KristofferC commented 2 months ago

At least this is better than status quo.