Apply version ranges to nuspecs during fix-up command #3835
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.
Per #2883, version ranges specified in paket.dependencies weren't patched into auto-generated nuspecs as part of the
fix-nuspecs
call. This PR attempts to add them in, in addition to a slight cleanup of the existing logic to make it easier to follow in my view.The approach is to first determine what the nuspec file ranges should be for all known dependencies. This is done by taking the ranges specified in the dependencies file, which are optimistic, and modifying them with the 'resolved' information from the lock file. What this means depends on the type of range specified:
Once we have these ranges derived, we iterate through the dependencies in the nuspec as before, only taking action if we encounter a dependency that we know is a direct dependency.
Caveats:
I don't have tests for this yet, but from manual testing on F# Formatting (after adding an upper bound myself to the dependencies file and manually calling
fix-nuspecs
on the generated nuspecs), this seems to work:results in a nuspec with the range