Procházet zdrojové kódy

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 před 1 rokem
rodič
revize
55e39fa96b
27 změnil soubory, kde provedl 33 přidání a 23 odebrání
  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",
   platforms: [.macOS("15.0")],
   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-nio-transport", branch: "1.0.0-alpha.1"),
     .package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
@@ -29,6 +30,7 @@ let package = Package(
     .executableTarget(
       name: "echo",
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .product(name: "ArgumentParser", package: "swift-argument-parser"),

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -16,6 +16,7 @@
 
 import ArgumentParser
 import Foundation
+import GRPCCore
 import GRPCNIOTransportHTTP2
 import GRPCProtobuf
 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-protobuf`][grpc-swift-protobuf] contains integrations with SwiftProtobuf for gRPC Swift.
   - [`grpc-swift-extras`][grpc-swift-extras] contains optional extras for gRPC Swift.
- 
+
 
 ## Quick Start
 
@@ -32,6 +32,7 @@ let package = Package(
     name: "foo-package",
     platforms: [.macOS("15.0")],
     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-protobuf.git", from: "1.0.0-alpha.1"),
     ],
@@ -39,6 +40,7 @@ let package = Package(
         .executableTarget(
             name: "bar-target",
             dependencies: [
+                .product(name: "GRPCCore", package: "grpc-swift"),
                 .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
                 .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
             ]
@@ -52,4 +54,4 @@ let package = Package(
 [spi-grpc-swift]: https://swiftpackageindex.com/grpc/grpc-swift/documentation
 [grpc-swift-nio-transport]: https://github.com/grpc/grpc-swift-nio-transport
 [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(
       name: "RouteGuide",
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .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(
       name: "RouteGuide",
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .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(
       name: "RouteGuide",
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .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(
       name: "RouteGuide",
       dependencies: [
+        .product(name: "GRPCCore", package: "grpc-swift"),
         .product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
         .product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
         .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
 
 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
 
 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 {
   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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
         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.
 
         @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