Skip to content

ci: archive the proto baseline from the api/proto subtree and retry the cvc5 download - #497

Merged
HuiJun merged 1 commit into
developfrom
ci/proto-baseline-subtree-and-cvc5-retry
Sep 21, 2026
Merged

HuiJun merged 1 commit into
developfrom
ci/proto-baseline-subtree-and-cvc5-retry

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

What and why

Both red jobs on develop at bd59ac7 are infrastructure, not code:

  • Go static checksmake proto-breaking built the baseline with git archive HEAD^1 api/proto. A pathspec makes git archive walk the whole tree of HEAD^1, and on CircleCI's blobless (promisor) checkout that lazily fetches every blob the parent commit does not share with the checkout. The fetch goes to the promisor remote over SSH, which the executor cannot authenticate to, so the job died with Permission denied (publickey) / could not fetch … from promisor remote on a merge that touched no .proto file.

    Fix: archive the subtree as the tree-ish instead — git archive 'HEAD^1:api/proto'. Only that subtree's objects are read, and they are already present because the checkout's api/proto shares them. The archive root is now the proto directory, so buf breaking … --against "$baseline#format=tar" drops subdir=api/proto.

    -git archive --format=tar -o "$baseline" '$(BUF_BREAKING_REF)' api/proto
    -$(BUF) breaking api/proto --against "$baseline#format=tar,subdir=api/proto"
    +git archive --format=tar -o "$baseline" '$(BUF_BREAKING_REF):api/proto'
    +$(BUF) breaking api/proto --against "$baseline#format=tar"
  • Go race tests — died in Install cvc5 on a single failed curl of the GitHub release asset. Added --retry 5 --retry-delay 5 --retry-all-errors; the SHA-256 pin is unchanged.

How it was verified

  • Reproduced the failure in a local --filter=blob:none clone with the SSH promisor URL: the old pathspec form fetches and fails, the tree-ish form archives without any fetch and buf breaking reports ✓ No breaking schema changes.
  • make proto-breaking BUF_BREAKING_REF=HEAD^1 and BUF_BREAKING_REF=origin/develop pass on this branch.
  • python3 scripts/changelog.py check, gofmt -l ., go vet ./..., make lint, make build pass.
  • The pipeline on this PR is the real test of both changes in the CircleCI executor.

Checklist

  • make test and make lint pass locally
  • Tests added or updated for the change (tooling only)
  • Documentation extended where it already covers the surface (see CONTRIBUTING.md)
  • Changelog entry added as changes/unreleased/<slug>.<section>.md, not as an edit to CHANGELOG.md
  • baselines regenerated and make docs-counts run if a gate count moved (compliance rows need nothing: the census is counted at docs build)
  • No internal work-item labels (waves, slices, F4, K5) in the body, docs, or changelog

…he cvc5 download

Co-Authored-By: jason.han <hanhuijun@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot marked this pull request as ready for review September 21, 2026 17:45

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@HuiJun
HuiJun merged commit 3461e87 into develop Sep 21, 2026
15 checks passed
@HuiJun
HuiJun deleted the ci/proto-baseline-subtree-and-cvc5-retry branch September 21, 2026 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant