Skip to content

chore(interfaces): sync from released SDK artifacts - #109

Draft
phylax-ci wants to merge 1 commit into
masterfrom
centaur/sync-released-sdk-interfaces-1786084331
Draft

chore(interfaces): sync from released SDK artifacts#109
phylax-ci wants to merge 1 commit into
masterfrom
centaur/sync-released-sdk-interfaces-1786084331

Conversation

@phylax-ci

@phylax-ci phylax-ci commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Add the release-pinned consumer side of the Solidity-interface synchronization introduced by credible-sdk#1340.

Context

credible-std must consume published SDK interfaces without requiring network access from Foundry users and without pinning arbitrary commits.

This PR is intentionally draft until the first SDK release containing the interface archive is published. At that point, run scripts/sync-credible-interfaces.sh <sdk-version> and commit the generated lock plus vendored interfaces.

Changes

  • Add a one-command sync/check script for semver SDK release artifacts
  • Pin both SDK version and SHA-256 in credible-sdk-interfaces.lock when syncing
  • Verify exact archive contents before extraction
  • Make Assertion inherit the canonical IAssertion entrypoint used by the extractor
  • Exercise synchronization and drift detection on every PR
  • Block credible-std releases unless the vendored files match a real pinned SDK release
  • Document the release update workflow

Testing

  • bash -n scripts/sync-credible-interfaces.sh scripts/test-sync-credible-interfaces.sh
  • scripts/test-sync-credible-interfaces.sh
  • Local end-to-end sync/check against the archive built by credible-sdk#1340
  • Verified that --check rejects a missing lock and modified interface
  • forge fmt --check
  • forge build

Breaking Changes

None to Solidity consumers. The release workflow now requires an SDK interface lock before publishing.

Prompted by: Odysseus

Refs ENG-4433

@phylax-ci
phylax-ci force-pushed the centaur/sync-released-sdk-interfaces-1786084331 branch from 9e0cb4d to 3c6a25e Compare August 7, 2026 06:57
exit 1
fi

mapfile -t archive_entries < <(tar -tzf "${archive}" | LC_ALL=C sort)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This command is documented for maintainers, but it relies on sha256sum and mapfile; neither exists in the default macOS environment because its bundled Bash is 3.2. The documented update therefore fails before syncing on a standard developer Mac. Could we use a portable checksum fallback and avoid mapfile, or document Linux as a requirement?

@linear-code

linear-code Bot commented Aug 19, 2026

Copy link
Copy Markdown

ENG-4433

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.

2 participants