ci(macos): pass --update to conan install for recipe-revision resilience#116
Merged
Conversation
macOS has no prebuilt plotjuggler_core binary in Cloudsmith (the core release job publishes only a Linux binary), so every macOS run builds core from source. When a core version is re-published (its recipe revision changes on the remote), a restored Conan cache can keep pointing at the superseded revision, whose exported sources no longer exist — yielding "exports_sources but sources not found in local cache" and a hard failure. --update forces re-resolution of the current recipe revision + sources from the remote on every run. Co-Authored-By: Claude Opus 4.8 (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.
Problem
macOS CI on
mainhas been failing because there is no prebuiltplotjuggler_corebinary for macOS in Cloudsmith — the corerelease.ymlpublishes only a Linux/gcc binary. Every macOS run therefore builds core from source via--build=missing.When a core version is re-published (its recipe revision changes on the remote) the restored Conan cache can keep pointing at the superseded revision, whose exported sources no longer exist on the remote. The build then fails hard:
This is what happened when
v0.5.0was re-published mid-run: the macOS job (slowest, still building Arrow/protobuf) resolved the old recipe revision, which was overwritten before it reached the core build. Linux dodged it (downloads its binary); Windows finished its from-source core build before the re-publish.Fix
Add
--updateto theconan installinci-macos.yml. It forces re-resolution of the current recipe revision (and its sources) from the remote on every run, instead of trusting whatever revision is in the restored cache.This is the immediate, low-risk unblock. The durable fix — publishing a macOS binary so this job downloads core instead of compiling it — is in PlotJuggler/plotjuggler_core#108.
--updateremains a useful safety net afterward for any settings combo that misses the published binary.🤖 Generated with Claude Code