Remove vcpkg-artifacts. - #2032
Conversation
This must not be committed until after July 1 2026.
| :: If there were any arguments, also invoke vcpkg with them | ||
| IF "%1"=="" GOTO fin | ||
| CALL "%VCPKG_ROOT%\vcpkg-cmd.cmd" %* | ||
| "%VCPKG_ROOT%\vcpkg.exe" %* |
There was a problem hiding this comment.
I need to do some smoke testing after inserting into VS to confirm that vcpkg still works from the developer command prompt.
There was a problem hiding this comment.
Pull request overview
Removes the entire vcpkg-artifacts TypeScript implementation along with the C++ command shims that forwarded into it, the shell wrappers that supported the artifacts postscript mechanism, and CI/build plumbing for the Node-based artifacts pipeline. Artifact-invoking commands now exit early with a new localized "vcpkg artifacts has been removed" error. Note that some artifact-adjacent surfaces (JSON schemas, vcpkg-cmd.cmd, Z_VCPKG_POSTSCRIPT env allowlist, configuration parsing for kind: artifact) remain in the tree.
Changes:
- Delete the
vcpkg-artifacts/TypeScript project, test resources, and CI/lint setup for Node. - Remove C++ artifact-forwarding commands (
acquire,acquire-project,activate,deactivate,generate-msbuild-props,use,x-regenerate,x-update-registry,z-ce) and theconfigure-environmenthelper; intercept these names andadd/find artifactto error out withmsgVcpkgArtifactsHasBeenRemoved. - Simplify
vcpkg-initshell wrappers and standalone bundle to invokevcpkgdirectly, dropvcpkg-artifacts.mjspackaging/signing, and prune related metrics, message-map merging, autocomplete entries, and docs.
Reviewed changes
Copilot reviewed 240 out of 243 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| vcpkg-artifacts/** (deleted) | Removes the TypeScript artifacts implementation, tests, fixtures, eslint/tsconfig/package metadata. |
| src/vcpkg.cpp, include/vcpkg/commands.h | Adds early-exit check for removed artifact command names before command dispatch. |
| src/vcpkg/commands.{add,find}.cpp | Drops artifact-specific code paths and now errors when selector is artifact. |
| src/vcpkg/commands.{acquire,acquire-project,activate,deactivate,generate-msbuild-props,regenerate,update-registry,use,z-ce}.cpp + headers | Deletes the C++ forwarders that invoked the artifacts process. |
| src/vcpkg/commands.z-generate-message-map.cpp | No longer merges vcpkg-artifacts/locales/messages.json; now takes a single argument. |
| src/vcpkg/metrics.cpp, include/vcpkg/metrics.h | Removes AcquiredArtifacts/ActivatedArtifacts StringMetric entries. |
| include/vcpkg/configure-environment.h | Removes the configure-environment header used by the deleted forwarders. |
| scripts/verifyMessages.ps1 | Stops subtracting artifact message keys when validating message usage. |
| vcpkg-init/vcpkg-init, vcpkg-init/vcpkg-init.ps1, vcpkg-init/mint-standalone-bundle.ps1 | Wrappers invoke vcpkg directly; bundle no longer ships vcpkg-artifacts.mjs. |
| src/vcpkg-in-development.ps1 (deleted) | Removes the dev-mode PowerShell shim that managed the postscript flow. |
| azure-pipelines/{end-to-end-tests.ps1,end-to-end-tests-prelude.ps1,end-to-end-tests-dir/bundles.ps1,Create-PRDiff.ps1,arch-independent-signing.signproj,e2e-specs/autocomplete-posh-vcpkg.Tests.ps1} | Drops -RunArtifactsTests, $VcpkgPs1, artifact signing, and autocomplete entries for removed commands. |
| .github/workflows/{build,pr}.yaml | Removes Node setup, restricts CodeQL to c-cpp, renames the unit-test step. |
| .github/copilot-instructions.md, docs/vcpkg_tool_release_process.md, .gitignore | Removes guidance/cleanup steps for artifacts and the WithArtifacts presets. |
|
|
||
| if ($args.Count -ne 0) { | ||
| return vcpkg-shell @args | ||
| return & $VCPKG @args |
| :: If there were any arguments, also invoke vcpkg with them | ||
| IF "%1"=="" GOTO fin | ||
| CALL "%VCPKG_ROOT%\vcpkg-cmd.cmd" %* | ||
| "%VCPKG_ROOT%\vcpkg.exe" %* |
|
Some ARM folks contacted me out of band who are interested in taking this over because ARM is the only entity that ended up using this stuff, so we're going to hold off from landing this for a bit. |
This must not be committed until after July 1 2026.