New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restructure PackageService to better support endpoints requiring all versions of an ID #6905
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scottbommarito
requested review from
joelverhagen,
agr,
loic-sharma,
xavierdecoster,
shishirx34,
ryuyu,
chenriksson,
cristinamanum,
skofman1 and
zhhyu
February 20, 2019 00:43
loic-sharma
reviewed
Feb 20, 2019
loic-sharma
reviewed
Feb 20, 2019
joelverhagen
approved these changes
Feb 20, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Address comment then
skofman1
reviewed
Feb 20, 2019
skofman1
reviewed
Feb 20, 2019
skofman1
reviewed
Feb 20, 2019
skofman1
approved these changes
Feb 20, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cristinamanum
approved these changes
Feb 20, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
precursor to #6773
Both
PackagesController.DisplayPackage
andPackagesController.Manage
require all versions of a package.Previously, this was done either implicitly or lazily, specifically:
FindPackageByIdAndVersion
must fetch all versions to calculate the latest oneThis is bad because our perf for these endpoints are relying on a hidden behavior of one of our services, and when this hidden behavior doesn't go our way, lazy loading is very very very very slow, and adding the deprecation entities associated with this feature makes it even worse.
So, to remedy this
FindPackagesById
to get all packages by ID (with awithDeprecations
parameter for when deprecation entities are needed)FindPackageByIdAndVersion
that fetches the latest version from a list of packages and move it intoFilterLatestPackage
FindPackageByIdAndVersion
now callsFilterLatestPackage
internallyFindPackagesById
and thenFilterLatestPackage
if an exact version isn't foundFindAbsoluteLatestPackageById
intoDisplayPackage