JuliaLang / Pkg.jl

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

Pkg.test sandbox resolve merge doesn't respect JLL build numbers in manifest #3902

Open IanButterworth opened 1 month ago

IanButterworth commented 1 month ago

I have a setup where we

1) Freeze the manifest 2) Build a sysimage 3) Use sysimage to run Pkg.test

The manifest had Cairo_jll v1.18.0+1, and v1.18.0+2 became available and caused the error seen here during the Pkg.test sandbox resolve.

ERROR: Unsatisfiable requirements detected for package Cairo_jll [83423d85]:
 Cairo_jll [83423d85] log:
 ├─possible versions are: 1.18.0 or uninstalled (package in sysimage!)
 ├─restricted to versions 1.18.0 by an explicit requirement, leaving only versions: 1.18.0
 └─restricted by compatibility requirements with Pixman_jll [30392449] to versions: uninstalled — no versions left
   └─Pixman_jll [30392449] log:
     ├─possible versions are: 0.42.2 or uninstalled (package in sysimage!)
     └─restricted to versions 0.42.2 by an explicit requirement, leaving only versions: 0.42.2

Note #3901 covers that the resolver error doesn't show build numbers where it should.

The resolver was taught about build numbers that shouldn't be upgraded in https://github.com/JuliaLang/Pkg.jl/pull/3371 Perhaps that needs to be brought over to this resolve operation.