chore(release): 1.3.0 — pin xcframework URLs + RCL-by-default on Apple - #174
Merged
Conversation
Completion-design §6, the post-tag pin PR: - releaseBaseURL 1.2.0 -> 1.3.0; CZenohPico / CCycloneDDS checksums recomputed from the re-zipped 1.3.0 assets. - CRos2Jazzy / CRos2JazzyZenoh flip from local-path binaryTargets to URL+checksum against the 1.3.0 release. The Apple binary target is now NAMED per variant (CRos2Jazzy / CRos2JazzyZenoh) so the zip's .xcframework basename matches the target name SwiftPM resolves; nothing imports the module from Swift, so the name is link-graph-only. Verified: a plain Apple build downloads and links CRos2Jazzy.xcframework.zip (29 MB), the zenoh variant resolves CRos2JazzyZenoh.xcframework.zip (48 MB). - The SWIFT_ROS2_ENABLE_RCL packaging gate is REMOVED on Apple (the MZ2 'Replace on Apple' decision): a plain swift build gets the RCL backend, and plain swift test now executes SwiftROS2RCLTests. SWIFT_ROS2_DISABLE_RCL=1 opts back out (wire-only graph, no download); SWIFT_ROS2_RCL_LOCAL=1 resolves the variant xcframework from build/ros2*/ for xcframework development — ci-rcl's macOS legs set it so they keep testing the HEAD-built artifact. Linux stays opt-in via SWIFT_ROS2_ENABLE_RCL=1 (system ROS 2 required). - check-api-stability digests with SWIFT_ROS2_DISABLE_RCL=1: with the RCL family in the graph, swift-api-digester emits a partial umbrella digest and misreports the entire public surface as removed against a non-RCL baseline (46 false 'removals', all symbols verified present by the passing default test suite). Equalizing the graph on both sides keeps the gate sharp for the whole frozen 1.x surface. - The two 1.3.0-era additive-enum allowlist entries are dropped — the baseline now includes TransportType.rcl and GeneratorError.unknownRequestedTypes. Verified: manifest parses on all six arms (default / disable / local / local-zenoh / linux-rcl / windows); default Apple URL build + full test suite green; zenoh URL variant build green; diagnose-api vs 1.3.0 passes with ZERO breakages and an entry-free allowlist. Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Since the 1.3.0 pin, Apple builds the RCL family by default — clearing
SWIFT_ROS2_ENABLE_RCL no longer removes it from the graph, so the
regen-drift guard's swift-ros2-gen run tried to resolve the job-level
SWIFT_ROS2_RCL_LOCAL build/ros2 xcframework before the cross-build step
produced it ('does not contain a binary artifact'). Set
SWIFT_ROS2_DISABLE_RCL=1 for the step instead.
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
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.
Summary
Completion-design §6 — the post-tag pin PR for 1.3.0 (all 8 release assets published; 8-asset guard green).
swift package compute-checksumon the downloaded zips)..xcframeworkbasename matches the target name SwiftPM resolves (nothing imports the module from Swift — link-graph-only). Verified live: a plain Apple build downloads + linksCRos2Jazzy.xcframework.zip(29 MB); the zenoh variant resolvesCRos2JazzyZenoh.xcframework.zip(48 MB).swift buildgets the RCL backend and plainswift testnow executesSwiftROS2RCLTests. Escape hatches:SWIFT_ROS2_DISABLE_RCL=1(wire-only graph, no download) andSWIFT_ROS2_RCL_LOCAL=1(resolvebuild/ros2*/— ci-rcl's macOS legs set it so they keep testing the HEAD-built artifact). Linux stays opt-in viaSWIFT_ROS2_ENABLE_RCL=1(system ROS 2 required).SWIFT_ROS2_DISABLE_RCL=1: with the RCL family in the graph, swift-api-digester emits a partial umbrella digest and misreports the entire public surface as removed vs a non-RCL baseline (46 false "removals"; every symbol verified present by the passing default suite). Equalizing the graph keeps the gate sharp for the whole frozen 1.x surface.Verification
diagnose-api-breaking-changes.sh 1.3.0→ zero breakages with the entry-free allowlist.swift format lint --strictclean.