devcontainers / images

Repository for pre-built dev container images published under mcr.microsoft.com/devcontainers
https://containers.dev
MIT License
1.23k stars 450 forks source link

Cannot use vcpkg in manifest mode with cpp image #1133

Open NoMore201 opened 1 month ago

NoMore201 commented 1 month ago

When using vcpkg in manifest mode, it is possible to specify a commit of the vcpkg repository to track via the builtin-baseline option, such as:

{
  "name": "test-vcpkg-template",
  "dependencies": [
    {
      "name": "expected-lite",
      "version>=": "0.6.3"
    }
  ],
  "builtin-baseline": "01acfdfde3ed99280d3883a8fccd5fa4408f5214"
}

Devcontainer cpp image clones vcpkg repository using the --depth=1 option (link to the code) preventing usage of vcpkg in manifest mode, unless manually modifying the container image to fetch all git history.

samruddhikhandale commented 1 month ago

Hi 👋

Thanks for opening the issue. To keep the cpp image size minimal, we are intentionally using --depth=1. However, I understand how the builtin-baseline option might become unusable due to this.

Doing a full git clone would significantly increase the size of the cpp image. @NoMore201, do you think cloning up to the last N commits would be useful to you?

NoMore201 commented 1 month ago

Hello!

To be fair I'm not a vcpkg expert to tell if this is the right way to do things, since no one else complained so far. Anyway it is rather easy to modify the dev container to clone the entire history.

I would say to keep it like it is, unless someone else with more experience has something to add.