-
Notifications
You must be signed in to change notification settings - Fork 292
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
Add manifest-info.json to record manifest path in vcpkg_installed #1568
Conversation
Is this for debugging purposes or is there a deeper reason? |
It was a requested feature to aid in debugging CG-related issues. This is just to be able to track which top level manifest owns which installed tree. |
To clarify, CG is 'component governance'. I believe it's basically the same system as dependabot. |
Is a pure "manifest_info.json" enough, or will this eventually need to catch more configuration? |
Do you have something specific in mind? |
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.
Needs:
- Docs
- (Probably) JSON schema?
This PR adds one specific info file for one specific property of the build. I wonder how long it takes until someone notices that more details are needed, and how the current solution will be scaled up then. Being able to locate the manifest is fine. But there is also a configuration file, and there might be options which modify dependency resolution, such as overlay ports, and the artifacts, such as overlay triplets. |
You’re right that this file could evolve to include more details, which is why we opted for the JSON format. For now, its primary purpose is to anchor systems like Dependabot, CG, and similar tools to the originating manifest. |
We discussed as a team today that we don't expect further evolution here. We'll add a JSON schema to more formalize the contract but no other docs. @JavierMatosD Please add something like this to docs: {
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-manifest-info.schema.json",
"type": "object",
"properties": {
"manifest-path": {
"description": "Identifies the path of the vcpkg manifest file that produced this installed tree.",
"type": "string"
}
},
"additionalProperties": true,
"required": [ "manifest-path" ]
} |
This PR introduces the generation of a manifest_info.json file in the vcpkg_installed directory for projects using a manifest (vcpkg.json). This file contains the absolute path to the manifest file that was used to generate the corresponding vcpkg_installed tree.
https://devdiv.visualstudio.com/DevDiv/_backlogs/backlog/Vcpkg%20Package%20Manager/Stories?System.AssignedTo=javiermat%40microsoft.com&System.State=Active%2CIn%20Progress%2CProposed%2CCommitted&workitem=2253211