Repository navigation
ci: add arkavo-fork go leg to the swift ↔ go xtest matrix - #55
Conversation
Run the cross-SDK harness twice, side by side, on every PR and main push: - upstream: unchanged — go CLI from the released opentdf/platform otdfctl/* tag. Stays red on the swift-encrypt → go-decrypt cell until opentdf/platform#4063 ships in a tag (released go only reads 0.manifest.json; since #53 the Swift writer emits the spec name manifest.json). - arkavo-fork: go CLI (otdfctl + sdk) built from arkavo-org/opentdf-platform at the new `fork-ref` dispatch input (default main). A symlink under sdk/go/src/<channel> points at the fork's otdfctl/; the harness Makefile follows it and uses the fork's go.work, so the in-tree sdk/ is what gets linked. Channel name is `arkavo-<ref>` so the harness treats it as a head build, never a release. The platform service stays upstream in both legs: the fork's service auth is CWT-only and cannot start against the harness's Keycloak IdP. Only the go client comes from the fork. Artifact names carry the matrix key so the two legs do not collide. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LZJTQWb6AAPQCh5QJwEaqU
|
Note Automatic reviews are paused because your team has used its included automatic processing for this billing period (headroom scales with your seat count). You can still comment "Gitar review" to run one anytime, and automatic reviews resume on their own by October 1. Add seats for more headroom. Code Review ✅ Approved🟢 Low risk Adds arkavo-fork Go leg to the Swift ↔ Go cross-test matrix to validate interoperability with the fork's manifest reader while keeping the platform service upstream in both legs. No issues found. Was this helpful? React with 👍 / 👎 | Gitar |
|
Two runs of the new matrix, per-leg cells ( Run 1, PR default
Run 2, dispatched with
So the fork leg goes green by default once arkavo-org/opentdf-platform#37 merges, and the upstream leg goes green once opentdf/platform#4063 ships in an |
|
Run 3, default
This is now the default state on every PR: fork leg green, upstream leg red until opentdf/platform#4063 ships in an |
Why two legs
Since #53 the Swift writer emits the spec container name
manifest.json. Released upstream Go (otdfctl/v0.37.0) only reads0.manifest.json, so the swift-encrypt → go-decrypt cell fails onmainwithtdfReader.Manifest failed: zip: file not found. The upstream fix is opentdf/platform#4063 (open); the arkavo fork carries the equivalent change in arkavo-org/opentdf-platform#37 (open).This PR turns
community-swiftinto ago-sourcematrix so both peers are exercised on every PR and main push:upstreamopentdf/platformotdfctl/*tag, resolved exactly as beforearkavo-forkarkavo-org/opentdf-platform@fork-refvia the fork'sgo.workmainPlatform service stays upstream in both legs
Only the Go client comes from the fork. The fork's platform service is CWT-only for auth and cannot start against the harness's Keycloak IdP, so
start-up-with-containers-macoskeeps itsopentdf/platformdefault in both legs.How the fork leg builds
sdk/go/src/<channel>is a symlink toplatform-fork/otdfctl. The harnessMakefileresolves the real path and picks up the enclosinggo.work("Using platform go.work"), so the fork's in-treesdk/is what otdfctl links against — noreplacedirectives. The channel isarkavo-<sanitised ref>(e.g.go@arkavo-main), which never matches the harness's released-version regex, so it is treated as a head build. Bothupload-artifactnames carry the matrix key.Pointing the fork leg at a branch or SHA
fork-refdefaults tomain; it flows throughresolve-refslike the other pins and appears in the run summary table.Expected state
upstream: red ontest_tdf_roundtrip[small-swift@main-go@v0.37.0-…-tdf]until fix(sdk): read the TDF manifest under the spec name manifest.json opentdf/platform#4063 ships in anotdfctl/*tag.arkavo-forkwith defaultfork-ref: main: red on the same cell (forkmainat 9f0398e3 predates feat: Add TDF-JSON and TDF-CBOR format support #37).arkavo-forkwithfork-ref: tdf-container-spec-compliance(ormainafter feat: Add TDF-JSON and TDF-CBOR format support #37 merges): green.Unchanged:
--focus swift, all pytest flags,mainis not branch-protected so the job rename is free.🤖 Generated with Claude Code
https://claude.ai/code/session_01LZJTQWb6AAPQCh5QJwEaqU