Browse Source

Remove '@_exported import GRPCCore' (#2109)

Motivation:

We added '@_exported import GRPCCore' to transport modules to make it
easier for users as it saves them from adding an import. On reflection
we've our position on this has changed and the implicit dependency will
likely make things less clear.

Modifications:

- Remove exported import from in-proc transport
- Update tutorials/examples to have explicit 'GRPCCore' imports

Result:

More explicit dependencies
George Barnett 1 year ago
parent
commit
55e39fa96b
27 changed files with 33 additions and 23 deletions
  1. 2 0
      Examples/echo/Package.swift
  2. 2 0
      Examples/hello-world/Package.swift
  3. 1 0
      Examples/hello-world/Sources/Subcommands/Greet.swift
  4. 1 0
      Examples/hello-world/Sources/Subcommands/Serve.swift
  5. 2 0
      Examples/route-guide/Package.swift
  6. 1 0
      Examples/route-guide/Sources/Subcommands/GetFeature.swift
  7. 1 0
      Examples/route-guide/Sources/Subcommands/ListFeatures.swift
  8. 1 0
      Examples/route-guide/Sources/Subcommands/RecordRoute.swift
  9. 1 0
      Examples/route-guide/Sources/Subcommands/RouteChat.swift
  10. 1 0
      Examples/route-guide/Sources/Subcommands/Serve.swift
  11. 4 2
      README.md
  12. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec01-step08-description.swift
  13. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step00-package.swift
  14. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step01-package.swift
  15. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step02-package.swift
  16. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step07-server.swift
  17. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step08-run.swift
  18. 0 2
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step02-add-run-client.swift
  19. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step03-create-client.swift
  20. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step04-run-client.swift
  21. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step05-stub.swift
  22. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step06-get-feature.swift
  23. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step07-list-features.swift
  24. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step08-record-route.swift
  25. 1 0
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step09-route-chat.swift
  26. 3 2
      Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Route-Guide.tutorial
  27. 0 17
      Sources/GRPCInProcessTransport/Exports.swift

+ 2 - 0
Examples/echo/Package.swift

@@ -21,6 +21,7 @@ let package = Package(
   name: "echo",
   name: "echo",
   platforms: [.macOS("15.0")],
   platforms: [.macOS("15.0")],
   dependencies: [
   dependencies: [
+    .package(url: "https://github.com/grpc/grpc-swift", exact: "2.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", branch: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", branch: "1.0.0-alpha.1"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
@@ -29,6 +30,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "echo",
       name: "echo",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),

+ 2 - 0
Examples/hello-world/Package.swift

@@ -21,6 +21,7 @@ let package = Package(
   name: "hello-world",
   name: "hello-world",
   platforms: [.macOS("15.0")],
   platforms: [.macOS("15.0")],
   dependencies: [
   dependencies: [
+    .package(url: "https://github.com/grpc/grpc-swift", exact: "2.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
@@ -29,6 +30,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "hello-world",
       name: "hello-world",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),

+ 1 - 0
Examples/hello-world/Sources/Subcommands/Greet.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 import GRPCProtobuf
 import GRPCProtobuf
 
 

+ 1 - 0
Examples/hello-world/Sources/Subcommands/Serve.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 import GRPCProtobuf
 import GRPCProtobuf
 
 

+ 2 - 0
Examples/route-guide/Package.swift

@@ -21,6 +21,7 @@ let package = Package(
   name: "route-guide",
   name: "route-guide",
   platforms: [.macOS("15.0")],
   platforms: [.macOS("15.0")],
   dependencies: [
   dependencies: [
+    .package(url: "https://github.com/grpc/grpc-swift", exact: "2.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-protobuf", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/grpc/grpc-swift-nio-transport", exact: "1.0.0-alpha.1"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
@@ -29,6 +30,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "route-guide",
       name: "route-guide",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),

+ 1 - 0
Examples/route-guide/Sources/Subcommands/GetFeature.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 struct GetFeature: AsyncParsableCommand {
 struct GetFeature: AsyncParsableCommand {

+ 1 - 0
Examples/route-guide/Sources/Subcommands/ListFeatures.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 struct ListFeatures: AsyncParsableCommand {
 struct ListFeatures: AsyncParsableCommand {

+ 1 - 0
Examples/route-guide/Sources/Subcommands/RecordRoute.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 struct RecordRoute: AsyncParsableCommand {
 struct RecordRoute: AsyncParsableCommand {

+ 1 - 0
Examples/route-guide/Sources/Subcommands/RouteChat.swift

@@ -15,6 +15,7 @@
  */
  */
 
 
 import ArgumentParser
 import ArgumentParser
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 struct RouteChat: AsyncParsableCommand {
 struct RouteChat: AsyncParsableCommand {

+ 1 - 0
Examples/route-guide/Sources/Subcommands/Serve.swift

@@ -16,6 +16,7 @@
 
 
 import ArgumentParser
 import ArgumentParser
 import Foundation
 import Foundation
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 import GRPCProtobuf
 import GRPCProtobuf
 import Synchronization
 import Synchronization

+ 4 - 2
README.md

@@ -17,7 +17,7 @@ about gRPC on the [gRPC project's website][grpcio].
   - [`grpc-swift-nio-transport`][grpc-swift-nio-transport] contains high-performance HTTP/2 client and server transport implementations for gRPC Swift built on top of SwiftNIO.
   - [`grpc-swift-nio-transport`][grpc-swift-nio-transport] contains high-performance HTTP/2 client and server transport implementations for gRPC Swift built on top of SwiftNIO.
   - [`grpc-swift-protobuf`][grpc-swift-protobuf] contains integrations with SwiftProtobuf for gRPC Swift.
   - [`grpc-swift-protobuf`][grpc-swift-protobuf] contains integrations with SwiftProtobuf for gRPC Swift.
   - [`grpc-swift-extras`][grpc-swift-extras] contains optional extras for gRPC Swift.
   - [`grpc-swift-extras`][grpc-swift-extras] contains optional extras for gRPC Swift.
- 
+
 
 
 ## Quick Start
 ## Quick Start
 
 
@@ -32,6 +32,7 @@ let package = Package(
     name: "foo-package",
     name: "foo-package",
     platforms: [.macOS("15.0")],
     platforms: [.macOS("15.0")],
     dependencies: [
     dependencies: [
+        .package(url: "https://github.com/grpc/grpc-swift.git", from: "2.0.0-alpha.1"),
         .package(url: "https://github.com/grpc/grpc-swift-nio-transport.git", from: "1.0.0-alpha.1"),
         .package(url: "https://github.com/grpc/grpc-swift-nio-transport.git", from: "1.0.0-alpha.1"),
         .package(url: "https://github.com/grpc/grpc-swift-protobuf.git", from: "1.0.0-alpha.1"),
         .package(url: "https://github.com/grpc/grpc-swift-protobuf.git", from: "1.0.0-alpha.1"),
     ],
     ],
@@ -39,6 +40,7 @@ let package = Package(
         .executableTarget(
         .executableTarget(
             name: "bar-target",
             name: "bar-target",
             dependencies: [
             dependencies: [
+                .product(name: "GRPCCore", package: "grpc-swift"),
                 .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
                 .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
                 .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
                 .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
             ]
             ]
@@ -52,4 +54,4 @@ let package = Package(
 [spi-grpc-swift]: https://swiftpackageindex.com/grpc/grpc-swift/documentation
 [spi-grpc-swift]: https://swiftpackageindex.com/grpc/grpc-swift/documentation
 [grpc-swift-nio-transport]: https://github.com/grpc/grpc-swift-nio-transport
 [grpc-swift-nio-transport]: https://github.com/grpc/grpc-swift-nio-transport
 [grpc-swift-protobuf]: https://github.com/grpc/grpc-swift-protobuf
 [grpc-swift-protobuf]: https://github.com/grpc/grpc-swift-protobuf
-[grpc-swift-extras]: https://github.com/grpc/grpc-swift-extras 
+[grpc-swift-extras]: https://github.com/grpc/grpc-swift-extras

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec01-step08-description.swift

@@ -12,6 +12,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "RouteGuide",
       name: "RouteGuide",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
       ]
       ]

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step00-package.swift

@@ -12,6 +12,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "RouteGuide",
       name: "RouteGuide",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
       ]
       ]

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step01-package.swift

@@ -12,6 +12,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "RouteGuide",
       name: "RouteGuide",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
       ],
       ],

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step02-package.swift

@@ -13,6 +13,7 @@ let package = Package(
     .executableTarget(
     .executableTarget(
       name: "RouteGuide",
       name: "RouteGuide",
       dependencies: [
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step07-server.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec05-step08-run.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 0 - 2
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step02-add-run-client.swift

@@ -1,5 +1,3 @@
-import GRPCNIOTransportHTTP2
-
 extension RouteGuide {
 extension RouteGuide {
   func runClient() async throws {
   func runClient() async throws {
   }
   }

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step03-create-client.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step04-run-client.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step05-stub.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step06-get-feature.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step07-list-features.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step08-record-route.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 1 - 0
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Resources/route-guide-sec06-step09-route-chat.swift

@@ -1,3 +1,4 @@
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCNIOTransportHTTP2
 
 
 extension RouteGuide {
 extension RouteGuide {

+ 3 - 2
Sources/GRPCCore/Documentation.docc/Tutorials/Route-Guide/Route-Guide.tutorial

@@ -77,8 +77,9 @@
         Next we can add a target. In this tutorial we'll create a single executable target which
         Next we can add a target. In this tutorial we'll create a single executable target which
         can act as both a client and a server.
         can act as both a client and a server.
 
 
-        We require two gRPC dependencies: `GRPCNIOTransportHTTP2"` provides an implementation of an HTTP/2
-        client and server, while `GRPCProtobuf` provides the necessary components to serialize
+        We require three gRPC dependencies: `GRPCCore` provides core abstractions and runtime
+        components, `GRPCNIOTransportHTTP2` provides an implementation of an HTTP/2
+        client and server, and `GRPCProtobuf` provides the necessary components to serialize
         and deserialize `SwiftProtobuf` messages.
         and deserialize `SwiftProtobuf` messages.
 
 
         @Code(name: "Package.swift", file: "route-guide-sec01-step08-description.swift")
         @Code(name: "Package.swift", file: "route-guide-sec01-step08-description.swift")

+ 0 - 17
Sources/GRPCInProcessTransport/Exports.swift

@@ -1,17 +0,0 @@
-/*
- * Copyright 2024, gRPC Authors All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-@_exported import GRPCCore