sidpug-arcana opened a new issue, #210: URL: https://github.com/apache/arrow-swift/issues/210
### 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]
