From 38ea5a5e5fe680bb1d194b644fa41bb1097a9e2b Mon Sep 17 00:00:00 2001 From: Euan Harris Date: Tue, 29 Apr 2025 12:32:03 +0100 Subject: [PATCH 1/4] docs: Add a plugin workflow diagram to top level DocC page --- .../Swift-Container-Plugin.md | 32 +++++++++++------- .../swift-container-plugin-flow-diagram.png | Bin 0 -> 25097 bytes 2 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png diff --git a/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md b/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md index 179c296..69c655a 100644 --- a/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md +++ b/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md @@ -10,21 +10,20 @@ Build and publish container images using Swift Package Manager. Container images are the standard way to package cloud software today. Once you have packaged your server in a container image, you can deploy it on any container-based public or private cloud service, or run it locally using a desktop container runtime. -Swift Container Plugin makes it easy to build container images for servers written in Swift, using Swift Package Manager. +Use Swift Container Plugin to build and publish container images for your Swift services in one streamlined workflow with Swift Package Manager. -Find out more and see it in action: +![Swift Container Plugin flow diagram](swift-container-plugin-flow-diagram) -* [How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/). -* [Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/). +1. [Add the plugin to your project's dependencies](doc:Adding-the-plugin-to-your-project) in `Package.swift`. +2. [Build and package your service](doc:build) using Swift Package Manager. + - If you are building on macOS, [use a Swift SDK](doc:requirements) to cross-compile a Linux executable. + - If you are building on Linux, use your native Swift compiler to build a Linux executable. If you have special requirements such as building a static executable, or cross-compiling to a different processor architecture, use a suitable Swift SDK. +3. The plugin automatically packages your executable in a container image and publishes it to your chosen container registry. +4. [Run your container image](doc:run) on any container-based platform. -### Usage +## Usage -Use the Swift Container Plugin to package an executable product from your Swift package into a container image and publish it to a container registry. - -To use the plugin: -- -- -- +Swift Container Plugin can package any executable product defined in `Package.swift`. ### Build and publish a container image @@ -56,7 +55,7 @@ registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed919 ### Run the image -You can deploy your service in the cloud, or use a standards-compliant container runtime such as `podman` to run it locally: +Deploy your service in the cloud, or use a standards-compliant container runtime to run it locally: ``` % podman run -p 8080:8080 registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed9190317147dee95a218faf1df @@ -65,7 +64,14 @@ Trying to pull registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c904 2024-05-26T22:57:50+0000 info HummingBird : [HummingbirdCore] Server started and listening on 0.0.0.0:8080 ``` -Take a look at some [other examples](https://github.com/apple/swift-container-plugin/tree/main/Examples). +### Find out more + +* Take a look at [more examples](https://github.com/apple/swift-container-plugin/tree/main/Examples). + +* Watch some talks: + + * [How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/). + * [Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/). ## Topics diff --git a/Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png b/Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..05838e7eb92166014f4d7bd551c61c3398ec0207 GIT binary patch literal 25097 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 Bg+>4X literal 0 HcmV?d00001 From 94118dc383976d6bb91fe1e98600d2dcaf523cac Mon Sep 17 00:00:00 2001 From: Euan Harris Date: Tue, 29 Apr 2025 12:44:11 +0100 Subject: [PATCH 2/4] docs: Add a plugin workflow diagram to README --- README.md | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 18d3e52..c2ebcee 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,18 @@ Build and publish container images using Swift Package Manager. Container images are the standard way to package cloud software today. Once you have packaged your server in a container image, you can deploy it on any container-based public or private cloud service, or run it locally using a desktop container runtime. -Swift Container Plugin makes it easy to build container images for servers written in Swift, using Swift Package Manager. +Use Swift Container Plugin to build and publish container images for your Swift services in one streamlined workflow with Swift Package Manager. -Find out more and see it in action: +![Swift Container Plugin flow diagram](Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png) -* [How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/). -* [Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/). +1. [Add the plugin to your project's dependencies](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/adding-the-plugin-to-your-project) in `Package.swift`. +2. [Build and package your service](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/build) using Swift Package Manager. + - If you are building on macOS, [use a Swift SDK](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/requirements) to cross-compile a Linux executable. + - If you are building on Linux, use your native Swift compiler to build a Linux executable. If you have special requirements such as building a static executable, or cross-compiling to a different processor architecture, use a suitable Swift SDK. +3. The plugin automatically packages your executable in a container image and publishes it to your chosen container registry. +4. [Run your container image](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/run) on any container-based platform. + +Find full details [in the documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin). ## Usage @@ -25,7 +31,8 @@ Swift Container Plugin can package any executable product defined in `Package.sw ### Build and publish a container image -After adding the plugin to your project, you can build and publish a container image in one step: +After adding the plugin to your project, you can build and publish a container image in one step. +Here is how to build the [HelloWorld example](https://github.com/apple/swift-container-plugin/tree/main/Examples/HelloWorldHummingbird) as a static executable for Linux running on the `x86_64` architecture: ``` % swift package --swift-sdk x86_64-swift-linux-musl \ @@ -52,7 +59,7 @@ registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed919 ### Run the image -You can deploy your service in the cloud, or use a standards-compliant container runtime such as `podman` to run it locally: +Deploy your service in the cloud, or use a standards-compliant container runtime to run it locally: ``` % podman run -p 8080:8080 registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed9190317147dee95a218faf1df @@ -67,8 +74,12 @@ Trying to pull registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c904 * On macOS you must install a cross-compilation Swift SDK, such as the [Swift Static Linux SDK](https://www.swift.org/documentation/articles/static-linux-getting-started.html), in order to build executables which can run on Linux-based cloud infrastructure. * A container runtime is not required to build an image, but one must be available wherever the image is to be run. -## Getting Started +### Find out more +* Learn more about setting up your project in the [plugin documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin). + +* Take a look at [more examples](https://github.com/apple/swift-container-plugin/tree/main/Examples). -Learn more about setting up your project in the [plugin documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin). +* Watch some talks: -Take a look at the [Examples](Examples). + * [How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/). + * [Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/). \ No newline at end of file From 48e1e868484bc79dc08d7f788272ab9c4bac55a7 Mon Sep 17 00:00:00 2001 From: Euan Harris Date: Wed, 30 Apr 2025 09:00:00 +0100 Subject: [PATCH 3/4] docs: Usage should be a third level heading --- .../Documentation.docc/Swift-Container-Plugin.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md b/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md index 69c655a..8b83748 100644 --- a/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md +++ b/Sources/swift-container-plugin/Documentation.docc/Swift-Container-Plugin.md @@ -21,11 +21,11 @@ Use Swift Container Plugin to build and publish container images for your Swift 3. The plugin automatically packages your executable in a container image and publishes it to your chosen container registry. 4. [Run your container image](doc:run) on any container-based platform. -## Usage +### Usage Swift Container Plugin can package any executable product defined in `Package.swift`. -### Build and publish a container image +#### Build and publish a container image After adding the plugin to your project, you can build and publish a container image in one step. Here is how to build the [HelloWorld example](https://github.com/apple/swift-container-plugin/tree/main/Examples/HelloWorldHummingbird) as a static executable for Linux running on the `x86_64` architecture: @@ -53,7 +53,7 @@ Build of product 'hello-world' complete! (5.51s) registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed9190317147dee95a218faf1df ``` -### Run the image +#### Run the image Deploy your service in the cloud, or use a standards-compliant container runtime to run it locally: From f89f75a977d48da1251d21c925fd2959a715443f Mon Sep 17 00:00:00 2001 From: Euan Harris Date: Wed, 30 Apr 2025 10:10:57 +0100 Subject: [PATCH 4/4] docs: Use more transparency to make diagram display better in dark mode --- .../swift-container-plugin-flow-diagram.png | Bin 25097 -> 79020 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png b/Sources/swift-container-plugin/Documentation.docc/_Resources/swift-container-plugin-flow-diagram.png index 05838e7eb92166014f4d7bd551c61c3398ec0207..da6cd375729b9e3ed3c34b5f04a71a854b5025fd 100644 GIT binary patch literal 79020 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 Bg+>4X