sidpug-arcana opened a new issue, #211:
URL: https://github.com/apache/arrow-swift/issues/211

   ### Describe the enhancement requested
   
   Migrate the `ArrowFlight` module from `grpc-swift` 1.x to the grpc-swift 2.x 
stack (`GRPCCore` + `GRPCNIOTransportHTTP2` + `GRPCProtobuf`), and bump 
`swift-protobuf` to 1.39.0.
   
   `grpc-swift` 1.x is superseded: grpc-swift 2 splits the runtime into 
`grpc-swift-2` (`GRPCCore`), `grpc-swift-nio-transport` (HTTP/2 transport) and 
`grpc-swift-protobuf` (protobuf codecs), and the 1.x generated stubs 
(`GRPC`/`GRPCProtobuf` targets, `GRPCClient`/`GRPCServer` from `GRPC`) no 
longer exist. Staying on 1.x also keeps us on `swift-protobuf` 1.29, since the 
module's committed generated sources predate later plugin versions — 
`FlightSql.pb.swift` still uses `_NameMap` APIs that are deprecated in 1.39 and 
an error under `-warnings-as-errors`. This follows on from #57, which last 
bumped `grpc-swift` to 1.26.1.
   
   The migration itself is proposed in #202. This issue tracks it.
   
   #### Scope
   
   - **Dependencies**: replace `grpc-swift` with `grpc-swift-2`, 
`grpc-swift-nio-transport` and `grpc-swift-protobuf`; bump `swift-protobuf` to 
1.39.0.
   - **Generated code**: regenerate `Flight.pb.swift` (protoc-gen-swift 1.39, 
which adds `PollFlightInfo`/`PollInfo`) and `Flight.grpc.swift` 
(protoc-gen-grpc-swift-2) from the same `Flight.proto` revision, and regenerate 
`FlightSql.pb.swift` with the same plugin. Document regeneration in a 
`gen-flight.sh` script.
   - **ArrowFlight API**: `FlightClient` becomes generic over the client 
transport; `InternalFlightServer` implements the generated 
`SimpleServiceProtocol` with `PollFlightInfo` stubbed as not-implemented; 
`makeFlightServer` returns `any RegistrableRPCService` for 
`GRPCServer(transport:services:)`.
   - **Toolchain**: bump `swift-tools-version` to 6.1 (required by the 
grpc-swift-2 packages) and update the CI matrices and default CI Docker image 
to Swift 6.1.
   
   #### Breaking changes
   
   - Building the package requires a Swift 6.1+ toolchain. The runtime 
availability of the `Arrow` core target is unchanged.
   - `ArrowFlight` requires macOS 15 / iOS 18 / watchOS 11 / tvOS 18 / visionOS 
2, as required by `GRPCCore`, so its public API is `@available`-gated 
accordingly.
   - `FlightClient` construction and its streaming callback signatures change 
(callbacks become `@Sendable @escaping`).
   
   #### Notes
   
   The `Arrow` core target is unaffected apart from the manifest toolchain bump.
   


-- 
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