opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
If a package needs to be rebuilt because of upstream changes, an error in the rebuild causes a cache indicating that it's installed to be written. Something appears to be wrong in OpamClient.parallel_apply, but I haven't got to the bottom of exactly what.
What I have written is a test! Spotted while debugging #5921 - because errors during fetch also trigger this. Note in the commit history that erasing .opam-switch/packages/cache causes opam to do the right thing on the second upgrade.
If a package needs to be rebuilt because of upstream changes, an error in the rebuild causes a cache indicating that it's installed to be written. Something appears to be wrong in
OpamClient.parallel_apply
, but I haven't got to the bottom of exactly what.What I have written is a test! Spotted while debugging #5921 - because errors during fetch also trigger this. Note in the commit history that erasing
.opam-switch/packages/cache
causes opam to do the right thing on the second upgrade.