Skip to content

Commit 4ab6d0a

Browse files
authored
Update minimum Swift requirement to 5.7 (vapor#414)
Bump required Swift to 5.7, update dependency version requirements, update CI for Swift and Postgres versions, do some interesting things with the API docs and README.
1 parent 92ee156 commit 4ab6d0a

File tree

6 files changed

+89
-54
lines changed

6 files changed

+89
-54
lines changed

.github/workflows/test.yml

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
swift-image:
21-
- swift:5.6-focal
2221
- swift:5.7-jammy
2322
- swift:5.8-jammy
24-
- swiftlang/swift:nightly-5.9-jammy
23+
- swift:5.9-jammy
24+
- swiftlang/swift:nightly-5.10-jammy
2525
- swiftlang/swift:nightly-main-jammy
2626
include:
27-
- swift-image: swift:5.8-jammy
27+
- swift-image: swift:5.9-jammy
2828
code-coverage: true
2929
container: ${{ matrix.swift-image }}
3030
runs-on: ubuntu-latest
@@ -37,7 +37,7 @@ jobs:
3737
printf 'OS: %s\nTag: %s\nVersion:\n' "${SWIFT_PLATFORM}-${RUNNER_ARCH}" "${SWIFT_VERSION}"
3838
swift --version
3939
- name: Check out package
40-
uses: actions/checkout@v3
40+
uses: actions/checkout@v4
4141
- name: Run unit tests with Thread Sanitizer
4242
env:
4343
CODE_COVERAGE: ${{ matrix.code-coverage && '--enable-code-coverage' || '' }}
@@ -53,18 +53,18 @@ jobs:
5353
fail-fast: false
5454
matrix:
5555
postgres-image:
56-
- postgres:15
57-
- postgres:13
58-
- postgres:11
56+
- postgres:16
57+
- postgres:14
58+
- postgres:12
5959
include:
60-
- postgres-image: postgres:15
60+
- postgres-image: postgres:16
6161
postgres-auth: scram-sha-256
62-
- postgres-image: postgres:13
62+
- postgres-image: postgres:14
6363
postgres-auth: md5
64-
- postgres-image: postgres:11
64+
- postgres-image: postgres:12
6565
postgres-auth: trust
6666
container:
67-
image: swift:5.8-jammy
67+
image: swift:5.9-jammy
6868
volumes: [ 'pgrunshare:/var/run/postgresql' ]
6969
runs-on: ubuntu-latest
7070
env:
@@ -109,15 +109,15 @@ jobs:
109109
[[ -z "${SWIFT_VERSION}" ]] && SWIFT_VERSION="$(cat /.swift_tag 2>/dev/null || true)"
110110
printf 'OS: %s\nTag: %s\nVersion:\n' "${SWIFT_PLATFORM}-${RUNNER_ARCH}" "${SWIFT_VERSION}" && swift --version
111111
- name: Check out package
112-
uses: actions/checkout@v3
112+
uses: actions/checkout@v4
113113
with: { path: 'postgres-nio' }
114114
- name: Run integration tests
115115
run: swift test --package-path postgres-nio --filter=^IntegrationTests
116116
- name: Check out postgres-kit dependent
117-
uses: actions/checkout@v3
117+
uses: actions/checkout@v4
118118
with: { repository: 'vapor/postgres-kit', path: 'postgres-kit' }
119119
- name: Check out fluent-postgres-driver dependent
120-
uses: actions/checkout@v3
120+
uses: actions/checkout@v4
121121
with: { repository: 'vapor/fluent-postgres-driver', path: 'fluent-postgres-driver' }
122122
- name: Use local package in dependents
123123
run: |
@@ -135,13 +135,13 @@ jobs:
135135
matrix:
136136
postgres-formula:
137137
# Only test one version on macOS, let Linux do the rest
138-
- postgresql@14
138+
- postgresql@15
139139
postgres-auth:
140140
# Only test one auth method on macOS, Linux tests will cover the others
141141
- scram-sha-256
142142
xcode-version:
143143
- '~14.3'
144-
- '15.0-beta'
144+
- '~15.0'
145145
runs-on: macos-13
146146
env:
147147
POSTGRES_HOSTNAME: 127.0.0.1
@@ -164,7 +164,7 @@ jobs:
164164
pg_ctl start --wait
165165
timeout-minutes: 2
166166
- name: Checkout code
167-
uses: actions/checkout@v3
167+
uses: actions/checkout@v4
168168
- name: Run all tests
169169
run: swift test
170170

@@ -174,21 +174,24 @@ jobs:
174174
container: swift:jammy
175175
steps:
176176
- name: Checkout
177-
uses: actions/checkout@v3
177+
uses: actions/checkout@v4
178178
with:
179179
fetch-depth: 0
180180
# https://github.com/actions/checkout/issues/766
181-
- name: Mark the workspace as safe
182-
run: git config --global --add safe.directory "${GITHUB_WORKSPACE}"
183181
- name: API breaking changes
184-
run: swift package diagnose-api-breaking-changes origin/main
182+
run: |
183+
git config --global --add safe.directory "${GITHUB_WORKSPACE}"
184+
swift package diagnose-api-breaking-changes origin/main
185185
186186
gh-codeql:
187187
runs-on: ubuntu-latest
188-
permissions: { security-events: write }
188+
container: swift:5.8-jammy # CodeQL currently broken with 5.9
189+
permissions: { actions: write, contents: read, security-events: write }
189190
steps:
190191
- name: Check out code
191-
uses: actions/checkout@v3
192+
uses: actions/checkout@v4
193+
- name: Mark repo safe in non-fake global config
194+
run: git config --global --add safe.directory "${GITHUB_WORKSPACE}"
192195
- name: Initialize CodeQL
193196
uses: github/codeql-action/init@v2
194197
with:

Package.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.6
1+
// swift-tools-version:5.7
22
import PackageDescription
33

44
let package = Package(
@@ -13,13 +13,13 @@ let package = Package(
1313
.library(name: "PostgresNIO", targets: ["PostgresNIO"]),
1414
],
1515
dependencies: [
16-
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.1.0"),
17-
.package(url: "https://github.com/apple/swift-nio.git", from: "2.58.0"),
18-
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.18.0"),
19-
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.23.1"),
20-
.package(url: "https://github.com/apple/swift-crypto.git", "1.0.0" ..< "3.0.0"),
21-
.package(url: "https://github.com/apple/swift-metrics.git", from: "2.0.0"),
22-
.package(url: "https://github.com/apple/swift-log.git", from: "1.5.2"),
16+
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.2.0"),
17+
.package(url: "https://github.com/apple/swift-nio.git", from: "2.59.0"),
18+
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.19.0"),
19+
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.25.0"),
20+
.package(url: "https://github.com/apple/swift-crypto.git", "2.0.0" ..< "4.0.0"),
21+
.package(url: "https://github.com/apple/swift-metrics.git", from: "2.4.1"),
22+
.package(url: "https://github.com/apple/swift-log.git", from: "1.5.3"),
2323
],
2424
targets: [
2525
.target(

README.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,21 @@
66
</picture>
77
<br>
88
<br>
9-
<a name="https://www.swift.org/sswg/incubation-process.html"><img src="https://img.shields.io/badge/sswg-graduated-green.svg" alt="SSWG Incubation Level: Graduated"></a>
10-
<a href="https://api.vapor.codes/postgresnio/documentation/postgresnio/"><img src="https://img.shields.io/badge/read_the-docs-2196f3.svg" alt="Documentation"></a>
11-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="MIT License"></a>
12-
<a href="https://github.com/vapor/postgres-nio/actions/workflows/test.yml"><img src="https://github.com/vapor/postgres-nio/actions/workflows/test.yml/badge.svg" alt="Continuous Integration"></a>
13-
<a href="https://swift.org"><img src="https://img.shields.io/badge/swift-5.6-brightgreen.svg" alt="Swift 5.6"></a>
9+
<a href="https://api.vapor.codes/postgresnio/documentation/postgresnio/">
10+
<img src="https://img.shields.io/badge/read_the-docs-2196f3.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB4PSIxLjQiIHk9IjIuMzUiIHdpZHRoPSIxMy4yIiBoZWlnaHQ9IjkuOCIgc3R5bGU9ImZpbGw6ICNkZmRiZjM7IG9wYWNpdHk6IDAuMzMzMzM7Ii8+PHBhdGggc3R5bGU9ImZpbGw6ICNmZmY7IiBkPSJNMCwxLjc1YzAsLTAuNCAwLjM1LC0wLjg1IDAuNzUsLTAuODVjMi43LDAgNS4yNSwtMC42IDcuMjUsMS40YzIsLTIgNC4yNSwtMS40IDcuMjUsLTEuNGMwLjQsMCAwLjc1LDAuNCAwLjc1LDAuODV2MTAuNWMwLDAuNCAtMC4zNSwwLjc1IC0wLjc1LDAuNzVjLTIuNSwwIC00LjgsLTAuNiAtNi43NSwxLjNjLTAuMjUsMC4yNSAtMC43NSwwLjI1IC0xLDBjLTEuNzUsLTEuNyAtNC40NSwtMS4zIC02Ljc1LC0xLjNjLTAuNCwwIC0wLjc1LC0wLjM1IC0wLjc1LC0wLjc1em03LjI1LDEwLjI1di03LjI1Yy0wLjA4LC0yLjk1IC0zLjYsLTIuMjUgLTUuNzUsLTIuMjV2OWMxLjk1LDAgMy45NSwtMC4zIDUuNzUsMC41em0xLjUsLTcuMjV2Ny4yNWMxLjc1LC0wLjg1IDMuODUsLTAuNSA1Ljc1LC0wLjV2LTljLTIuMjUsMCAtNS43NSwtMC43IC01Ljc1LDIuMjV6Ii8+PC9zdmc+Cg==&labelColor=gray" alt="Documentation">
11+
</a>
12+
<a href="LICENSE">
13+
<img src="https://img.shields.io/badge/license-MIT-skyblue?style=flat&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNzAuNTQsMTEuNTJjLS4xLTMuODktMTEuOS0zLjg5LTEyLDB2MTBjLTUuMjcuMTgtMjAuMzYsNy44NS0yNC40Niw4aC0xOC4zOGMtMS42LDAtNS43NTcsMi40NS01LjY5LDYuMDhjLjEsNC41NCw0LjcxLDYuNjUsOS4xOSw1LjkyYzAsMC0xNC45NTcsMzMuMTgtMTYuODgsMzcuNTJjLTMuMzcyLDcuNjEsMTIuNDcsMTQuOTcsMjIuOSwxNC43MmMxMS44LS42LDI2LjEyLTcuMzEsMjIuODYtMTMuOTJjLTIuNS01LjA3LTE2LjY4LTM4LjMyLTE2LjY4LTM4LjMyYzUuNzEsMCwxOC4zNy03Ljg1LDI3LjE0LTh2NzYuNzhoLTIwYy0zLjkxLDAtMy45MSwxMiwwLDEyaDUyYzMuOTEsMCwzLjkxLTEyLDAtMTJoLTIwdi03Ni43OGM4LjctLjEsMjEuMTQsNy45NywyNy4zNCw4YzAsMC0xNC40MSwzMi44NC0xNi44OCwzOC4zMmMtMi43MSw2LDExLjYxLDEzLjkyLDIyLjksMTMuOTJjMTEuOCwwLDI2LjEtNi4zNywyMi45LTEzLjkyYy0yLjItNS4zMS0xNi45LTM4LjMyLTE2LjktMzguMzJjNC44LjQ1LDkuNi0xLjU3LDkuNi01LjkyYy0uMS00LjYtNC02LjA5LTYuMS02LjA4YzAsMC0yMi43OS0uMi0xOC40LDBjMCwwLTE4Ljk4LTcuOTQtMjQuNDYtOHptMzIuODYsNDQuNjQsMTAuNCwyNGMtMy44LDEuNzMtMTguNTksMS4xMi0yMC44NCwwem0tNzcuNywwLDEwLjQ0LDI0Yy04LjAyLDMuMjgtMTUuMDEsMi45MS0yMC44NCwwYzAsMCwxMC4zNi0yMy45NiwxMC40LTI0eiIvPjwvc3ZnPgo%3D" alt="MIT License">
14+
</a>
15+
<a href="https://github.com/vapor/postgres-nio/actions/workflows/test.yml">
16+
<img src="https://github.com/vapor/postgres-nio/actions/workflows/test.yml/badge.svg" alt="Continuous Integration">
17+
</a>
18+
<a href="https://swift.org">
19+
<img src="https://img.shields.io/badge/swift-5.7%2b-white?style=flat&logo=swift&logoColor=%23f07158&labelColor=gray&color=%23f07158" alt="Swift 5.7 - 5.9">
20+
</a>
21+
<a name="https://www.swift.org/sswg/incubation-process.html">
22+
<img src="https://img.shields.io/badge/sswg-graduated-white.svg?logo=data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImIiPjxzdG9wIHN0b3AtY29sb3I9IiNmZDIwMjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNlMDE1OTUiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNmODhhMzYiIHN0eWxlPSJzdG9wLWNvbG9yOiNhNTNmOGEiIG9mZnNldD0iLjY5OSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iNDIzIiB4Mj0iNzMiIHkxPSI3MyIgeTI9IjQyMyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg4LDgpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaHJlZj0iI2IiLz48L2RlZnM+PGZpbHRlciBpZD0iYSIgeD0iLS4wNDQ0NyIgeT0iLS4wNDQ0NyIgd2lkdGg9IjEuMDg5IiBoZWlnaHQ9IjEuMDk1Ij48ZmVPZmZzZXQgZHg9IjAiIGR5PSIzIiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIGluPSJzaGFkb3dPZmZzZXRPdXRlcjEiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSIgc3RkRGV2aWF0aW9uPSI1Ii8+PGZlQ29sb3JNYXRyaXggaW49InNoYWRvd0JsdXJPdXRlcjEiIHJlc3VsdD0ic2hhZG93TWF0cml4T3V0ZXIxIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMzAzOCAwIi8+PGZlTWVyZ2U+PGZlTWVyZ2VOb2RlIGluPSJzaGFkb3dNYXRyaXhPdXRlcjEiLz48ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiLz48L2ZlTWVyZ2U+PC9maWx0ZXI+PGxpbmVhckdyYWRpZW50IGlkPSJkIiB4MT0iMjMzIiB4Mj0iMjMzIiB5MT0iMTQwLjIiIHkyPSIzNzguMyIgZ3JhZGllbnRUcmFuc2Zvcm09InNjYWxlKDEuMDU0IC45NDg5KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGhyZWY9IiNiIi8+PHBhdGggZD0ibTg3LjUgODcuNXYzMzdoMzM3di0zMzd6bTQ5LjQtMzcuODctMTAuMiAzNy44N2gxNTEuNHptMjg3LjYgNzcuMDd2MTUxLjVsMzcuOS0xNDEuM3ptLTMzNyAxMDcuMi0zNy44NyAxNDEuMiAzNy44NyAxMC4yem0xNDYuMyAxOTAuNiAxNDEuMyAzNy45IDEwLjItMzcuOXptLTM5LjUtMzk4LjctMTkuNiAzMy45NSAxMDMuNCAyNy43M2gyMy4xem0yNTggMTQ4LjktMjcuOCAxMDMuNXYyM2w2MS43LTEwNi45em0tMzY0LjggMzYuMS02MS42OCAxMDYuOSAzMy45NSAxOS42IDI3LjczLTEwMy40em0xMjMuMyAyMTMuNyAxMDYuOSA2MS43IDE5LjYtMzMuOS0xMDMuNS0yNy44em00NS4yLTQwNi44LTI3LjcgMjcuNzMgNzIuOSA0Mi4wN2gyNC42em0tMTY4LjUgMTY4LjUtNjkuOCA2OS44IDI3LjczIDI3LjcgNDIuMDctNzIuOXptMzc5LjEgNDIuMS00Mi4xIDcyLjl2MjQuNmw2OS44LTY5Ljh6bS0yODAuNCAxOTYuMiA2OS44IDY5LjggMjcuNy0yNy43LTcyLjktNDIuMXptMTMxLjUtMzk4LjctMzQgMTkuNjEgNDIuMSA0Mi4wN2gyNy41em0tMjMwLjIgMTMyLjktNjEuNjggMzUuNiAxOS42MSAzNCA0Mi4wNy00Mi4xem0zNzkuMSAxMjUtNDIuMSA0Mi4xdjI3LjVsNjEuNy0zNS42em0tMzA3LjkgMTQwLjggMzUuNiA2MS43IDM0LTE5LjYtNDIuMS00Mi4xem0yMTYuNS0zNzQuOS0zNy45IDEwLjE2IDE2IDI3LjcxaDMyLjF6bS0yODcuNyA3Ny4xNy0zNy43NyAxMC4xIDEwLjEyIDM3LjggMjcuNjUtMTZ6bTM2NC44IDIxMC40LTI3LjggMTYuMXYzMmwzOC0xMC4yem0tMzI1LjUgODcuMyAxMC4yIDM3LjkgMzcuNy0xMC4xLTE2LTI3Ljh6IiBzdHlsZT0iZmlsbDojZmRmYWZhO2ZpbHRlcjp1cmwoI2EpO3N0cm9rZS13aWR0aDoxMztzdHJva2U6dXJsKCNjKSIvPjxwYXRoIGQ9Im0yNzQuMyAxMzNjMjQuNyAzNCAzNS45IDc1IDI2LjEgMTExLjEtMC45IDMuNC0yIDYuNy0zLjMgOS45LTEuMS0wLjgtMi42LTEuNy00LjUtMi44IDAgMC01Ny4xLTM1LjQtMTE4LjQtOTcuNy0xLjQtMS40IDMzLjIgNDkuNiA3MS45IDkwLjYtMTguMy0xMC42LTY5LjctNDguMS0xMDIuMS03Ny44IDQuMiA2LjMgOC40IDEzLjQgMTQgMTkuMSAyNi44IDM0LjcgNjIuOCA3Ny4yIDEwNSAxMDkuN2wwLjEgMC4xYy0yOS43IDE4LjQtNzIgMTkuOC0xMTQuMi0wLjEtMTAuNi00LjktMjAuNC0xMC42LTI4LjktMTcuNyAxNy42IDI4LjMgNDUuMSA1My4xIDc4LjIgNjcuMyA0MC45IDE3LjYgODEuNiAxNS44IDExMS4xLTEuMyAxNC40LTYuMSA0Mi43LTE1LjMgNTggMTQuNyAzLjUgNy4xIDExLjMtMzAuNC0xNi45LTY1LjgtMC4yLTAuMi0wLjMtMC40LTAuNS0wLjYgMC40LTEuNCAwLjgtMi45IDEuMi00LjQgMTQuMS01NC41LTE5LjctMTE5LjYtNzYuOC0xNTQuM3oiIHN0eWxlPSJmaWxsOnVybCgjZCkiLz48L3N2Zz4K&labelColor=gray&color=%23e01595" alt="SSWG Incubation Level: Graduated">
23+
</a>
1424
</p>
1525
<br>
1626
🐘 Non-blocking, event-driven Swift client for PostgreSQL built on [SwiftNIO].
@@ -170,7 +180,7 @@ Please see [SECURITY.md] for details on the security process.
170180
[Team Chat]: https://discord.gg/vapor
171181
[MIT License]: LICENSE
172182
[Continuous Integration]: https://github.com/vapor/postgres-nio/actions
173-
[Swift 5.6]: https://swift.org
183+
[Swift 5.7]: https://swift.org
174184
[Security.md]: https://github.com/vapor/.github/blob/main/SECURITY.md
175185

176186
[`PostgresConnection`]: https://swiftpackageindex.com/vapor/postgres-nio/documentation/postgresnio/postgresconnection/

Sources/PostgresNIO/Docs.docc/images/vapor-postgres-logo.svg

Lines changed: 35 additions & 16 deletions
Loading

Sources/PostgresNIO/Docs.docc/theme-settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"color": {
2020
"fill": {
21-
"dark": "rgb(20, 20, 22)",
21+
"dark": "rgb(0, 0, 0)",
2222
"light": "rgb(255, 255, 255)"
2323
},
2424
"psql-blue": "#336791",

docker-compose.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ x-shared-config: &shared_config
1010
- 5432:5432
1111

1212
services:
13+
psql-16:
14+
image: postgres:16
15+
<<: *shared_config
1316
psql-15:
1417
image: postgres:15
1518
<<: *shared_config

0 commit comments

Comments
 (0)