sidpug-arcana opened a new pull request, #202:
URL: https://github.com/apache/arrow-swift/pull/202

   ## What's Changed
   
   Migrates ArrowFlight from grpc-swift 1.x to the new grpc-swift 2.x stack 
(GRPCCore + NIO HTTP/2 transport + protobuf codecs), and bumps swift-protobuf 
to 1.39.0.
   
   **Stacked on #201** (flatbuffers 25.12.19 regeneration) — this branch 
contains those commits as well; only the last two commits are specific to this 
change. Once #201 lands, this PR can be rebased to just the grpc-swift-2 
migration.
   
   ### Details
   
   - **Dependencies**: replace `grpc-swift` 1.x with `grpc-swift-2` (2.4.4), 
`grpc-swift-nio-transport` (GRPCNIOTransportHTTP2) and `grpc-swift-protobuf` 
(GRPCProtobuf); swift-protobuf bumped to 1.39.0.
   - **Generated code**: `Flight.pb.swift` regenerated with protoc-gen-swift 
1.39 (now includes `PollFlightInfo`/`PollInfo`) and `Flight.grpc.swift` 
regenerated with protoc-gen-grpc-swift-2, from the same `Flight.proto` revision 
as before. New `gen-flight.sh` documents the regeneration.
   - **ArrowFlight API**:
     - `FlightClient` is now generic over the client transport 
(`FlightClient<Transport>`), constructible from a transport or an existing 
`GRPCClient`; streaming callbacks are `@Sendable @escaping`.
     - `InternalFlightServer` implements the generated `SimpleServiceProtocol`; 
`PollFlightInfo` is stubbed as not-implemented.
     - `makeFlightServer` returns `any RegistrableRPCService` for use with 
`GRPCServer(transport:services:)`.
   - **Platform requirements**: GRPCCore requires macOS 15 / iOS 18 / watchOS 
11 / tvOS 18 / visionOS 2, so ArrowFlight public APIs are now 
`@available`-gated accordingly. The `Arrow` core target is unaffected.
   - **Toolchain**: `swift-tools-version` bumped to 6.1 (all three grpc-swift-2 
packages require it); the package remains in the Swift 5 language mode. CI 
matrices (`test.yaml`, `rc.yaml`) and the default CI Docker image updated to 
Swift 6.1 only — Swift 5.10/6.0 toolchains can no longer resolve the manifest.
   
   ### Breaking changes
   
   - Requires Swift 6.1+ toolchain to build the package (runtime availability 
of `Arrow` core is unchanged).
   - ArrowFlight requires macOS 15/iOS 18+.
   - FlightClient construction and callback signatures changed (see above).
   
   ## Testing
   
   Full suite passes locally (macOS, Swift 6.4): build clean, no new warnings, 
lint clean.
   
   ```
   Executed 51 tests, with 0 failures (0 unexpected)
   ```
   
   The Flight integration test exercises a real GRPC server/client round trip 
over HTTP/2 (listActions, doPut, listFlights, doAction, getSchema, doGet, 
doExchange).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to