ci: a vcpkg baseline newer than the runner image fails to resolve - #86
Merged
Conversation
Fetching a baseline commit makes versions/baseline.json readable, but vcpkg reads the version database itself off the working tree, and the runner image freezes that at build time. A baseline newer than the image then asks for an entry the local tree has never seen: error : no version database entry for vcpkg-cmake-config at 2026-07-21 Which jobs it hits depends on the image they draw. On PR #84 the x64 job got image 20260728 and passed, Win32 got 20260720 and failed on the same commit. Check out versions/ at the newest baseline instead. Entries are append-only, so it also satisfies the engine's older pin, and scripts/ stays put to keep matching the vcpkg.exe the image shipped. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012gAp9x4L95B8DkeuHQpuqg Signed-off-by: Xavier Roche <roche@httrack.com>
Port removals do delete versions/<x>-/<port>.json, so the database is not append-only in general: seven files went away over the last two years. It holds across the baselines we pin (17 added, none removed, dependency closure intact), which is not the same thing as a rule, so state neither. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012gAp9x4L95B8DkeuHQpuqg Signed-off-by: Xavier Roche <roche@httrack.com>
xroche
enabled auto-merge (squash)
August 2, 2026 08:37
xroche
added a commit
that referenced
this pull request
Aug 2, 2026
…seline (#87) Picking the newest baseline by committer date was a proxy for ancestry, and a fragile one: ties sort unstably, and the exact check (`git merge-base --is-ancestor`) cannot see across two `--depth 1` fetches. Rather than repair the comparison, this drops it. Each manifest gets `versions/` checked out at its own pin, right before the build that uses it. That also retires the shakier assumption behind #86, that the database is append-only enough for one tree to serve both baselines. It is not append-only in general, since port removals delete versions files; it just held across the two baselines we pin. Master now pins different baselines for the engine and the GUI, so an ordinary CI run exercises both checkouts. Signed-off-by: Xavier Roche <xroche@gmail.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.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.
Bumping a vcpkg baseline past the runner image's frozen
C:\vcpkgbreaks the build. The step fetches the baseline commit sobaseline.jsonresolves, but vcpkg reads the version database off disk, so it then asks for an entry the image has never seen. On #84 that failed Win32 withno version database entry for vcpkg-cmake-config at 2026-07-21while x64 passed on the same commit: different runner images, not an architecture split.The step now checks out
versions/at the newest pinned baseline, leavingscripts/alone so it keeps matching the image'svcpkg.exe. Re-run #84 once this lands to confirm it: Win32 should go green whichever image it draws.