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.
Really we need to record what constraint the user requested when installing as well as what packages were explicitly installed in order to do a better job here.
Currently we assume any ^x that is newer counts as outdated provided it is not a package that is a dependency with a tighter constraint range.
This also ties into how we handle multiple installs, which currently we do, eg. you can have openssl^1 and openssl^3 both installed though this works by luck rather than by design. If you have both then we need to state that both ^1 and ^3 are outdated, this naive implementation will actually error currently for this case.
This implementation also misses new major versions which you will commonly want to upgrade to, eg. a
git^3is released, because we don’t want to tell the user eg.openssl^1is outdated when it fact it is a dependency. This can probably be fixed without a data store but I didn't do it yet.