[vcpkg] Implement VersionedPortfileProvider and BaselineProvider#14123
Merged
vicroms merged 52 commits intomicrosoft:masterfrom Nov 27, 2020
Merged
[vcpkg] Implement VersionedPortfileProvider and BaselineProvider#14123vicroms merged 52 commits intomicrosoft:masterfrom
vicroms merged 52 commits intomicrosoft:masterfrom
Conversation
strega-nil
reviewed
Oct 28, 2020
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
…ioning/versioned-portfile-provider
…ub.com/vicroms/vcpkg into versioning/versioned-portfile-provider
…ioning/versioned-portfile-provider
…ioning/versioned-portfile-provider
…ersioned-portfile-provider
Member
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
d4c9cec to
cfb807d
Compare
Member
Author
|
@strega-nil @BillyONeal @ras0219 I think this is ready for merge now. I will investigate the |
…ersioned-portfile-provider
strega-nil
suggested changes
Nov 23, 2020
Comment on lines
+27
to
+32
| using std::hash; | ||
| using std::size_t; | ||
| using std::string; | ||
|
|
||
| return ((hash<string>()(key.port_name) ^ (hash<string>()(key.version.to_string()) << 1)) >> 1) ^ | ||
| (hash<int>()(static_cast<int>(key.scheme)) << 1); |
Contributor
There was a problem hiding this comment.
Reminder to self to add hashing to the vcpkg lib.
745be0a to
c12a53c
Compare
Member
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Member
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
strega-nil
added a commit
to strega-nil/vcpkg
that referenced
this pull request
May 5, 2021
…rosoft#14123) * WIP: Get versions from database files * Fix formatting * Provider inherits ResourceBase * Correct versions JSON file location * Fix formatting * Fix formatting * Fix include in versions.h * Fetch port versions using git tree object * Undo changes to x-history * Remove unnecesary moves Co-authored-by: nicole mazzuca <mazzucan@outlook.com> * Extract Git manipulation code * [WIP] Review comments * [WIP] Review comments pt. 2 * [WIP] Review comments / fix formatting * Generate baseline.json * Extract deserializers from registries source file * BaselineProvider initial implementation * Modify gitignore * Update .gitignore again * Use JSON deserializer for versions db * Lazy load baseline file * Fetch baseline.json from baseline commit * More git abstractions * Clean up code * Path helpers * Formatting * Move data into impl object * Use implementation object for VersionedPortfileProvider * Reuse cloned instance for checkouts * Code cleanup and formatting * Fix returning dangling reference * Prepare to remove files in port_versions/ * Remove files in port_versions/ * Update .gitignore * Some PR review comments * Use StringView * More StringView conversions * More refactoring * Make some implementation members private * Functions for parsing baseline and version files * Hide deserializers implementation * Check for `versions` feature flag in registries. Co-authored-by: Robert Schumacher <roschuma@microsoft.com> Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
This file contains hidden or 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
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.
This PR implements two interfaces that are to be consumed by a versioned dependency resolver.
This is an important step in implementing package versioning in vcpkg.
IVersionedPortfileProvider { get_port_versions(port_name) -> Version[] get_control_file(port_name, version) -> ControlFile } IBaselineProvider { get_baseline_version(port_name) -> Version }This is an MVP implementation that works with the default ports registry.