Repository navigation
fix(bindings): close the review findings that followed PR #2937 - #2970
Merged
Merged
Conversation
The iOS plan writes the one directory the shipped Package.swift reads, so `build-binding-layer ios` takes no `--out` flag and refuses one. This deletes the lexical path comparison that guarded the flag, which compared two spellings of one directory, together with its test. The workflow still hands the directory to its upload step through the `out` input. The Swift contract step streams the standard output of xcodebuild line by line instead of printing it after exit, so a stalled simulator shows its last line before the job timeout kills it. The suite imports ZingoBindings without `@testable`, because every converter it reaches is public. The Gradle build refuses to configure when the Kotlin contract-tests or golden directory is missing. It counts the `@Test` methods under the contract-tests directory and requires every unit-test task to execute exactly that many tests, so a NO-SOURCE skip can no longer pass. The workbench pins the Swift test count by counting XCTest methods rather than the `func test` substring, imports `std::path` once, and drops the manifest constant that duplicated the contract-tests directory. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
32 of 35 tasks
The streaming step read lines through `BufRead::lines`, and its UTF-8 error closure was an exact duplicate of the one in `capture_command`, which the dupes gate rejects. The step now reads raw lines with `read_until` and converts each one lossily, as the buffered version did before it, so the only error path left is a read failure and the gate reports no exact group and the same 34 near groups as `dev`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ollowups # Conflicts: # bindings/android/build.gradle.kts # tools/workbench/src/binding_layer.rs
juanky201271
approved these changes
Oct 16, 2026
juanky201271
left a comment
Contributor
There was a problem hiding this comment.
Android and iOS green on 42dcce9; the iOS log shows Executed 3 tests and the Gradle gate ran under testReleaseUnitTest. One optional nit inline.
zancas
added a commit
that referenced
this pull request
Oct 16, 2026
An issue_comment run of the publish workflow takes its YAML from the default branch's head, while the build workflows it calls check out the manifest entry's commit and run that commit's builder. The two agree only when they are one commit. PR #2991's `/publish` built entry commit 7352787 under the head 3ac96c4, whose iOS workflow had dropped the `--out` flag in PR #2970 while the older builder still required it, so the iOS build failed and the publish job refused. binding-manifest gains `--publish-at <ref>`. With `--check` it refuses an entry that awaits `/publish` and names any commit but that one, naming the head to move the entry to. With `--newest` it refuses the same way. The manifest check passes the base branch's head on every pull request, so the pull request learns the required re-point before anyone comments. The publish request job passes github.sha, then checks out the entry's commit before the naming step, so the names, the flags, and the build all come from the one commit the run's own workflow belongs to. Co-Authored-By: Claude Fable 5.1 <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
A review of PR #2937 "ci(bindings): run the Kotlin and Swift wire-contract tests on the shipped Binding Sets" found ten items. PR #2968 "fix(workbench): hide every symbol but the UniFFI exports in the iOS static libraries" addresses none of them. Two items closed on their own: the iOS job has run green on a Mac, and the glossary thread is resolved. This PR closes the other eight.
Change
build-binding-layer iostakes no--outflag. The plan writes the one directory that the shippedPackage.swiftreads. An explicit--outoniosis refused. The lexical path comparison that guarded the flag is deleted with its test. The iOS workflow still hands that directory to its upload step through theoutinput.xcodebuildline by line. A stalled simulator now shows its last line before the job timeout.ZingoBindingswithout@testable. Every converter it reaches is public.@Testmethods under the contract-tests directory. Every unit-test task must execute exactly that many tests. ANO-SOURCEskip can no longer pass.SWIFT_CONTRACT_TEST_COUNTto the XCTest methods of the suite, not to thefunc testsubstring.binding_layer.rsimportsstd::pathonce and spellspath::Componentat each use.SWIFT_CONTRACT_TESTS_MANIFESTconstant is gone. It duplicated the contract-tests directory.IosSimulator.namestays. The step prints it in its "testing on" line.Verification
cargo fmt,cargo check --all-targetsandcargo clippy --all-targets -- -D warningspass on the workbench crate. The workbench unit tests did not run here. No Mac and no Gradle ran here. The per-PR Android and iOS jobs are the proof.🤖 Generated with Claude Code