Fix "opam install <local_dir>" not updating pinned packages' metadata #6209
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #5567
I have no idea why
for_view
was introduced in kit-ty-kate@9b2a67f but i've testedopam show
and i'm not seeing any breaking nor does the testsuite.The bypass here was causing local packages to be put in the
already_pinned
set. However this set is only used to update the<switch>/.opam-switch/sources/<pkg>
directory, not the<...>/overlay
directory as the assumption with this set is that the package description hasn't change.Removing that bypass makes the function much more consistent.
The
reinstall
bit is a bit easier to understand: when using--deps-only
or--show-action
, the codepath goes throughsimulate_local_pinning
which didn't take into account that some packages being pinned are already pinned. In that case thereinstall
field must be updated to ensure the rest of the code knows that package should be reinstalled.